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 извлекает общее количество строк в таблице.
Примечания для исполнителей
Если точное число строк таблицы определить невозможно, верните MAPI_W_APPROX_COUNT и приблизительное число строк в содержимом параметра lpulCount .
Примечания для вызывающих методов
Используйте GetRowCount , чтобы узнать, сколько строк содержит таблица, прежде чем выполнять вызов метода IMAPITable::QueryRows для получения данных. Если в таблице меньше двадцати строк, можно с уверенностью вызвать QueryPosition , чтобы получить всю таблицу. Если в таблице более двадцати строк, попробуйте выполнить несколько вызовов 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 для определения количества строк в исходной таблице, чтобы можно было выделить память для копирования. |