HrThisThreadAdviseSinkHrThisThreadAdviseSink

適用されます: OutlookApplies to: Outlook

スレッドの安全のための既存のアドバイズ シンクをラップするアドバイズ シンクを作成します。Creates an advise sink that wraps an existing advise sink for thread safety.

ヘッダー ファイル:Header file:
Mapiutil.hMapiutil.h
によって実装されます。Implemented by:
MAPIMAPI
によって呼び出されます。Called by:
クライアント アプリケーションClient applications
HrThisThreadAdviseSink(
  LPMAPIADVISESINK lpAdviseSink,
  LPMAPIADVISESINK FAR * lppAdviseSink
);

ParametersParameters

lpAdviseSinklpAdviseSink

[in]ラップするアドバイズ シンクへのポインター。[in] Pointer to the advise sink to be wrapped.

lppAdviseSinklppAdviseSink

[out]_LpAdviseSink_パラメーターが指す、アドバイズ シンクをラップする新しいアドバイズ シンクへのポインターへのポインターです。[out] Pointer to a pointer to a new advise sink that wraps the advise sink pointed to by the lpAdviseSink parameter.

Return valueReturn value

なし。None.

備考Remarks

ラッパーでは、通知がHrThisThreadAdviseSink関数を呼び出した同じスレッドで呼び出されることになっていることを確認します。The purpose of the wrapper is to make sure that notification is called on the same thread that called the HrThisThreadAdviseSink function. この関数は、特定のスレッド上で実行する必要があります通知コールバックを保護するために使用されます。This function is used to protect notification callbacks that must run on a particular thread.

クライアント アプリケーションは、通知が生成されるときは、クライアントが以前ののアドバイスで渡されたアドバイズ シンク オブジェクトのIMAPIAdviseSink::OnNotifyメソッドがコールされたときに制限するのにはHrThisThreadAdviseSinkを使用する必要があります。 を呼び出します。Client applications should use HrThisThreadAdviseSink to restrict when notifications are generated, that is, when calls are made to the IMAPIAdviseSink::OnNotify method of the advise sink object passed by the client in a previous Advise call. 任意に生成するのには、通知が許可されている場合通知の実装可能性があります、クライアントにマルチ スレッド処理がこれに該当する場合。If notifications are allowed to be generated arbitrarily, a notification implementation might force a client into multithreaded operation when that would not be appropriate. たとえば、クライアントは、マルチ スレッドの呼び出しをサポートしていない Microsoft Foundation クラス ライブラリのいずれかのライブラリを使用する場合があります。For example, a client might use a library, such as one of the Microsoft Foundation Class Libraries, that does not support multithreaded calls. 別のスレッドに通知は、このようなクライアント、テストが困難で、エラーを起こしやすい。Notification on a different thread would make such a client difficult to test and prone to error.

HrThisThreadAdviseSinkは、 OnNotify呼び出しは、これらの適切な時刻にのみ発生することを確認します。HrThisThreadAdviseSink makes sure that OnNotify calls occur only at these appropriate times:

  • 中の任意の MAPI メソッドの呼び出しを処理します。During processing of a call to any MAPI method.

  • Windows メッセージの処理します。During processing of Windows messages.

HrThisThreadAdviseSinkが実装されると、任意のスレッドでの新規のアドバイズ シンクのOnNotifyメソッドへの呼び出しは、 HrThisThreadAdviseSinkが呼び出された対象のスレッドで実行される元の通知方法を発生します。When HrThisThreadAdviseSink is implemented, any calls to the new advise sink's OnNotify method on any thread cause the original notification method to be executed on the thread on which HrThisThreadAdviseSink was called.

通知の詳細については、アドバイズ シンクで MAPI イベント通知通知シンク オブジェクトを実装するを参照してください。For more information about notification and advise sinks, see Event Notification in MAPI and Implementing an Advise Sink Object.