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


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

Метод IPrintCoreUI2::GetOptions извлекает текущие параметры функции драйвера в формате списка пар ключевых слов компонента или параметра.

Синтаксис

HRESULT GetOptions(
  [in]  POEMUIOBJ poemuiobj,
  [in]  DWORD     dwFlags,
  [in]  PCZZSTR   pmszFeaturesRequested,
  [in]  DWORD     cbIn,
  [out] PZZSTR    pmszFeatureOptionBuf,
  [in]  DWORD     cbSize,
  [out] PDWORD    pcbNeeded
);

Параметры

[in] poemuiobj

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

[in] dwFlags

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

[in] pmszFeaturesRequested

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

[in] cbIn

Задает размер буфера в байтах, на который указывает pmszFeaturesRequested. Размер включает последний MULTI_SZ null-символ.

[out] pmszFeatureOptionBuf

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

[in] cbSize

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

[out] pcbNeeded

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

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

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

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

Метод был вызван с pmszFeatureOptionBuf для параметра NULL.

E_INVALIDARG
Входной буфер (буфер, на который указывает pmszFeaturesRequested), был предоставлен, но его содержимое не было в MULTI_SZ формате.

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

E_NOTIMPL
Метод не поддерживается.
E_FAIL
Сбой метода

Замечания

Этот метод поддерживается только для подключаемых модулей пользовательского интерфейса Windows XP Pscript5, которые полностью заменяют стандартные страницы пользовательского интерфейса драйвера ядра и поддерживаются только во время подключаемых модулей пользовательского интерфейса IPrintOemUI::D ocumentPropertySheets и IPrintOemUI::D evicePropertySheets и их подпрограммы обратного вызова листа свойств. Дополнительные сведения см. в замене страниц листа свойств Driver-Supplied.

Если запрошенное ключевое слово функции не распознано или распознано, но не поддерживается в текущем режиме липких документов ( документа или принтера- см. замены Driver-Supplied страницы листов свойств), или ключевое слово компонента распознается, но в настоящее время отсутствует выбор варианта, функция просто игнорируется, и пара ключевых слов компонента или параметра не помещается в выходной буфер.

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

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

Требования

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

См. также

IPrintCoreUI2

IPrintCoreUI2::SetOptions

IPrintOemUI::D evicePropertySheets

IPrintOemUI::D ocumentPropertySheets

OEMUIOBJ