次の方法で共有


COM+ でのイベントの発行と配信

イベントを発行するには、イベント クラス オブジェクトをインスタンス化し、目的のメソッドを呼び出すだけでかまいません。コードでこれを行う方法について詳しくは、「イベントの発行」をご覧ください。

パブリッシャーがイベントを発生させると、COM+ イベント サービスはサブスクリプション データベースを検索し、インスタンス化されたイベント クラスにサブスクリプションを登録したすべてのサブスクライバーを見つけます。 (直接作成、モニカー、またはキューに登録されたコンポーネントによって) それらのサブスクライバーに接続し、メソッドを呼び出します。 イベントに対して複数のサブスクライバー通知をサポートするには、メソッドにパラメーターのみ含めることができます。また、HRESULT 値の成功または失敗のみ返す必要があります。

Note

このバージョンの COM+ イベントは、分散イベント ストアをサポートしていません。 サブスクライバーは、通知を受け取る各コンピューター上でイベントをサブスクライブする必要があります。 別の方法として、イベント クラス オブジェクトとサブスクリプションを中央のコンピューターに登録し、イベントを発行するリモート コンピューターからこのイベント クラス オブジェクトをインスタンス化することもできます。 イベントの配信は、DCOM または COM+ キューに登録されたコンポーネント サービスによって提供されます。 COM+ キューに登録されたコンポーネント サービスの使用について詳しくは、「COM+ キューに登録されたコンポーネントでの COM+ イベントの使用」をご覧ください。

 

既定では、COM+ イベント サービスは、決まった順序や反復可能な順序ではなく、一度に 1 つずつイベントを発生させます。 サブスクライバーがイベントを受け取る順序を制御する必要があるパブリッシャーは、パブリッシャー フィルターを実装できます。 (詳しくは、「COM+ でのイベントのフィルター処理」をご覧ください)。

COM+ でのイベントのフィルター処理

サブスクリプション

COM+ イベント クラス オブジェクト

COM+ キューに登録されたコンポーネントでの COM+ イベントの使用