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 方法來判斷源數據表中有多少數據列,以便配置記憶體來執行複本。 |