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

Метод IPrintCoreUI2::WhyConstrained определяет, почему выбор указанного компонента или параметра ограничен.

Синтаксис

HRESULT WhyConstrained(
  [in]  POEMUIOBJ poemuiobj,
  [in]  DWORD     dwFlags,
  [in]  PCSTR     pszFeatureKeyword,
  [in]  PCSTR     pszOptionKeyword,
  [out] PZZSTR    pmszReasonList,
  [in]  DWORD     cbSize,
  [out] PDWORD    pcbNeeded
);

Параметры

[in] poemuiobj

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

[in] dwFlags

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

[in] pszFeatureKeyword

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

[in] pszOptionKeyword

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

[out] pmszReasonList

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

Присвойте этому параметру значение NULL , чтобы просто запросить размер (*pcbNeeded) списка причин без заполнения списка.

[in] cbSize

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

[out] pcbNeeded

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

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

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

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

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

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

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

Прилипчивость функции (см. раздел Замена страниц Driver-Supplied страниц свойств) не совпадает с тем, который указан в текущем контексте.

E_FAIL
Сбой метода

Комментарии

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

Когда пользователь пользовательского интерфейса изготовителя оборудования пытается выбрать ограниченный элемент, вызывающий объект может использовать этот метод для отображения сообщения, объясняющего, почему элемент ограничен. При возврате этого метода pmszReasonList указывает на список из одной или нескольких пар функций и параметров, которые отображаются в текущих параметрах драйвера, но конфликтуют с выбранными ключевыми словами функции и параметра. Если конфликты отсутствуют, метод должен возвращать S_OK, pmszReasonList должен быть заполнен пустой строкой ASCII, содержащей только символ NULL, а параметр *pcbNeeded должен иметь значение 1.

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

Требования

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

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

IPrintCoreUI2

IPrintCoreUI2::EnumConstrainedOptions

IPrintOemUI::D evicePropertySheets

IPrintOemUI::D ocumentPropertySheets

OEMUIOBJ