MAPI メッセージ ストア プロバイダーの開発

適用対象: Outlook 2013 | Outlook 2016

他の MAPI サービス プロバイダーと同様に、メッセージ ストアは、基になる記憶域メカニズムのサービスを MAPI クライアント アプリケーションと MAPI スプーラーに提示するダイナミック リンク ライブラリ (DLL) です。 メッセージ ストア プロバイダーは、MAPI クライアントと MAPI スプーラーが使用できるフォルダーとメッセージの階層セットとして、基になるストレージ メカニズムを提示します。

次の図は、MAPI メッセージ ストアの基本的なアーキテクチャを示しています。

メッセージ ストアのアーキテクチャ

メッセージ ストア アーキテクチャ

任意の種類の基になるストレージ メカニズムを使用して、メッセージ ストア プロバイダーを実装できます。 ただし、パフォーマンスの問題に注意する必要があります。 さらに、基になる記憶域メカニズムは、MAPI オブジェクトの階層コレクションとして表示する必要があります。 これらの要件は、通常、メッセージ ストアは、データベース内のオブジェクトの階層ストレージをサポートし、プログラミング インターフェイスまたは適切に定義されたファイル構造を持つ既存のデータベース製品を使用して実装されることを意味します。 たとえば、Microsoft Office Access、SQL、Oracle データベースを基になるストレージ メカニズムとして使用できます。 一部のデータベース製品には、MAPI 機能の実装を容易にする機能セットがあるため、データベース製品の選択は、メッセージ ストア プロバイダーがサポートする必要がある機能の影響を受ける可能性があります。

基になるストレージ メカニズムとして既存のデータベースを使用すると、通常、独自の階層型ストレージ メカニズムを実装するよりも MAPI オブジェクトとして MAPI クライアントにデータベース オブジェクトを表示する方が簡単であるため、作業が節約されます。 これにより、独自の階層ストレージ メカニズムを実装する場合よりも高いレベルで MAPI 操作を処理できます。 たとえば、特定の件名行でメッセージを検索することは、階層型ストレージ メカニズムを検索する複雑なルーチンを実装するのではなく、適切なデータベース クエリを作成して送信するという非常に単純な問題になります。

メッセージ ストア プロバイダーは、MAPI クライアントと MAPI スプーラーと通信して、フォルダーとオブジェクトに対する操作を実行します。 メッセージ ストア プロバイダーは、これらの操作を基になるストレージ メカニズムの下位レベルの操作に変換します。 MAPI スプーラーは通常、メッセージの送受信中にメッセージ ストア プロバイダーと通信します。 MAPI クライアントは通常、メッセージ ストア プロバイダーと通信してフォルダー階層を操作し、メッセージの読み取り、編集、削除、および送信を行います。

MAPI スプーラーと MAPI クライアントの両方がメッセージ ストア プロバイダーと通信して、新しいメッセージを作成します。 クライアント アプリケーションは、ユーザーがメッセージを作成するときにこれを行います。 MAPI スプーラーは、受信メッセージを受信するときにこれを行います。 どちらの場合も、新しいメッセージが存在する場合は、通常、メッセージ ストアの受信トレイ フォルダーに作成されます。

メッセージ ストア プロバイダーは、MAPI テーブル、フォルダー、メッセージ、およびプロパティを大量に使用します。 これらのオブジェクトの実装の詳細については、「 MAPI テーブルMAPI フォルダーMAPI メッセージMAPI プロパティの概要」を参照してください。 メッセージ ストア プロバイダーを実装する前に、その資料について理解しておく必要があります。

メッセージ ストア プロバイダーには、ユーザーの既定のメッセージ ストアとして機能できるプロバイダーと、機能しないメッセージ ストア プロバイダーの 2 種類があります。 既定のメッセージ ストアは、クライアント アプリケーションと MAPI スプーラーがメッセージの受信やフォルダーの作成など、任意のメッセージング タスクを実行できるメッセージ ストアです。 既定のメッセージ ストア プロバイダーでは、すべてのメッセージ ストア プロバイダーに必要な最小数よりも多くの機能をサポートする必要があります。

関連項目