オブジェクトへのコネクション ポイントの追加

ATL チュートリアルどのコネクション ポイントをサポートするコントロールを作成する方法を示しますイベントをクリックし、[接続 point.nbsp; を実装する方法を追加するにはIConnectionPointImpl ATL のコネクション ポイントを実装する方法について説明します。(&N)。

接続ポイントを実装するには、2 つの選択肢があります。:

どちらの場合では、接続ポイント ウィザードはタイプ ライブラリが作業を使用します。

特価;接続ポイントを既に実装している、ディスパッチ インターフェイスにメソッドを追加するたびに、.idl ファイルを再コンパイルする必要があり、コントロールまたはオブジェクトにコネクション ポイントを追加する手順を実行します(&N)。

コントロールまたはオブジェクトにコネクション ポイントを追加するには

  1. .Idl ファイルのライブラリ ブロックにディスパッチ インターフェイスを定義します。ATL オブジェクト ウィザードの [属性] タブの [接続ポイントのサポート] チェック ボックスを選択した場合、ディスパッチ インターフェイスは既に作成されています。接続ポイントのサポートチェック ボックスをオンにしなかった場合は、ディスパッチ インターフェイスを .idl ファイルに手動で追加する必要があります。ディスパッチ インターフェイスの例を次に示します。送信インターフェイスがディスパッチ インターフェイスにする必要はありませんが、多くのスクリプト言語として VBScript や JavaScript など、必要とので、この 2 つのディスパッチ インターフェイスの例:
    ライブラリ DProjLib{importlib("stdole32.tlb");importlib("stdole2.tlb");[ uuid(57BC50F0-780B-11d1-8C44-0060083E866C)、 helpstring (」バディ イベント「) ] ディスパッチ インターフェイス DBuddyEvents  プロパティ: メソッド: };
    
    

    Uuidgen.exe または guidgen.exe ユーティリティを使用して GUID を生成するには。

  2. ディスパッチ インターフェイスとして追加 [default, source] object.nbsp; のコクラス インターフェイスもう一度、このコントロールの ATL オブジェクト ウィザードの [属性] タブで接続ポイントのサポートチェック ボックスを選択した場合は、ウィザードを作成する、[default, source エントリ。このエントリを手動で追加するには、太字の行を追加します。(&N):
    コクラスの相棒{[既定] のインターフェイス IBuddy;[デフォルト] ソース ディスパッチ インターフェイス DBuddyEvents;}

    .Idl ファイルを参照してください、 Circ ATL サンプルの例。

  3. クラス ビューを使用して、イベント インターフェイスにメソッドとプロパティを追加するには。

  4. ディスパッチ インターフェイスの定義が完了した後、 FileViewで .idl ファイルを右クリックし、[コンパイル option.nbsp を選択、.idl ファイルをコンパイル;これは、タイプ ライブラリが生成されます。(&N)。

  5. クラス ビューでクラスを右クリックし、実装するコネクション ポイント...を選択します。1 つまたは複数のタイプ ライブラリのタブ ダイアログ ボックスが表示され、インターフェイスは、型 library.nbsp の各タブが表示されます。インターフェイスを選択し、 [ok]を押して、されます。(&N):
    • ヘッダー ファイル、発信呼び出しのイベントになるコードを実装するイベント プロキシ クラスを生成します。

    • コネクション ポイント マップにエントリを追加します。

    • コメントと (NULL パラメーター dispID のアドレスを交換するように指示) #error IProvideClassInfo2Implのパラメーター リストに追加します。

    タイプ ライブラリを作成していません、あなたの computer.nbsp をすべて、typelib の一覧が表示されます;だけこれら他のタイプ ライブラリの 1 つの別のタイプ ライブラリが、同一のアウトゴーイング インターフェイスを実装する場合、接続ポイントを定義するのに使用します。ない既定のソース インターフェイス、コクラスでのタイプ ライブラリをビルドすると、ダイアログ ボックスに適した (ソース) インターフェイスのタイプ ライブラリを報告していない警告メッセージが表示されます。(&N)。

別のオブジェクトのタイプ ライブラリからの撮影は、コネクション ポイントを実装するには

  1. ClassViewBEGIN_COM_MAPマクロを実装するクラスを右クリックし、ショートカット メニューの [から実装するコネクション ポイントを選択。

  2. 実装するコネクション ポイント] ダイアログ ボックスで、タイプ ライブラリを追加... ] をクリックします。

  3. 利用可能な型 libraries.nbsp のいずれかから選択します。タイプ ライブラリを選択すると、タイプ ライブラリの使用可能なインターフェイスの一覧が表示されます。(&N)。

  4. 1 つまたは複数の使用可能なインターフェイスを選択し、 [ok]をクリックします。

  5. .Idl ファイルのいずれかを編集します。:
    • イベント ソースが使用されているオブジェクトの idl ファイルからディスパッチ インターフェイスをコピーします。

    • Importlib命令は、タイプ ライブラリの使用します。

Circ コントロールからコネクション ポイントを使用している .idl ファイルの例はここにあります。

[uuid(38BBFD91-7575-11D1-8C3C-0060083E866C)、version(1.0)、helpstring ("16190 1.0 タイプ ライブラリ」)]ライブラリ MY16190Lib{importlib("stdole32.tlb");importlib("stdole2.tlb");importlib("D:\\ATL25\\samples\\circ\\circ.tlb");//4 つ星この行 [を追加uuid(38BBFD9E-7575-11D1-8C3C-0060083E866C)、helpstring (「Atl16190Ctl クラス」)]コクラス Atl16190Ctl{[既定] のインターフェイス IAtl16190Ctl;[既定] ソース ディスパッチ インターフェイス _CircEvents;//4 つ星とこの 1};}

Index