Метод 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, указывающую ключевое слово single option для запроса. Это значение можно получить из предыдущего вызова IPrintCoreUI2::EnumOptions.
[in] pszAttribute
Указатель на предоставленный вызывающим буфером, содержащим строку ASCII, указывающую запрошенный один атрибут. Если этот параметр null, вызывающий объект запрашивает список всех поддерживаемых имен атрибутов для параметра, а не указание определенного имени атрибута для параметра.
[out] pdwDataType
Указатель на расположение памяти, которое получает значение, указывающее тип данных запрошенного атрибута. Это значение является перечислителем перечисления EATTRIBUTE_DATATYPE.
[out] pbData
Указатель на предоставленный вызывающим буфер, который получает запрошенные данные. Чтобы просто запросить количество байтов, необходимых для выполнения запроса, задайте для этого параметра значение NULL.
[in] cbSize
Задает размер в байтах буфера, на который указывает pbData.
[out] pcbNeeded
Указатель на расположение памяти, которое получает фактический размер в байтах запрошенных данных.
Возвращаемое значение
Этот метод должен возвращать одно из следующих значений.
Возвращаемый код | Описание |
---|---|
|
Метод выполнен успешно. |
|
Значение в cbSize было меньше количества байтов, записываемых в выходной буфер (буфер, на который указывает pbData).
Метод был вызван с pbData значением NULL. |
|
Метод попытался запросить несуществующий атрибут.
Имя ключевого слова компонента или имя ключевого слова параметра не распознано. Параметр poemuiobj указывает на недопустимый объект контекста. |
|
Сбой метода |
Замечания
Этот метод поддерживается только для подключаемых модулей Windows XP Pscript5, а не для подключаемых модулей Unidrv.
Если этот метод вызывается с помощью pszAttribute и параметров pbData значение NULL, метод возвращается с помощью *pcbNeed для списка всех поддерживаемых имен атрибутов. Если метод вызывается во второй раз, при pszAttribute задано значение NULL и pbData указывает на буфер размера, указанного в *pcbNeed в предыдущем вызове, Метод возвращает значение *pdwDataType значение kADT_ASCII (перечислитель перечисленного типа EATTRIBUTE_DATATYPE) и pbData, указывающий на список всех поддерживаемых атрибутов с разделителями NULL для параметра. Этот список завершается двумя пустыми символами.
Чтобы уменьшить потребность в двух вызовах для доступа к данным, передайте метод выходной буфер фиксированного размера (например, 1 КБ), а затем проверьте возвращаемое значение функции. Если метод возвращает S_OK, буфер уже содержит интересующие данные. Если метод возвращает E_OUTOFMEMORY, значение в *pcbNeed — это размер буфера, необходимый для хранения интересующих данных. Затем вызывающий объект должен выделить буфер этого большего размера и продолжить второй вызов метода.
Дополнительные сведения см. в разделе Using GetOptionAttribute.
Требования
Требование | Ценность |
---|---|
целевая платформа | Настольный |
заголовка | prcomoem.h (include Prcomoem.h) |
См. также
IPrintCoreUI2::GetFeatureAttribute