IMAPITable::GetRowCount
适用于:Outlook 2013 | Outlook 2016
返回表中的行总数。
HRESULT GetRowCount(
ULONG ulFlags,
ULONG FAR * lpulCount
);
参数
ulFlags
保留;必须为零。
lpulCount
[out]指向表中行数的指针。
返回值
S_OK
已成功返回行计数。
MAPI_E_BUSY
另一个操作正在进行中,该操作阻止行计数检索操作启动。 应允许正在进行的操作完成,或者应停止该操作。
MAPI_E_NO_SUPPORT
表无法计算行数。
MAPI_W_APPROX_COUNT
调用成功,但返回了近似行计数,因为可能由于内存约束而无法确定确切的行计数。 若要测试此警告,请使用 HR_FAILED 宏。 请参阅 使用宏进行错误处理。
备注
IMAPITable::GetRowCount 方法检索表中的行总数。
针对实现者的说明
如果无法确定表的确切行计数,请在 lpulCount 参数的内容中返回MAPI_W_APPROX_COUNT和近似行计数。
给调用方的说明
在调用 IMAPITable::QueryRows 方法以检索数据之前,使用 GetRowCount 了解表包含的行数。 如果表中的行数少于 20 行,则可以安全地调用 QueryPosition 来检索整个表。 如果表中的行数超过 20 行,请考虑对 QueryPosition 进行多次调用,并限制每次调用中检索的行数。
某些表不支持 GetRowCount 并返回MAPI_E_NO_SUPPORT。 如果 不支持 GetRowCount ,则替代方法是调用 IMAPITable::QueryPosition。 使用 QueryPosition 的结果,可以确定当前行与最后一行之间的关系。
当 GetRowCount 由于暂时无法检索行计数而返回MAPI_E_BUSY时,请调用 IMAPITable::WaitForCompletion 方法。 当 WaitForCompletion 返回时,重试对 GetRowCount 的调用。 检测异步操作是否正在进行的另一种方法是调用 IMAPITable::GetStatus 方法并检查 lpulTableState 参数的内容。
MFCMAPI 引用
有关 MFCMAPI 示例代码,请参阅下表。
文件 | 函数 | Comment |
---|---|---|
MAPIFunctions.cpp |
CopyFolderContents |
MFCMAPI 使用 IMAPITable::GetRowCount 方法确定源表中有多少行,以便可以分配内存来执行复制。 |