メッセージ サービスでのプロバイダーの追加または削除

適用対象: Outlook 2013 | Outlook 2016

メッセージ サービスでサービス プロバイダーを追加または削除するには、 IProviderAdmin : IUnknown インターフェイスを 使用します。 IMsgServiceAdmin::AdminProviders を呼び出すことで、IProviderAdmin ポインターを取得できます。 IProviderAdmin::GetProviderTable を介してアクセス可能なプロバイダー テーブルには、メッセージ サービスに現在インストールされているサービス プロバイダーに関する情報が一覧表示されます。 クライアントとサービス プロバイダーは、プロバイダー テーブルを使用して、プロバイダー DLL ファイルの名前 (たとえば、 MAPIUID、表示名、プロバイダーの種類、メッセージ サービスに関する情報) にアクセスできます。 詳細については、「 プロバイダー テーブル」を参照してください。

メッセージ サービスでサービス プロバイダーを追加または削除するには

  1. メッセージ サービス管理オブジェクトにアクセスするには、 AdminServices メソッドを呼び出します。

  2. IMsgServiceAdmin::GetMsgServiceTable を呼び出して、メッセージ サービス テーブルにアクセスします。

  3. PR_DISPLAY_NAME (PidTagDisplayName) またはPR_SERVICE_NAME (PidTagServiceName) に変更するメッセージ サービスの名前と一致する SPropertyRestriction 構造体を使用して、プロパティ制限を構築します。

  4. メッセージ サービス テーブルの IMAPITable::FindRow メソッドを呼び出して、ターゲット メッセージ サービスを表すテーブル内の行を見つけます。

  5. IMsgServiceAdmin::AdminProviders を呼び出して、IProviderAdmin ポインターを取得します。 メッセージ サービス テーブル行の PR_SERVICE_UID (PidTagServiceUid) 列を lpUID パラメーターとして渡します。

  6. プロバイダー テーブルにアクセスするには 、IProviderAdmin::GetProviderTable を呼び出します。

  7. 追加または削除するサービス プロバイダーの名前を使用して 、PR_DISPLAY_NAME (PidTagDisplayName) または PR_PROVIDER_DISPLAY (PidTagProviderDisplay) と一致する SPropertyRestriction 構造体を使用して、プロパティ制限を構築します。

  8. プロバイダー テーブルの IMAPITable::FindRow メソッドを呼び出して、対象のサービス プロバイダーを表すテーブル内の行を見つけます。

  9. IProviderAdmin::CreateProvider を呼び出してプロバイダーを追加するか、IProviderAdmin::D eleteProvider を呼び出してメッセージ サービスから削除します。 CreateProvider の場合は、プロバイダーの PR_DISPLAY_NAME プロパティを lpszProvider パラメーターとして渡します。 どちらのメソッドでも、プロバイダーの PR_SERVICE_UID プロパティを lpUID パラメーターとして渡します。 サービス プロバイダーが追加または削除されると、新しいセッションが作成されるまで変更は明らかになりません。

サービス プロバイダー (特にメッセージ ストア プロバイダー) をプロファイルに追加するもう 1 つの手法として、プロバイダーのエントリ識別子を作成する必要があります。 エントリ識別子を構築するには、その形式に関する知識が必要であるため、この手法は、サービス プロバイダーがエントリ識別子の形式をパブリックにした場合にのみ使用できます。

新しく構築されたエントリ識別子を使用すると、クライアントは IMAPISession::OpenMsgStore を呼び出すことができます。 MAPI では、サービス プロバイダーのプロファイルにプロファイル セクションが自動的に作成されますが、メッセージ サービスには追加されません。

一部のメッセージ サービスでは、この種類の動的変更は許可されません。サポートされているかどうかは、メッセージ サービスによって行われます。 サポートされる場合とサポートされない場合があるもう 1 つの機能は、メッセージ サービスのプライベート プロファイル セクションに直接アクセスできることです。 使用しているメッセージ サービスでこのようなアクセスが許可されている場合は、MAPISVC.INF のプライベート セクションを表す GUID が 発行されます。 この GUID をIProviderAdmin::OpenProfileSection の呼び出しで渡して、プロファイル セクションにアクセスできます。