註冊通知
適用於:Outlook 2013 |Outlook 2016
用戶端可以在初始化程式中註冊通訊錄或訊息存放區通知。
不論是否有任何通訊簿提供者支援,MAPI 都支持通訊簿上的通知。 訊息存放區上的通知支援取決於特定的訊息存放區提供者。 若要判斷特定訊息存放區提供者是否支援通知,請檢查其 PR_STORE_SUPPORT_MASK (PidTagStoreSupportMask) 屬性。 如果訊息存放區支援通知,則會設定STORE_NOTIFY_OK位。
呼叫建議來源物件的 Advise 方法來 註冊通知。 許多物件會實 作「建議 」,而用戶端可以透過各種方式向這些對象註冊。
註冊通知
建立MAPI建議接收物件,並遞增其參考計數。
如果適當,請呼叫 HrThisThreadAdviseSink 來建立會包裝原始建議接收的建議接收器對象,然後釋放原始的建議接收器。
呼叫下列其中一個 建議 方法來完成註冊:
呼叫 IMAPISession::建議 註冊工作階段通知,或在通訊錄或訊息存放區物件上註冊通知。
呼叫 IAddrBook::建議 註冊通訊錄通知,或在傳訊使用者、容器或通訊組清單上註冊通知。
呼叫 IABLogon::建議 直接向通訊簿提供者註冊,以取得訊息使用者、容器或通訊組清單上的通知。
呼叫 IMsgStore::建議 註冊訊息存放區通知,或在資料夾或訊息上註冊通知。
呼叫 IMSLogon::建議 直接向訊息存放區提供者註冊,以取得資料夾或訊息上的通知。
呼叫 IMAPITable::建議 註冊數據表通知。
快取從 [ 建議] 傳回的連接編號。
如果使用包裝的建議接收,請將它釋放。 一旦註冊包裝的建議接收,您就不再需要它。
呼叫 IMAPISession::Advise 可讓您註冊整體會話上的重大錯誤通知,或個別物件上的各種通知。 當另一個使用共用會話的用戶端呼叫 IMAPISession::Logoff 方法時,會話會傳送重大錯誤通知給登入共用工作階段的用戶端。 若要註冊會話通知,請針對專案標識元參數傳遞NULL。 若要在個別物件上註冊通知,請傳遞物件的專案標識碼。 IMAPISession 方法會將呼叫轉送至適當的服務提供者,如專案標識碼的MAPIUID部分所決定。 呼叫 IMAPISession::建議 註冊物件通知比呼叫服務 提供者的 Advise 方法簡單。
向通訊錄註冊類似於向會話註冊。 若要從通訊簿註冊重大錯誤通知,請針對專案標識碼傳遞NULL。 若要在特定通訊簿對象上註冊通知,請指定適當的專案標識符,以及感興趣的事件或事件。 請注意,許多通訊簿提供者不支援個別物件的通知。 相反地,它們支援其內容和階層數據表的數據表通知。
從 [建議] 呼叫成功傳回之後,最好立即釋放您實作或使用 HrAllocAdviseSink 建立的建議接收器。 這是因為服務提供者可以在 「 建議 」呼叫之後,但在進行 Unadvise 呼叫之前,釋放您的建議接收器。 一旦您為建議來源提供建議接收的指標,而且此建議接收的參考計數已遞增,除非您長期使用它,否則最好釋放它。
注意事項
在進行 Unadvise 呼叫之前,所有代表有效諮詢註冊的連接號碼都不會釋出。