次の方法で共有


DispSink サンプル:ハンドルのイベントをディスパッチ インターフェイス経由 Singleton COM サーバーから起動

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

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

セキュリティに関するメモセキュリティに関するメモ

このサンプル コードは概念を示すためのものであり、その概念に関連するコードのみを示しています。特定の環境について必ずしもセキュリティ要件を満たしていませんので、そのまま使用しないでください。セキュリティおよびエラー処理コードを追加して、プロジェクトをより安全かつ堅牢にすることをお勧めします。これらのサンプル コードは、現状有姿のままで提供されるものであり、一切保証されていません。

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

Visual Studio のサンプルにアクセスするには

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

    既定では、これらのサンプルは drive:\Program Files\Microsoft Visual Studio 10.0\Samples\ にインストールされています。

  • このサンプルの最新版および他のサンプルの一覧については、MSDN Web サイト上で Visual Studio サンプル 」を参照してください。

サンプルのビルドと実行

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

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

  2. From the Build menu, click Build Solution.

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

  4. Invoke the Connectmethod on all of the controls.

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

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

サンプルの動作

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

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

Keywords

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

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

参照

その他の技術情報

ATL サンプル