手順 7: Web ページへのコントロールの配置
更新 : 2007 年 11 月
コントロールは完成しました。コントロールが実際の状況で動作するかどうかを確認するために、コントロールを Web ページに配置します。コントロールを定義したときに、コントロールを含む HTML ファイルが作成されました。ソリューション エクスプローラから PolyCtl.htm ファイルを開くと、Web ページでコントロールを参照できます。
この手順では、イベントに応答するように Web ページを記述します。また、コントロールを安全に実行できることを Internet Explorer に通知するために、コントロールを変更します。
Web ページの記述
この時点では、コントロールは何の動作も行いません。そこで、発生したイベントに応答するように Web ページを変更します。
Web ページを記述するには
PolyCtl.htm を開き、HTML ビューを選択します。ページを構成する HTML コードに、以下に太字で示す行を追加します。
<HTML> <HEAD> <TITLE>ATL 8.0 test page for object PolyCtl</TITLE> </HEAD> <BODY> <OBJECT ID="PolyCtl" < CLASSID="CLSID:4CBBC676-507F-11D0-B98B-000000000000"> > </OBJECT> <SCRIPT LANGUAGE="VBScript"><!--Sub PolyCtl_ClickIn(x, y) PolyCtl.Sides = PolyCtl.Sides + 1End SubSub PolyCtl_ClickOut(x, y) PolyCtl.Sides = PolyCtl.Sides - 1End Sub--></SCRIPT> </BODY> </HTML>
ここで追加した VBScript コードは、コントロールから Sides プロパティを取得し、コントロールの中をクリックするたびに辺の数を 1 つずつ増やします。コントロールの外でクリックすると、辺の数を 1 つずつ減らします。
コントロールが安全に実行できることを通知する方法
Internet Explorer で、コントロール付きの Web ページを表示できます。または、Visual C++ に組み込まれた便利な Web ブラウザ ビューを使用することもできます。Web ブラウザ ビューにコントロールを表示するには、PolyCtl.htm を右クリックして [ブラウザで表示] をクリックします。
現在の Internet Explorer のセキュリティ設定に応じて、コントロールを安全に実行できず、損傷の可能性があることを示す [セキュリティの警告] ダイアログ ボックスが表示されることがあります。たとえば、ファイルを表示する以外に、ファイルを削除する Delete メソッドもあるコントロールの場合、そのコントロールをページに表示するだけであれば安全です。しかし、だれかが Delete メソッドを呼び出す可能性があるため、実行するのは安全ではありません。
セキュリティに関するメモ このチュートリアルを行う目的で、安全性を示すマークが付いていない ActiveX コントロールを実行できるように、Internet Explorer のセキュリティ設定を変更できます。[コントロール パネル] の [インターネット オプション] をクリックし、[セキュリティ] をクリックして適切な設定を変更します。チュートリアルが完了したら、セキュリティ設定を元の状態に戻してください。
この特定のコントロールに対しては [セキュリティの警告] ダイアログ ボックスを表示する必要がないことを、Internet Explorer にプログラムで通知できます。これを行うには、IObjectSafety インターフェイスを使用します。ATL では、このインターフェイスの実装が IObjectSafetyImpl クラスによって提供されています。コントロールにこのインターフェイスを追加するには、継承クラスの一覧に IObjectSafetyImpl を追加し、対応するエントリを COM マップに追加します。
コントロールに IObjectSafetyImpl を追加するには
PolyCtl.h の継承クラス一覧の最後に次の行を追加します。前の行にはコンマを追加します。
public IObjectSafetyImpl<CPolyCtl, INTERFACESAFE_FOR_UNTRUSTED_CALLER>
PolyCtl.h の COM マップに次の行を追加します。
COM_INTERFACE_ENTRY(IObjectSafety)
コントロールのビルドと動作確認
コントロールをビルドします。ビルドが完了したら、ブラウザ ビューで PolyCtl.htm を再び開きます。今回は [セキュリティの警告] ダイアログ ボックスが表示されず、Web ページがすぐに表示されます。多角形の中をクリックします。辺の数が 1 つずつ増えます。多角形の外をクリックすると、辺の数が 1 つずつ減ります。辺の数を 3 未満に減らそうとすると、設定したエラー メッセージが表示されます。
次の手順
これで ATL チュートリアルは終わりです。ATL の詳細を示すリンクについては、「ATL」を参照してください。