サービス プロバイダーの開始
適用対象: 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) のバージョンを使用していることを確認します。 これらの関数は、新しく作成されたプロバイダー オブジェクトへのポインターも返します。 プロバイダーのエントリ ポイント関数の作成の詳細については、「 サービス プロバイダー エントリ ポイント関数の実装」を参照してください。