次の方法で共有


DHTML からの C++ コードの呼び出し

更新 : 2007 年 11 月

DHTML コントロールは、テスト コンテナや Internet Explorer などのコンテナでホストできます。テスト コンテナへのアクセス方法については、「テスト コンテナでのプロパティとイベントのテスト」を参照してください。

コントロールをホストするコンテナは、通常のコントロール インターフェイスを使用してコントロールと通信します。DHTML は、末尾が "UI" のディスパッチ インターフェイスを使用して、C++ コードおよび HTML リソースと通信します。「ATL DHTML コントロールの変更」で、これらの各インターフェイスによって呼び出されるメソッドの追加方法を説明しています。

DHTML からの C++ コードの呼び出し例については、ATL コントロール ウィザードを使用して DHTML コントロールを作成し、ヘッダー ファイルと HTML ファイルのコードを調べてください。

ヘッダー ファイルでの WebBrowser メソッドの宣言

DHTML UI から C++ メソッドを呼び出すには、コントロールの UI インターフェイスにメソッドを追加する必要があります。たとえば、ATL コントロール ウィザードによって作成されるヘッダー ファイルには、OnClick という C++ メソッドが含まれています。このメソッドは、ウィザードが生成するコントロールの UI インターフェイスのメンバです。

コントロールの .h ファイルの OnClick を調べてみます。

STDMETHOD(OnClick)(IDispatch* pdispBody, VARIANT varColor)

最初のパラメータ pdispBody は、本体オブジェクトのディスパッチ インターフェイスへのポインタです。2 番目のパラメータ varColor は、コントロールに適用する色を指定します。

HTML ファイルからの C++ コードの呼び出し

ヘッダー ファイルで WebBrowser メソッドを宣言したら、HTML ファイルからメソッドを呼び出すことができます。HTML には、ATL コントロール ウィザードが挿入した 3 つのディスパッチ メソッドがあります。つまり、コントロールの背景色を変更するためにディスパッチがメッセージとして送信する 3 つの OnClick メソッドです。

HTML ファイルの 1 つのメソッドを調べてみます。

<BUTTON onclick='window.external.OnClick(theBody, "red");'>Red</BUTTON>

この HTML コードでは、ボタン タグの一部として、ウィンドウ外部メソッド OnClick が呼び出されます。このメソッドには、パラメータが 2 つあります。theBody は、HTML ドキュメントの本体を参照します。"red" は、ボタンがクリックされたときに、コントロールの背景色を赤に変更することを示します。タグの後の Red は、ボタンのラベルです。

メソッドを自分で変更する方法については、「ATL DHTML コントロールの変更」を参照してください。HTML ファイルの詳細については、「DHTML コントロール プロジェクトの要素の識別」を参照してください。

参照

その他の技術情報

DHTML コントロールに対する ATL のサポート