共用方式為


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 來找出數據表保留的數據列數目。 如果數據表中的數據列少於二十個,則可以安全地呼叫 QueryPosition 來擷取整個數據表。 如果數據表中有超過二十個數據列,請考慮對 QueryPosition 進行多次呼叫,並限制每個呼叫中擷取的數據列數目。

有些數據表不支援 GetRowCount 並傳回MAPI_E_NO_SUPPORT。 如果不支援 GetRowCount ,替代方法可能是呼叫 IMAPITable::QueryPosition。 透過 QueryPosition的結果,您可以判斷目前數據列與最後一個資料列之間的關聯性。

GetRowCount 因為暫時無法擷取數據列計數而傳回MAPI_E_BUSY時,請呼叫 IMAPITable::WaitForCompletion 方法。 當 WaitForCompletion 傳 回時,請重試 GetRowCount 的呼叫。 另一種偵測異步操作是否正在進行中的方法是呼叫 IMAPITable::GetStatus 方法,並檢查 lpulTableState 參數的內容。

MFCMAPI 參考

如需 MFCMAPI 範例程式代碼,請參閱下表。

檔案 Function Comment
MAPIFunctions.cpp
CopyFolderContents
MFCMAPI 使用 IMAPITable::GetRowCount 方法來判斷源數據表中有多少數據列,以便配置記憶體來執行複本。

另請參閱

IMAPITable::GetStatus

IMAPITable::QueryPosition

IMAPITable::QueryRows

IMAPITable::WaitForCompletion

IMAPITable:IUnknown

MFCMAPI 作為程式碼範例