IMsgServiceAdmin::GetProviderTable
適用対象: Outlook 2013 | Outlook 2016
プロバイダー テーブル (プロファイル内のサービス プロバイダーの一覧) へのアクセスを提供します。
HRESULT GetProviderTable(
ULONG ulFlags,
LPMAPITABLE FAR * lppTable
);
パラメーター
ulFlags
[in]Always NULL。
lppTable
[out]プロバイダー テーブルへのポインターへのポインター。
戻り値
S_OK
プロバイダー テーブルが正常に返されました。
注釈
IMsgServiceAdmin::GetProviderTable メソッドは、MAPI プロバイダー テーブル、プロファイルに現在インストールされているすべてのアドレス帳、メッセージ ストア、およびトランスポート プロバイダーを一覧表示するテーブルへのアクセスを提供します。
IProviderAdmin::GetProviderTable メソッドを介して返されるプロバイダー テーブルとは異なり、IMsgServiceAdmin::GetProviderTable から返されるプロバイダー テーブルには、プロファイル内の 1 つ以上のサービス プロバイダーに関連付けられている情報を表す追加の行を含めることはできません。
削除されたプロバイダー、または使用中のプロバイダーが削除対象としてマークされているプロバイダーは、プロバイダー テーブルには含まれません。 プロバイダー テーブルは静的です。つまり、プロファイルへの後続の追加または削除はテーブルに反映されません。
プロファイルにプロバイダーがない場合、 GetProviderTable は 0 行のテーブルとS_OK戻り値を返します。
プロバイダー テーブル内の列の完全な一覧については、「 プロバイダー テーブル」を参照してください。
呼び出し側への注意
プロバイダー テーブルの行をトランスポート順序で取得するには、次の手順を使用します。
IMAPITable::Restrict メソッドを呼び出して、PR_RESOURCE_TYPE (PidTagResourceType) プロパティとMAPI_TRANSPORT_PROVIDERに一致するプロパティ制限を適用します。
IMAPITable::SortTable メソッドを呼び出して、テーブルを PR_PROVIDER_ORDINAL (PidTagProviderOrdinal) 列で並べ替えます。
IMAPITable::QueryRows メソッドを呼び出して、テーブルの行を取得します。
これらの呼び出しの代わりに、すべての適切なデータ構造が渡された HrQueryAllRows 関数を 1 回呼び出すことです。
各行の PR_SERVICE_UID (PidTagServiceUid) 列を取得する場合は、 MAPIUID 構造体のこの配列を使用して、 IMsgServiceAdmin::MsgServiceTransportOrder の呼び出しでトランスポート順序を設定できます。
ulFlags パラメーターで MAPI_UNICODE フラグを設定すると、次の処理が実行されます。
IMAPITable::QueryColumns メソッドによってプロバイダー テーブルの最初のアクティブな列に対して返されるデータの文字列型を Unicode に設定します。 プロバイダー テーブルの最初のアクティブな列は、テーブルを含むプロバイダーが IMAPITable::SetColumns メソッドを呼び出す前に QueryColumns メソッドが返す列です。
QueryRows によってプロバイダー テーブルの最初のアクティブな行に対して返されるデータの文字列型を Unicode に設定します。 プロバイダー テーブルの最初のアクティブな行は、テーブルを含むプロバイダーが SetColumns を呼び出す前に QueryRows が返す行です。
プロバイダー テーブルを含むクライアントが IMAPITable::SortTable メソッドを呼び出す前に 、IMAPITable::QuerySortOrder メソッドによって返される並べ替え順序のプロパティ型 を 制御します。
関連項目
IMsgServiceAdmin::GetMsgServiceTable
IMsgServiceAdmin::MsgServiceTransportOrder