Метод IPrintCorePS2::GetOptionAttribute (prcomoem.h)
Метод IPrintCorePS2::GetOptionAttribute
извлекает список атрибутов параметра или значение определенного атрибута параметра.
Синтаксис
HRESULT GetOptionAttribute(
[in] PDEVOBJ pdevobj,
[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] pdevobj
Указатель на структуру DEVOBJ .
[in] dwFlags
Зарезервировано и должно быть равно нулю.
[in] pszFeatureKeyword
Указатель на буфер, предоставленный вызывающим объектом, содержащий строку ASCII, указывающую один компонент, ключевое слово для запроса.
[in] pszOptionKeyword
Указатель на буфер, предоставленный вызывающим объектом, содержащий строку ASCII, указывающую один параметр ключевое слово для запроса. Это значение можно получить из предыдущего вызова IPrintCorePS2::EnumOptions.
[in] pszAttribute
Указатель на буфер, предоставленный вызывающим объектом, содержащий строку ASCII, указывающую один запрошенный атрибут. Если этот параметр имеет значение NULL, вызывающий объект запрашивает список всех поддерживаемых имен атрибутов для параметра, в отличие от указания конкретного имени атрибута для параметра.
[out] pdwDataType
Указатель на расположение памяти, которое получает значение, указывающее тип данных запрошенного атрибута. Это значение является перечислителем перечисления EATTRIBUTE_DATATYPE , определенного в printoem.h.
[out] pbData
Указатель на буфер, предоставленный вызывающим объектом, который получает запрошенные данные. Чтобы просто запросить количество байтов, необходимых для выполнения запроса, задайте для этого параметра значение NULL.
[in] cbSize
Задает размер буфера в байтах, на который указывает pbData.
[out] pcbNeeded
Указатель на расположение памяти, которое получает фактический размер запрошенных данных в байтах.
Возвращаемое значение
Этот метод должен возвращать одно из следующих значений.
Код возврата | Описание |
---|---|
|
Метод выполнен успешно. |
|
Значение в cbSize было меньше числа байтов, записываемых в выходной буфер (буфер, на который указывает pbData).
Метод был вызван с параметром pbData со значением NULL. |
|
Метод попытался запросить несуществующий атрибут.
Функция ключевое слово имя или параметр ключевое слово имя не распознаны. Параметр pdevobj указывает на недопустимый объект контекста драйвера. |
|
Сбой метода. |
Комментарии
Если этот метод вызывается с параметрами pszAttribute и pbData со значением NULL, метод возвращает значение *pcbNeeded, заданное числом байтов, необходимым для списка всех поддерживаемых имен атрибутов для параметра. Если метод вызывается во второй раз с параметром pszAttribute со значениемNULL и значением pbData , указывающим на буфер размера, указанного в *pcbNeeded в предыдущем вызове, метод возвращает значение *pdwDataType , для которых задано значение kADT_ASCII (перечислитель EATTRIBUTE_DATATYPE перечислимого типа), и pbData , указывающий на список всех поддерживаемых имен атрибутов для параметра с разделителями NULL. Этот список завершается двумя символами NULL.
Чтобы уменьшить потребность в двух вызовах для каждого доступа к данным, передайте методу выходной буфер фиксированного размера (например, 1 КБ), а затем проверка возвращаемое значение функции. Если метод возвращает S_OK, буфер уже содержит интересующие данные. Если метод возвращает E_OUTOFMEMORY, значение в *pcbNeeded — это размер буфера, необходимый для хранения интересующих данных. Затем вызывающий объект должен выделить буфер большего размера и продолжить второй вызов метода .
Этот метод поддерживается для любого подключаемого модуля отрисовки Pscript5.
Дополнительные сведения см. в разделе Использование GetOptionAttribute.
Требования
Требование | Значение |
---|---|
Целевая платформа | Персональный компьютер |
Верхняя часть | prcomoem.h (включая Prcomoem.h) |