Поделиться через


HrQueryAllRows

Область применения: Outlook 2013 | Outlook 2016

Извлекает все строки таблицы.

Свойство Значение
Файл заголовка:
Mapiutil.h
Реализовано в:
MAPI
Вызывающая сторона:
Клиентские приложения и поставщики услуг
HRESULT HrQueryAllRows(
  LPMAPITABLE ptable,
  LPSPropTagArray ptaga,
  LPSRestriction pres,
  LPSSortOrderSet psos,
  LONG crowsMax,
  LPSRowSet FAR * pprows
);

Параметры

ptable

[в] Указатель на таблицу MAPI, из которой извлекаются строки.

ptaga

[в] Указатель на структуру SPropTagArray , содержащую массив тегов свойств, указывающих столбцы таблицы. Эти теги используются для выбора конкретных столбцов для извлечения. Если параметр ptaga имеет значение NULL, HrQueryAllRows извлекает весь набор столбцов текущего табличного представления, переданного в параметре ptable .

Пре

[в] Указатель на структуру SRestriction , содержащую ограничения на получение. Если параметр pres имеет значение NULL, HrQueryAllRows не накладывает ограничений.

psos

[в] Указатель на структуру SSortOrderSet , определяющую порядок сортировки извлекаемых столбцов. Если параметр psos имеет значение NULL, используется порядок сортировки по умолчанию для таблицы.

crowsMax

[в] Максимальное количество извлекаемых строк. Если значение параметра crowsMax равно нулю, ограничение на количество извлекаемых строк не устанавливается.

pprows

[out] Указатель на указатель на возвращенную структуру SRowSet , которая содержит массив указателей на извлекаемые строки таблицы.

Возвращаемое значение

S_OK

Вызов извлек ожидаемые строки таблицы.

MAPI_E_TABLE_TOO_BIG

Число строк в таблице больше, чем число, переданное для параметра crowsMax .

Замечания

Клиентское приложение или поставщик услуг не контролирует количество строк, которые пытается получить HrQueryAllRows , кроме как путем введения ограничения, на которое указывает параметр pres . Параметр crowsMax не ограничивает извлечение определенным количеством строк таблицы, а определяет максимальный объем памяти, доступный для хранения всех полученных строк. Единственной защитой от переполнения памяти является функция stopgap, предоставляемая путем установки crowsMax. Ошибка возвращает MAPI_E_TABLE_TOO_BIG означает, что таблица содержит слишком много строк для одновременного хранения в памяти.

Таблицы, обычно небольшие, такие как таблица хранилища сообщений или таблица поставщика, обычно можно безопасно получить с помощью HrQueryAllRows. Таблицы с риском очень большого размера, такие как таблица содержимого или даже таблица получателей, должны проходить по подразделам с помощью метода IMAPITable::QueryRows .

Если какие-либо свойства таблицы не определены при вызове HrQueryAllRows , они возвращаются с типом свойства PT_NULL и идентификатором свойства PROP_ID_NULL