DHTML から C++ コードを呼び出す

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

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

DHTML から C++ コードを呼び出す例を確認するには、ATL コントロール ウィザードを使用して DHTML コントロールを作成し、ヘッダーファイルと HTML ファイル内のコードを確認します。

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

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

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

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

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

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

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

HTML ファイル内のいずれかのメソッドを確認します。

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

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

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

関連項目

DHTML コントロールのサポート