共用方式為


MAPI 服務提供者

適用於:Outlook 2013 |Outlook 2016

有三種常見的服務提供者類型:

  • 通訊錄提供者。

  • 訊息存放區提供者。

  • 傳輸提供者。

通訊簿和郵件存放區提供者有許多相似之處。 他們會向MAPI註冊唯一標識碼,用來建構其物件的專案標識碼。 它們提供用戶端可以存取及操作的物件和屬性階層。 針對其容器物件,它們支援階層數據表和內容數據表。 它們支援這些數據表的事件通知,並選擇性地針對個別物件提供通知,以便通知用戶端會話期間發生的變更。 當作業變得冗長時,它們可以顯示進度指示器來通知使用者作業的狀態。 用戶端可以使用 IAddrBook:IMAPIPropIMAPISession:IUnknown 介面,或直接使用下表中的其中一個服務提供者介面,透過MAPI間接與通訊簿和訊息存放區提供者通訊。

通訊錄提供者介面 訊息存放區提供者介面
IABContainer:IMAPIContainer
IMsgStore:IMAPIProp
IDistList :IMAPIContainer
IMAPIFolder:IMAPIContainer
IMailUser:IMAPIProp
IMessage:IMAPIProp

IAttach:IMAPIProp

傳輸提供者與通訊簿和訊息存放區提供者在與MAPI和客戶端通訊的方式上有所不同。 傳輸提供者通常會等候MAPI提示他們輸入資訊,而不是起始通訊。 不同於其他提供者,傳輸提供者不支援客戶端經常存取的各種物件和數據表。 不過,它們確實支持狀態物件,如同所有服務提供者一樣,並在狀態數據表中發佈其屬性。 雖然通訊簿和訊息存放區提供者會呼叫 IMAPISupport::SetProviderUID 方法來註冊唯一標識碼以建構其專案標識碼,但傳輸提供者會呼叫 IXPLogon::AddressTypes 方法來註冊唯一標識符,以及負責傳遞特定訊息的地址類型。

您的服務提供者應該有三個頭檔:一個公用頭檔和兩個內部檔案。 使用公用頭文件進行組態,以及記錄屬性及其值。 在其中一個內部頭檔中包含所有必要的公用MAPI標頭;此頭檔應包含在您所有的服務提供者來源檔案中。 使用其他內部檔案來定義資源標識碼。

通訊錄、郵件存放區和傳輸提供者會執行下列工作:

  • 提供進入點函式。

  • 提供提供者和登入對象來處理登入和初始化。

  • 如果提供者屬於訊息服務,請提供訊息服務進入點函式。

  • 藉由實作屬性表來支持組態。

  • 實作狀態物件並支援狀態數據表。

  • 處理關機。

另請參閱

MAPI 概念