プロバイダー テーブル
適用対象: Outlook 2013 | Outlook 2016
プロバイダー テーブルには、サービス プロバイダーに関する情報が含まれています。 MAPI によって実装され、クライアントによって使用される 2 つの異なるプロバイダー テーブルがあります。 IMsgServiceAdmin::GetProviderTable メソッドを呼び出してアクセスする最初のテーブルは、現在のプロファイルのすべてのプロバイダーに関する情報を保持します。 IProviderAdmin::GetProviderTable を介してアクセスされる 2 番目のテーブルは、メッセージ サービスのすべてのサービス プロバイダーに関する情報を格納するテーブルを作成します。
これら 2 つのテーブルには別の違いがあります。 IMsgServiceAdmin::GetProviderTable で使用できるプロバイダー テーブルには、サービス プロバイダーを表す行のみが含まれますが、IProviderAdmin::GetProviderTable で使用できるテーブルには、サービス プロバイダーに関連付けられている追加情報を表す行が含まれる場合があります。 この追加情報は、MAPISVC.INF の "セクション" キーワード (keyword)を使用してプロファイルに追加されます。 プロバイダーに追加のプロファイル セクションがある場合は、これらのセクションの MAPIUID 値が PR_SERVICE_EXTRA_UIDS (PidTagServiceExtraUids) プロパティに格納されます。 PR_SERVICE_EXTRA_UIDS は、メッセージ サービス プロファイル セクションに保存されます。
次のプロパティは、両方の種類のプロバイダー テーブルで必要な列セットを構成します。
プロパティ | 値 |
---|---|
PR_INSTANCE_KEY (PidTagInstanceKey) |
PR_DISPLAY_NAME (PidTagDisplayName) |
PR_PROVIDER_DISPLAY (PidTagProviderDisplay) |
PR_PROVIDER_DLL_NAME (PidTagProviderDllName) |
PR_PROVIDER_ORDINAL (PidTagProviderOrdinal) |
PR_PROVIDER_UID (PidTagProviderUid) |
PR_RESOURCE_FLAGS (PidTagResourceFlags) |
PR_RESOURCE_TYPE (PidTagResourceType) |
PR_SERVICE_NAME (PidTagServiceName) |
PR_SERVICE_UID (PidTagServiceUid) |
プロバイダー テーブルを使用して、現在のトランスポート注文を表示したり、変更したりできます。 現在の順序を表示するには、PR_RESOURCE_TYPE プロパティが MAPI_TRANSPORT_PROVIDER に設定されている行のみを取得する制限を作成します。 次 に、PR_PROVIDER_ORDINAL を並べ替えキーとして使用してテーブルを並べ替え、 IMAPITable::QueryRows メソッドまたは HrQueryAllRows 関数を使用してすべての行を取得します。
転送順序を変更するには、同じ制限を適用し、行を取得します。 次に、トランスポート プロバイダーの一意の識別子を表す PR_PROVIDER_UID プロパティから値の配列を作成します。 識別子が目的の順序にある場合は、 IMsgServiceAdmin::MsgServiceTransportOrder メソッドに渡します。
プロバイダー テーブルが使用可能になると、プロバイダーの追加や削除など、後続の変更は反映されません。