IMAPITable::GetRowCount
適用対象: Outlook 2013 | Outlook 2016
テーブル内の行の合計数を返します。
HRESULT GetRowCount(
ULONG ulFlags,
ULONG FAR * lpulCount
);
パラメーター
ulFlags
予約;は 0 にする必要があります。
lpulCount
[out]テーブル内の行数へのポインター。
戻り値
S_OK
行数が正常に返されました。
MAPI_E_BUSY
行数取得操作を開始できないようにする別の操作が進行中です。 進行中の操作の完了を許可するか、停止する必要があります。
MAPI_E_NO_SUPPORT
テーブルは行数を計算できません。
MAPI_W_APPROX_COUNT
呼び出しは成功しましたが、メモリ制約のために正確な行数を特定できなかったため、おおよその行数が返されました。 この警告をテストするには、 HR_FAILED マクロを使用します。 エラー処理のマクロの使用に関するページを参照してください。
注釈
IMAPITable::GetRowCount メソッドは、テーブル内の行の合計数を取得します。
実装に関するメモ
テーブルの正確な行数を特定できない場合は、 lpulCount パラメーターの内容にMAPI_W_APPROX_COUNTとおおよその行数を返します。
呼び出し側への注意
GetRowCount を使用して、IMAPITable::QueryRows メソッドを呼び出してデータを取得する前に、テーブルが保持する行数を調べます。 テーブルに 2 行未満の行がある場合は、 QueryPosition を 呼び出してテーブル全体を取得しても安全です。 テーブルに 2 行を超える行がある場合は、 QueryPosition を複数呼び出し、各呼び出しで取得される行数を制限することを検討してください。
一部のテーブルは GetRowCount を サポートせず、MAPI_E_NO_SUPPORTを返します。 GetRowCount がサポートされていない場合は、IMAPITable::QueryPosition を呼び出す方法もあります。 QueryPosition の結果を使用すると、現在の行と最後の行の間のリレーションシップを決定できます。
行数を一時的に取得できないため に GetRowCount がMAPI_E_BUSYを返す場合は、 IMAPITable::WaitForCompletion メソッドを呼び出します。 WaitForCompletion が返されたら、GetRowCount の呼び出しを再試行します。 非同期操作が進行中かどうかを検出するもう 1 つの方法は、IMAPITable::GetStatus メソッドを呼び出し、lpulTableState パラメーターの内容をチェックすることです。
MFCMAPI リファレンス
MFCMAPI のサンプル コードについては、次の表を参照してください。
ファイル | 関数 | コメント |
---|---|---|
MAPIFunctions.cpp |
CopyFolderContents |
MFCMAPI では 、IMAPITable::GetRowCount メソッドを使用して、コピーを実行するためにメモリを割り当てることができるように、ソース テーブル内の行数を決定します。 |