適用対象: Outlook 2013 | Outlook 2016
MAPI オブジェクトは、言語と、クライアントまたはサービス プロバイダーが使用している API セットに応じて、C++ クラスまたは C データ構造を使用して実装できます。 サービス プロバイダーは、MAPI サービス プロバイダー インターフェイスを使用して C または C++ で記述できます。クライアント アプリケーションでは、C または C++ を使用することもできます。 可能であれば、オブジェクト指向プログラミング インターフェイスを使用するクライアントとサービス プロバイダーは C++ を使用する必要があります。
MAPI はオブジェクト指向のテクノロジであり、C++ はオブジェクト指向の開発により容易に使用できるため、C++ が推奨されます。 結果として得られるコードは、保守が容易になり、よりシンプルで簡単になります。 MAPI ドキュメントは主に C++ 開発者向けに記述されています。このリファレンスの MAPI インターフェイス メソッドのすべての構文の説明は C++ にあります。
開発者は、Microsoft Visual Studio とサード パーティ開発ツールを使用して、MAPI を呼び出すソリューションを開発できます。 開発者は C またはアンマネージ C++ を使用する必要がありますが、MAPI ソリューションを記述するためにマネージド C++ は使用しないことに注意してください。
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; \