次の方法で共有


手順 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 を追加するには

  1. PolyCtl.h の継承クラス一覧の最後に次の行を追加します。前の行にはコンマを追加します。

    public IObjectSafetyImpl<CPolyCtl, INTERFACESAFE_FOR_UNTRUSTED_CALLER>
    
  2. PolyCtl.h の COM マップに次の行を追加します。

    COM_INTERFACE_ENTRY(IObjectSafety)
    

コントロールのビルドと動作確認

コントロールをビルドします。ビルドが完了したら、ブラウザ ビューで PolyCtl.htm を再び開きます。今回は [セキュリティの警告] ダイアログ ボックスが表示されず、Web ページがすぐに表示されます。多角形の中をクリックします。辺の数が 1 つずつ増えます。多角形の外をクリックすると、辺の数が 1 つずつ減ります。辺の数を 3 未満に減らそうとすると、設定したエラー メッセージが表示されます。

手順 6 に戻る

次の手順

これで ATL チュートリアルは終わりです。ATL の詳細を示すリンクについては、「ATL」を参照してください。

参照

参照

ATL チュートリアル