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


Метод IPrintCoreUI2::GetOptionAttribute (prcomoem.h)

Метод IPrintCoreUI2::GetOptionAttribute извлекает список атрибутов параметра или значение определенного атрибута параметра.

Синтаксис

HRESULT GetOptionAttribute(
  [in]  POEMUIOBJ poemuiobj,
  [in]  DWORD     dwFlags,
  [in]  PCSTR     pszFeatureKeyword,
  [in]  PCSTR     pszOptionKeyword,
  [in]  PCSTR     pszAttribute,
  [out] PDWORD    pdwDataType,
  [out] PBYTE     pbData,
  [in]  DWORD     cbSize,
  [out] PDWORD    pcbNeeded
);

Параметры

[in] poemuiobj

Указатель на текущий контекст, структуру OEMUIOBJ .

[in] dwFlags

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

[in] pszFeatureKeyword

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

[in] pszOptionKeyword

Указатель на буфер, предоставленный вызывающим объектом, содержащий строку ASCII, указывающую один параметр ключевое слово для запроса. Это значение можно получить из предыдущего вызова IPrintCoreUI2::EnumOptions.

[in] pszAttribute

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

[out] pdwDataType

Указатель на расположение памяти, которое получает значение, указывающее тип данных запрошенного атрибута. Это значение является перечислителем перечисления EATTRIBUTE_DATATYPE .

[out] pbData

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

[in] cbSize

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

[out] pcbNeeded

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

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

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

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

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

E_INVALIDARG
Метод попытался запросить несуществующий атрибут.

Не распознано имя ключевое слово функции или параметр ключевое слово имя.

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

E_FAIL
Сбой метода

Комментарии

Этот метод поддерживается только для подключаемых модулей Windows XP Pscript5, но не для подключаемых модулей Unidrv.

Если этот метод вызывается с параметрами pszAttribute и pbData , имеющими значение NULL, метод возвращает значение *pcbNeeded, заданное числом байтов, необходимым для списка всех поддерживаемых имен атрибутов для параметра. Если метод вызывается во второй раз, а параметр pszAttribute имеет значение NULL , а pbData указывает на буфер размера, указанного в *pcbNeeded в предыдущем вызове, метод возвращает с параметром *pdwDataType , имеющим значение kADT_ASCII (перечислитель перечисленного типа EATTRIBUTE_DATATYPE ), и pbData , указывающий на список всех поддерживаемых имен атрибутов с разделителями NULL. Этот список завершается двумя символами NULL.

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

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

Требования

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

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

IPrintCoreUI2

IPrintCoreUI2::EnumOptions

IPrintCoreUI2::GetFeatureAttribute

IPrintCoreUI2::GetGlobalAttribute

OEMUIOBJ