DispSink サンプル : ディスパッチ インターフェイスを通じた、COM シングルトン サーバーで発生したイベントの処理

更新 : 2007 年 11 月

DispSink サンプルでは、イベントを発生させるために使用する独自のデュアル インターフェイスとディスパッチ インターフェイスを持つシングルトン サーバー オブジェクト (1 つのインスタンスだけを持つことができるオブジェクト) の例を示します。

DispSink 属性サンプルは、このサンプルの属性付きバージョンです。

k6c9b35s.alert_security(ja-jp,VS.90).gifセキュリティに関するメモ :

このサンプル コードは概念を示す目的で提供されているものです。必ずしも最も安全なコーディング手法に従っているわけではないので、アプリケーションまたは Web サイトでは使用しないでください。Microsoft は、サンプル コードが意図しない目的で使用された場合に、付随的または間接的な損害について責任を負いません。

サンプルとそのインストール手順を取得するには

  • Visual Studio で、[ヘルプ] メニューの [サンプル] をクリックします。

    詳細については、「サンプル ファイルの格納場所」を参照してください。

  • 使用できるサンプルの最新バージョンと完全な一覧については、オンラインの Visual Studio 2008 Samples のページを参照してください。

  • サンプルは、コンピュータのハード ディスク上にもあります。既定では、サンプルおよび Readme ファイルは、\Program Files\Visual Studio 9.0\Samples\ の下のフォルダにコピーされます。Visual Studio Express Edition の場合、すべてのサンプルはオンライン上にあります。

サンプルのビルドと実行

このサンプルをビルドして実行するには

  1. ソリューション ファイル DispSink.sln を開きます。

  2. [ビルド] メニューの [ソリューションのビルド] をクリックします。

  3. ActiveX コントロール テスト コンテナの複数のインスタンスを開き、クライアント コントロール DispCtl を各インスタンスに挿入します。テスト コンテナへのアクセス方法については、「テスト コンテナでのプロパティとイベントのテスト」を参照してください。

  4. すべてのコントロールで Connect メソッドを呼び出します。

  5. コントロールの 1 つで Send メソッドを呼び出します。[メソッドの呼び出し] ダイアログ ボックスの [パラメータの型] フィールドを [VT_BSTR] に変更し、[パラメータ値] ボックスに任意の文字列を入力します。Invoke をクリックします。すべての接続コントロールの中央に文字列が表示されます。

  6. コントロールを削除する前に、すべてのコントロールで Disconnect メソッドを呼び出します。

サンプルの動作

このサーバーは、イベントを発生させるために使用する独自のデュアル インターフェイスとディスパッチ インターフェイスを持つ単一オブジェクトです。サーバー オブジェクトは、デュアル インターフェイスの Send メソッドを通じてデータを受け取り、ディスパッチ インターフェイスの Transfer イベントを通じてすべての接続コンポーネントにそのデータを送信します。

このクライアントは、サーバー オブジェクトを含む ActiveX コントロールです。このコントロールは、サーバー オブジェクトが発生させた Transfer イベントに応答します。このコントロールには ConnectSend、および Disconnect の各メソッドを持つデュアル インターフェイスがあります。Transfer イベントが BSTR を含むバリアントで発生した場合は、文字列がコントロールの中央に表示されます。

キーワード

このサンプルでは、次のキーワードを使用します。

#import; CComAutoThreadModule; CComSimpleThreadAllocator; CoCreateInstance; DECLARE_CLASSFACTORY_AUTO_THREAD(); FireViewChange

参照

その他の技術情報

ATL サンプル