サービス プロバイダーの開始

適用対象: Outlook 2013 | Outlook 2016

クライアントが MAPI とのセッションを開始した後、ある時点で、サービス プロバイダーが開始されます。 トランスポート プロバイダーは、クライアントがサービスの要求を行ったときに開始されます。 アドレス帳およびメッセージ ストア プロバイダーは、クライアントのログオン プロセス中に開始されます。

クライアントは IMAPISession::OpenAddressBook を呼び出して、プロファイルに含まれる各アドレス帳プロバイダーを読み込み、 IMAPISession::OpenMsgStore を呼び出して特定のメッセージ ストア プロバイダーを読み込みます。 メッセージ サービスの一部であるアドレス帳プロバイダーは、サービス内の他のプロバイダーの前に開始されます。

MAPI は、次の手順を実行して、アクティブなプロファイル内の各サービス プロバイダーを開始します。

  • プロファイル内の DLL の名前を見つける。 プロバイダー DLL の名前を Mapisvc.inf 構成ファイルに登録して、プロファイルに表示されるようにする必要があります。 サービス プロバイダーが個別に、またはメッセージ サービスの一部としてプロファイルに追加されると、プロバイダーに適用されるすべての Mapisvc.inf の [サービス プロバイダー] セクションがプロファイルにコピーされます。 Mapisvc.inf の構造の詳細については、「 MapiSvc.inf のファイル形式」を参照してください。

  • Windows API 関数 LoadLibrary を呼び出して DLL を読み込みます。 MAPI は、サービス プロバイダー DLL を使用するたびに (既に読み込まれているかどうかに関係なく) LoadLibrary を呼び出すか、初めてだけ呼び出すので、サービス プロバイダーは読み込まれる回数を想定しないでください。 LoadLibrary を呼び出すたびに、MAPI は、サービス プロバイダー DLL が不要になったときに、Windows API 関数 FreeLibrary を呼び出します。

  • プロバイダーのエントリ ポイント関数を呼び出します。 MAPI は、プロバイダーのエントリ ポイント関数を呼び出してログオン プロセスを開始します。 エントリ ポイント関数は、MAPI で使用されているバージョンと互換性のあるサービス プロバイダー インターフェイス (SPI) のバージョンを使用していることを確認します。 これらの関数は、新しく作成されたプロバイダー オブジェクトへのポインターも返します。 プロバイダーのエントリ ポイント関数の作成の詳細については、「 サービス プロバイダー エントリ ポイント関数の実装」を参照してください。

関連項目

MAPI サービス プロバイダー