IProviderAdmin::GetProviderTable
適用対象: Outlook 2013 | Outlook 2016
メッセージ サービスのプロバイダー テーブル (メッセージ サービス内のサービス プロバイダーの一覧) へのアクセスを提供します。
HRESULT GetProviderTable(
ULONG ulFlags,
LPMAPITABLE FAR * lppTable
);
パラメーター
ulFlags
[in]プロバイダー テーブルの列で返される文字列の型を制御するフラグのビットマスク。 次のフラグを設定できます。
MAPI_UNICODE
文字列列は Unicode 形式です。 MAPI_UNICODE フラグが設定されていない場合、列は ANSI 形式になります。
lppTable
[out]プロバイダー テーブルへのポインターへのポインター。
戻り値
S_OK
プロバイダー テーブルが正常に返されました。
注釈
IProviderAdmin::GetProviderTable メソッドは、メッセージ サービス内の各サービス プロバイダーに関する情報を含む MAPI が管理するテーブルである、メッセージ サービスのプロバイダー テーブルへのポインターを取得します。
IMsgServiceAdmin::GetProviderTable メソッドによって返されるプロバイダー テーブルとは異なり、IProviderAdmin::GetProviderTable によって返されるプロバイダー テーブルには、メッセージ サービス内の 1 つ以上のサービス プロバイダーに関連付けられている情報を表す追加の行が含まれる場合があります。 この追加情報は、Mapisvc.inf ファイルの "セクション" キーワード (keyword)でプロファイルに追加されます。 プロバイダーに追加のプロファイル セクションがある場合は、これらのセクションの MAPIUID 構造体が PR_SERVICE_EXTRA_UIDS (PidTagServiceExtraUids) プロパティに格納されます。 PR_SERVICE_EXTRA_UIDS は、メッセージ サービス プロファイル セクションに保存されます。
削除されたプロバイダー、または使用中のプロバイダーが削除対象としてマークされているプロバイダーは、プロバイダー テーブルには含まれません。 プロバイダー テーブルは静的です。つまり、メッセージ サービスへの後続の追加または削除はテーブルに反映されません。
メッセージ サービスにプロバイダーがない場合、 IProviderAdmin::GetProviderTable は、0 行のテーブルとS_OK戻り値を返します。
ulFlags パラメーターでMAPI_UNICODE フラグを設定すると、IMAPITable::QueryColumns メソッドと IMAPITable::QueryRows メソッドから返される列の形式に影響します。
このフラグは、 IMAPITable::QuerySortOrder メソッドによって返される並べ替え順序のプロパティ型も制御します。
プロバイダー テーブル内の列の完全な一覧については、「 プロバイダー テーブル」を参照してください。
呼び出し側への注意
プロバイダー テーブルの行をトランスポート順に取得するには、 テーブルを PR_PROVIDER_ORDINAL (PidTagProviderOrdinal) 列で並べ替えます。
サービス プロバイダーを表す行 (余分な行を含まない) のみを取得するには、取得を、 PR_RESOURCE_TYPE (PidTagResourceType) 列の値が PT_ERROR の行に制限します。
MFCMAPI リファレンス
MFCMAPI のサンプル コードについては、次の表を参照してください。
ファイル | 関数 | コメント |
---|---|---|
MsgServiceTableDlg.cpp |
CMsgServiceTableDlg::OnDisplayItem |
MFCMAPI では 、IProviderAdmin::GetProviderTable メソッドを使用して、新しいダイアログ ボックスでレンダリングするプロバイダーのテーブルを取得します。 |