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 リソースの関係を次の図に示します。
注意
この図に示されている名前はプレースホルダーです。 コントロールで公開される 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 コントロールを次の図に示します。
DHTML コントロールのビルドを開始する方法については、「ATL DHTML コントロールの作成」を参照してください。 テスト コンテナーへのアクセス方法については、「テスト コンテナーでのプロパティとイベントのテスト」を参照してください。