DHTML コントロール プロジェクトの要素の識別

更新 : 2007 年 11 月

大部分の DHTML コントロール コードは、ATL コントロールに対して作成されるコードにかなり似ています。ジェネリック コードの基本を理解するには、「ATL チュートリアル」を参照した後、「ATL プロジェクトの作成」および「ATL COM オブジェクトの基本事項」のセクションを参照してください。

DHTML コントロールは、ほかの ATL コントロールに似ていますが、次の点が異なります。

  • コントロールが実装する標準のインターフェイスのほかに、C++ コードと HTML ユーザー インターフェイス (UI: User Interface) との間の通信に使用されるインターフェイスを実装しています。このインターフェイスを使用して HTML UI は C++ コードを呼び出します。

  • コントロール UI の HTML リソースを作成します。

  • メンバ変数 m_spBrowser によって DHTML オブジェクト モデルにアクセスできます。m_spBrowser は、IWebBrowser2 型のスマート ポインタです。このポインタを使用すると、DHTML オブジェクト モデルのどの部分にもアクセスできます。

DLL、DHTML コントロール、Web ブラウザ、および HTML リソースの関係を次の図に示します。

DHTMLcontrolProjectElements グラフィック

zdw29w28.alert_note(ja-jp,VS.90).gifメモ :

この図に示されている名前はプレースホルダです。コントロールで公開される HTML リソースとインターフェイスの名前は、ATL コントロール ウィザードで割り当てた名前に基づいて決められます。

この図の要素は次のとおりです。

  • My DLL   ATL プロジェクト ウィザードを使用して作成された DLL。

  • DHTML コントロール (m_spBrowser)   ATL コントロール ウィザードを使用して作成された DHTML コントロール。このコントロールは、Web ブラウザ オブジェクトのインターフェイス IWebBrowser2 をとおして、Web ブラウザ オブジェクトとそのメソッドにアクセスします。このコントロール自身は、コントロールに必要な標準インターフェイスのほかに、次の 2 つのインターフェイスを公開します。

    • IDHCTL1   コントロールによって公開されるコンテナ専用インターフェイス。

    • IDHCTLUI1   C++ コードと HTML UI との間で通信するためのディスパッチ インターフェイス。Web ブラウザは、コントロールのディスパッチ インターフェイスを使用してコントロールを表示します。コントロールのユーザー インターフェイスからこのディスパッチ インターフェイスの各種メソッドを呼び出すには、起動するメソッド名を後ろに指定して window.external を起動します。window.external には、このコントロールの UI を構成する HTML の中の SCRIPT タグからアクセスします。リソース ファイルにおける外部メソッドの起動の詳細については、「DHTML からの C++ コードの呼び出し」を参照してください。

  • IDR_CTL1   HTML リソースのリソース ID。この場合、ファイル名は DHCTL1UI.htm です。DHTML コントロールは、標準の HTML タグと外部ウィンドウ ディスパッチ コマンドから成る HTML リソースを使用します。標準の HTML タグと外部ウィンドウ ディスパッチ コマンドは、テキスト エディタで編集できます。

  • Web ブラウザ   Web ブラウザは、HTML リソースの HTML に基づいてコントロールの UI を表示します。Web ブラウザの IWebBrowser2 インターフェイスへのポインタを DHTML コントロールで使用すると、DHTML オブジェクト モデルにアクセスできます。

ATL コントロールウィザードは、HTML リソースと .cpp ファイルの両方に既定のコードのコントロールを生成します。ウィザードで生成されたとおりにコントロールをコンパイルして実行し、Web ブラウザまたは ActiveX コントロール テスト コンテナでコントロールを表示できます。テスト コンテナで表示される 3 つのボタンを持つ既定の ATL DHTML コントロールを次の図に示します。

ATL DHTML コントロール

DHTML コントロールのビルドを開始する方法については、「ATL DHTML コントロールの作成」を参照してください。テスト コンテナへのアクセス方法については、「テスト コンテナでのプロパティとイベントのテスト」を参照してください。

参照

その他の技術情報

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