次の方法で共有


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 メソッドを使用して、コピーを実行するためにメモリを割り当てることができるように、ソース テーブル内の行数を決定します。

関連項目

IMAPITable::GetStatus

IMAPITable::QueryPosition

IMAPITable::QueryRows

IMAPITable::WaitForCompletion

IMAPITable : IUnknown

[�R��h �T���v���Ƃ��� MFCMAPI