次の方法で共有


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

大部分の 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 グラフィック

注意

この図に示されている名前はプレースホルダーです。 コントロールで公開される 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 のサポート