實作MAPI物件

適用於:Outlook 2013 |Outlook 2016

MAPI 物件可以使用C++類別或 C 數據結構來實作,視用戶端或服務提供者所使用的語言和 API 集合而定。 服務提供者可以使用 C 撰寫,或使用 MAPI 服務提供者介面C++;用戶端應用程式也可以使用 C 或 C++。 可能的話,使用面向物件程序設計介面的用戶端和服務提供者應該使用C++。

C++是慣用的選擇,因為MAPI是面向對象的技術,而C++更輕鬆地用於面向物件開發。 產生的程式代碼更簡單且更簡單,因此更容易維護。 MAPI 檔主要針對C++開發人員撰寫;本參考中MAPI介面方法的所有語法描述都C++。

開發人員可以使用 Microsoft Visual Studio 和第三方開發工具來開發呼叫 MAPI 的解決方案。 請注意,開發人員應該使用 C 或 Unmanaged C++,但非受控 C++ 來撰寫 MAPI 解決方案。

當 MAPI 物件實作時,用戶端或服務提供者會建立所有介面方法的程式代碼、實作特定之任何私用方法的程式代碼,以及支援私用數據成員以維護狀態資訊的程式代碼。 介面方法的程式代碼必須遵循MAPI所發佈的規格,以記載預期的行為。

Mapidefs.h 頭檔和 OLE 頭檔中有許多巨集,任一語言的用戶端和服務提供者都可以使用這些巨集來協助他們定義MAPI物件。 例如,有一個巨集可定義每個MAPI介面的方法。 定義 IUnknown 介面方法的巨集會出現在 Mapidefs.h 中,如下所示:

#define MAPI_IUNKNOWN_METHODS(IPURE)          \
    MAPIMETHOD(QueryInterface)                \
        (THIS_ REFIID riid, LPVOID FAR * ppvObj) IPURE;    \
    MAPIMETHOD_(ULONG,AddRef)  (THIS) IPURE;               \
    MAPIMETHOD_(ULONG,Release) (THIS) IPURE;   \
 

另請參閱

MAPI 對象和介面概觀