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,HrQueryAllRows 将检索 在 ptable 参数中传递的当前表视图的整个列集。
压力
[in]指向包含检索限制的 SRestriction 结构的指针。 如果 pres 参数为 NULL, 则 HrQueryAllRows 没有限制。
psos
[in]指向 SSortOrderSet 结构的指针,该结构标识要检索的列的排序顺序。 如果 psos 参数为 NULL,则使用表的默认排序顺序。
crowsMax
[in]要检索的最大行数。 如果 crowsMax 参数的值为零,则不设置检索的行数限制。
pprows
[out]指向返回的 SRowSet 结构的指针的指针的指针,该结构包含指向检索到的表行的指针数组。
返回值
S_OK
调用检索了表的预期行。
MAPI_E_TABLE_TOO_BIG
表中的行数大于为 crowsMax 参数传递的行数。
备注
客户端应用程序或服务提供商无法控制 HrQueryAllRows 尝试检索的行数,除了施加 pres 参数指向的限制。 crowsMax 参数不会将检索限制为一定数量的表行,而是定义可用于保存所有检索到的行的最大内存量。 防止大量内存溢出的唯一保护是通过设置 crowsMax 提供的 stopgap 功能。 错误返回MAPI_E_TABLE_TOO_BIG表示表包含太多行,无法一次性保留在内存中。
通常可以使用 HrQueryAllRows 安全地检索通常较小的表(如消息存储表或提供程序表)。 应使用 IMAPITable::QueryRows 方法在子节中遍历具有非常大风险的表(例如内容表甚至收件人表)。
如果在调用 HrQueryAllRows 时未定义任何表属性,则返回它们的属性类型PT_NULL和属性标识符PROP_ID_NULL