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 方法确定源表中有多少行,以便可以分配内存来执行复制。

另请参阅

IMAPITable::GetStatus

IMAPITable::QueryPosition

IMAPITable::QueryRows

IMAPITable::WaitForCompletion

IMAPITable : IUnknown

MFCMAPI 代码示例