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


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

Метод IPrintCoreHelper::WhyConstrained предоставляет список параметров, ограничивающих указанную пару feature-option в текущей конфигурации.

Синтаксис

HRESULT WhyConstrained(
  [in]  const DEVMODE              *pDevmode,
  [in]  DWORD                      cbSize,
  [in]  PCSTR                      pszFeatureKeyword,
  [in]  PCSTR                      pszOptionKeyword,
  [out] const PRINT_FEATURE_OPTION **ppFOConstraints,
  [out] DWORD                      *pdwNumOptions
);

Параметры

[in] pDevmode

Указатель на структуру DEVMODEW . Если указан этот указатель, IPrintCoreHelper::WhyConstrained должен использовать структуру DEVMODEW, на которую указывает pDevmode , а не текущую структуру DEVMODEW по умолчанию или текущую. Если этот метод вызывается из поставщика подключаемого модуля или из IPrintOemPS::D evMode или IPrintOemUni::D evMode, этот параметр является обязательным. В большинстве других ситуаций параметр должен иметь значение NULL. Когда основной драйвер задает pDevmodeзначение NULL, он изменяет внутреннее состояние, а не внутреннее состояние переданной структуры DEVMODEW. Это необходимо во время таких операций, как полная замена пользовательского интерфейса, когда структура DEVMODEW, возвращаемая DDI, например DrvDocumentPropertySheets, обслуживается модулем пользовательского интерфейса основного драйвера.

[in] cbSize

Размер (в байтах) структуры DEVMODEW, на которую указывает параметр pDevmode .

[in] pszFeatureKeyword

Указатель на строку ANSI, содержащую имя компонента. Имя компонента должно соответствовать ключевое слово, используемому в файле GPD или PPD.

[in] pszOptionKeyword

Указатель на строку ANSI, содержащую имя параметра. Имя параметра должно соответствовать ключевое слово, используемому в файле GPD или PPD.

[out] ppFOConstraints

Указатель на массив элементов PRINT_FEATURE_OPTION . При возвращении IPrintCoreHelper::WhyConstrained массив содержит список пар "признак-элемент" параметров, ограничивающих параметры, указанные в параметре pszOptionKeyword .

[out] pdwNumOptions

Указатель на переменную, получающую количество пар "признак-параметр" в массиве, на который указывает параметр ppFOConstraints .

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

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

Код возврата Описание
S_OK
Операция успешно выполнена.
E_INVALIDARG
Один или несколько аргументов недопустимы или функция не поддерживается.
E_OUTOFMEMORY
Не удалось выделить память для результирующих массивов.

Комментарии

Если указанная пара feature-option не ограничена, IPrintCoreHelper::WhyConstrained вернет S_OK но возвращается с параметром *pdwFOPairs , имеющим значение 0, а параметр *ppFOConstraints[0] — значение NULL.

Обратите внимание, что результаты этого метода могут содержать не все параметры, влияющие на выбранный в данный момент параметр. Для драйверов Unidrv этот список будет включать по крайней мере один параметр из каждого активного набора ограничений. Однако при наличии недопустимых сочетаний, в которых содержится более двух пар функций и вариантов, в список будет включен только один вариант из комбинации.

Требования

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

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

IPrintCoreHelper

IPrintCoreHelper::EnumConstrainedOptions