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


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

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

Синтаксис

HRESULT GetFeatureAttribute(
  [in]  PDEVOBJ pdevobj,
  [in]  DWORD   dwFlags,
  [in]  PCSTR   pszFeatureKeyword,
  [in]  PCSTR   pszAttribute,
  [out] PDWORD  pdwDataType,
  [out] PBYTE   pbData,
  [in]  DWORD   cbSize,
  [out] PDWORD  pcbNeeded
);

Параметры

[in] pdevobj

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

[in] dwFlags

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

[in] pszFeatureKeyword

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

[in] pszAttribute

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

[out] pdwDataType

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

[out] pbData

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

[in] cbSize

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

[out] pcbNeeded

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

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

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

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

Метод был вызван с pbData значением NULL.

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

Ключевое слово компонента не распознано.

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

E_FAIL
Сбой метода.

Замечания

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

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

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

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

Требования

Требование Ценность
целевая платформа Настольный
заголовка prcomoem.h (include Prcomoem.h)

См. также

DEVOBJ

IPrintCorePS2

IPrintCorePS2::EnumFeatures

IPrintCorePS2::GetGlobalAttribute

IPrintCorePS2::GetOptionAttribute