次の方法で共有


MAPI オブジェクトの実装

適用対象: 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;   \
 

関連項目

MAPI オブジェクトとインターフェイスの概要