IMAPISupport::Notify

適用対象: Outlook 2013 | Outlook 2016

指定したイベントの通知を、 IMAPISupport::Subscribe メソッドを使用して最初に通知に登録されたアドバイス ソースに送信します。

HRESULT Notify(
LPNOTIFKEY lpKey,
ULONG cNotification,
LPNOTIFICATION lpNotifications,
ULONG FAR * lpulFlags
);

パラメーター

lpKey

[in]アドバイズ ソース オブジェクトの通知キーへのポインター。 lpKey パラメーターを NULL にすることはできません。

cNotification

[in] lpNotifications パラメーターによって指される通知構造体の数。

lpNotifications

[in]保留中の通知を記述する NOTIFICATION 構造体の配列へのポインター。

lpulFlags

[in, out]通知プロセスを制御するフラグのビットマスク。 入力時に、次のフラグを設定できます。

  • MAPI_UNICODE

    lpNotifications が指す通知構造体の文字列は Unicode 形式です。 MAPI_UNICODE フラグが設定されていない場合、文字列は ANSI 形式です。

    出力時に、MAPI は次のフラグを設定できます。

  • NOTIFY_CANCELED

    コールバック関数が同期通知を取り消しました。

戻り値

S_OK

通知が正常に生成されました。

注釈

IMAPISupport::Notify メソッドは、すべてのサービス プロバイダー サポート オブジェクトに対して実装されます。 サービス プロバイダーは Notify を呼び出して、MAPI が IMAPISupport::Subscribe メソッドを使用して通知用に以前に登録したアドバイズ シンクの通知を生成するように要求します。

Notify、lpNotifications パラメーターが指す構造体をメモリにコピーし、適切なアドバイズ シンクの IMAPIAdviseSink::OnNotify メソッドを呼び出します。 OnNotify が通知で終了すると、関連するメモリが解放されます。 呼び出し元はメモリを割り当てる必要はありません。MAPI は、必要なすべてのメモリ割り当てを実行します。

呼び出し側への注意

lpKey パラメーターで渡される通知キーは、lpKeyIMAPISupport::Subscribe メソッドに渡されるキーと同じである必要があります。 多くのプロバイダーは、アドバイズ ソースのエントリ識別子をキーとして使用しますが、ファイル パスなどの他のデータを使用できます。 MAPI では、このキーを使用して、特定されたアドバイス ソース上の通知のすべての登録を検索します。

通知構造体の lpEntryID メンバーを長期的なエントリ識別子に設定してください。

保留中の通知の Subscribe 呼び出しで NOTIFY_SYNC フラグを設定した場合、 Notify は、返される前 に IMAPIAdviseSink::OnNotify メソッドコールバック関数を呼び出します。 アドバイズ シンクは、手動で作成することも、 HrAllocAdviseSink を呼び出すことによって作成することもできます。 HrAllocAdviseSink 関数を使用すると、呼び出し元は、通知の一部として Notify 呼び出しを行うコールバック関数を指定できます。 コールバック関数は 、NOTIFCALLBACK プロトタイプに準拠しています。 クライアントによって実装されるコールバック関数は常にS_OKを返します。サービス プロバイダーによって実装されるコールバック関数は、CALLBACK_DISCONTINUEを返すことができます。

コールバック関数がCALLBACK_DISCONTINUEを返す場合、MAPI は通知の送信を停止し、 Notify メソッドの lpulFlags パラメーターでNOTIFY_CANCELEDを返します。 プロセスが非アクティブであると想定し、そのプロセスの通知の生成を停止できます。 NotifylpulFlags で 0 を返した場合、プロセスは引き続きアクティブであり、必要に応じて通知を送信し続ける必要があります。

同期通知を使用する場合は、デッドロックが発生しないように注意してください。

通知プロセスの詳細については、「 MAPI でのイベント通知」を参照してください。

関連項目