次の方法で共有


HrQueryAllRows

適用対象: Outlook 2013 | Outlook 2016

テーブルのすべての行を取得します。

プロパティ
ヘッダー ファイル:
Mapiutil.h
実装元:
MAPI
呼び出し元:
クライアント アプリケーションとサービス プロバイダー
HRESULT HrQueryAllRows(
  LPMAPITABLE ptable,
  LPSPropTagArray ptaga,
  LPSRestriction pres,
  LPSSortOrderSet psos,
  LONG crowsMax,
  LPSRowSet FAR * pprows
);

パラメーター

ptable

[in]行の取得元となる MAPI テーブルへのポインター。

ptaga

[in]テーブル列を示すプロパティ タグの配列を含む SPropTagArray 構造体へのポインター。 これらのタグは、取得する特定の列を選択するために使用されます。 ptaga パラメーターが NULL の場合、HrQueryAllRowsptable パラメーターで渡された現在のテーブル ビューの列セット全体を取得します。

プレ

[in]取得制限を含む SRestriction 構造体へのポインター。 pres パラメーターが NULL の場合、HrQueryAllRows は制限を行いません。

Pso

[in]取得する列の並べ替え順序を識別する SSortOrderSet 構造体へのポインター。 psos パラメーターが NULL の場合、テーブルの既定の並べ替え順序が使用されます。

crowsMax

[in]取得する行の最大数。 crowsMax パラメーターの値が 0 の場合、取得された行数の制限は設定されません。

pprows

[out]取得したテーブル行へのポインターの配列を含む、返された SRowSet 構造体へのポインターへのポインター。

戻り値

S_OK

呼び出しによって、テーブルの予想される行が取得されました。

MAPI_E_TABLE_TOO_BIG

テーブル内の行数が、 crowsMax パラメーターに渡された数より大きい。

注釈

クライアント アプリケーションまたはサービス プロバイダーは、Pres パラメーターによって指される制限を課す以外に、HrQueryAllRows が取得しようとする行数を制御できません。 crowsMax パラメーターは、取得を特定の数のテーブル行に制限するのではなく、取得されたすべての行を保持するために使用できるメモリの最大量を定義します。 大規模なメモリ オーバーフローに対する唯一の保護は、 crowsMax を設定することによって提供されるストップギャップ機能です。 エラーが返MAPI_E_TABLE_TOO_BIGは、テーブルに多数の行が含まれているので、一度にすべての行をメモリに保持できないことを意味します。

メッセージ ストア テーブルやプロバイダー テーブルなど、通常は小さいテーブルは、通常 、HrQueryAllRows を使用して安全に取得できます。 コンテンツ テーブルや受信者テーブルなど、非常に大きくなるリスクがあるテーブルは、 IMAPITable::QueryRows メソッドを使用してサブセクションで走査する必要があります。

HrQueryAllRows の呼び出し時にテーブル プロパティが未定義の場合は、プロパティ型PT_NULLとプロパティ識別子PROP_ID_NULLで返されます。