Метод 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
Указатель на расположение памяти, которое получает фактический размер списка причин в байтах.
Возвращаемое значение
Метод должен возвращать одно из следующих значений.
Код возврата | Описание |
---|---|
|
Метод выполнен успешно. |
|
Значение в cbSize было меньше числа байтов, записываемых в выходной буфер (буфер, на который указывает pmszReasonList).
Метод был вызван с параметром pmszReasonList со значением NULL. |
|
Метод не поддерживается. |
|
Параметр poemuiobj указывает на недопустимый объект контекста.
Компонент ключевое слово или ключевое слово параметров не распознаны. Прилипчивость функции (см. раздел Замена страниц Driver-Supplied страниц свойств) не совпадает с тем, который указан в текущем контексте. |
|
Сбой метода |
Комментарии
Этот метод поддерживается только для подключаемых модулей пользовательского интерфейса 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::EnumConstrainedOptions
IPrintOemUI::D evicePropertySheets