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