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 方法註冊通知的建議接收器產生通知。
通知 會將 lpNotifications 參數所指向的結構複製到記憶體中,並呼叫適當的建議接收器 的 IMAPIAdviseSink::OnNotify 方法。 當 OnNotify 完成通知時,它會釋放所涉及的記憶體。 呼叫端不需要配置記憶體;MAPI 會執行所有必要的記憶體配置。
呼叫者注意事項
在 lpKey 參數中傳遞的通知金鑰應該與 lpKey 中傳遞給 IMAPISupport::Subscribe 方法的金鑰相同。 許多提供者會使用建議來源的專案標識碼作為索引鍵,但可以使用其他數據,例如檔案路徑。 MAPI 會使用此金鑰來尋找已識別之建議來源上通知的所有註冊。
請確定您已將通知結構的 lpEntryID 成員設定為長期專案識別碼。
如果您在 訂閱 任何暫止通知的訂閱呼叫上設定NOTIFY_SYNC旗標, 則 Notify 會先呼叫 IMAPIAdviseSink::OnNotify 方法回呼函式,再傳回。 建議接收可以手動建立,或透過呼叫 HrAllocAdviseSink 來建立。 HrAllocAdviseSink 函式可讓其呼叫端指定通知在通知中呼叫的回調函式。 回調函式符合 NOTIFCALLBACK 原型。 用戶端實作的回調函式一律會傳回S_OK;服務提供者實作的回呼函式可以傳回CALLBACK_DISCONTINUE。
如果回調函式傳回CALLBACK_DISCONTINUE,MAPI 會停止傳送通知,並在 Notify 方法的 lpulFlags 參數中傳回NOTIFY_CANCELED。 您可以假設進程處於非作用中狀態,並停止產生該進程的通知。 如果 Notify 在 lpulFlags 中傳回 0,則進程仍為作用中,且您應該視需要繼續傳送通知。
當您使用同步通知時,請小心避免死結情況。
如需通知程式的詳細資訊,請參閱 MAPI 中的事件通知。