Метод IPrintCorePS2::EnumFeatures (prcomoem.h)

Метод IPrintCorePS2::EnumFeatures перечисляет доступные функции принтера.

Синтаксис

HRESULT EnumFeatures(
  [in]  PDEVOBJ pdevobj,
  [in]  DWORD   dwFlags,
  [out] PZZSTR  pmszFeatureList,
  [in]  DWORD   cbSize,
  [out] PDWORD  pcbNeeded
);

Параметры

[in] pdevobj

Указатель на структуру DEVOBJ .

[in] dwFlags

Зарезервировано и должно быть равно нулю.

[out] pmszFeatureList

Указатель на буфер, предоставленный вызывающим объектом, который получает список ключевых слов компонентов с разделителями NULL в формате MULTI_SZ. Список завершается двумя символами NULL.

Задайте для этого параметра значение NULL , чтобы просто запросить размер (*pcbNeeded) списка компонентов без заполнения списка.

[in] cbSize

Задает размер (в байтах) буфера, на который указывает pmszFeatureList.

[out] pcbNeeded

Указатель на расположение памяти, которое получает фактический размер запрошенных данных (в байтах).

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

Этот метод должен возвращать одно из следующих значений.

Код возврата Описание
S_OK
Метод выполнен успешно.
E_OUTOFMEMORY
Значение в cbSize было меньше числа байтов, записываемых в выходной буфер (буфер, на который указывает pmszFeatureList).

Метод был вызван с параметром pmszFeatureList , имеющим значение NULL.

E_INVALIDARG
Параметр pdevobj указывает на недопустимый объект контекста драйвера.
E_FAIL
Сбой метода.

Комментарии

Функции, прикрепленные к принтеру (см. раздел Замена страниц Driver-Supplied свойств), такие как те, которые определяют устанавливаемую память и наличие дополнительных аксессуаров, включены в список ключевое слово функций, который отображается в буфере вывода, на который указывает pmszFeatureList. Для Pscript5 для таких компонентов атрибут компонента OpenGroupType имеет значение InstallableOptions.

Чтобы уменьшить необходимость выполнять два вызова для каждого доступа к данным, передайте методу выходной буфер фиксированного размера (например, 1 КБ), а затем проверка возвращаемое значение функции. Если метод возвращает S_OK, буфер уже содержит интересующие данные. Если метод возвращает E_OUTOFMEMORY, значение в *pcbNeeded — это размер буфера, необходимый для хранения интересующих данных. Затем вызывающий объект должен выделить буфер большего размера и продолжить второй вызов метода .

Этот метод поддерживается для любого подключаемого модуля отрисовки Pscript5.

Дополнительные сведения см. в разделе Использование EnumFeatures.

Требования

Требование Значение
Целевая платформа Персональный компьютер
Верхняя часть prcomoem.h (включая Prcomoem.h)

См. также раздел

DEVOBJ

IPrintCorePS2

IPrintCorePS2::EnumOptions