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


Метод IPrintCoreHelperUni::SetOptions (prcomoem.h)

Метод IPrintCoreHelperUni::SetOptions одновременно задает несколько пар параметров функций.

Синтаксис

HRESULT SetOptions(
  [in, optional] IN PDEVMODE                      pDevmode,
  [in]           IN DWORD                         cbSize,
  [in]           IN BOOL                          bResolveConflicts,
  [in]           IN const PRINT_FEATURE_OPTION [] pFOPairs,
  [in]           IN DWORD                         cPairs,
  [out]          OUT PDWORD                       pcPairsWritten,
  [out]          OUT PDWORD                       pdwResult
);

Параметры

[in, optional] pDevmode

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

[in] cbSize

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

[in] bResolveConflicts

Логическое значение, указывающее, следует ли IPrintCoreHelperUni::SetOptions разрешать конфликты, возникающие из одного или нескольких ограничений в представлении GPD файла конфигурации, а также ограничения для функциональных возможностей, реализованных Unidrv или обработчиком печати. Если TRUE, этот метод должен попытаться устранить конфликт. Если FALSE, этот метод не должен пытаться устранить конфликты.

[in] pFOPairs

Массив элементов PRINT_FEATURE_OPTION, где каждый элемент содержит пару вариантов функций. Каждая пара вариантов функций содержит список признаков и вариант для выбора этой функции. Все параметры применяются последовательно. Дубликаты не запрещены, но параметры, которые отображаются позже в массиве (т. е. при более высоком индексе), переопределяют те, которые отображаются ранее в массиве.

[in] cPairs

Количество пар вариантов функций, на которые указывает параметр pFOPairs.

[out] pcPairsWritten

Указатель на переменную, которая получает количество пар параметров функций, которые были успешно сохранены до IPrintCoreHelperUni::SetOptions возвращены или не выполнены. Если этот метод возвращается успешно, pcPairsWritten будет иметь то же значение, что и cPairs. Если метод завершается ошибкой, pcPairsWritten может иметь любое значение от нуля до значения cPairs. Этот параметр является необязательным и может быть null.

[out] pdwResult

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

Ценность Описание
SETOPTIONS_RESULT_NO_CONFLICT Ограничение, указанное в представлении GPD файла конфигурации, не было нарушено относительно нового параметра.
SETOPTIONS_RESULT_CONFLICT_RESOLVED По крайней мере одно ограничение, указанное в представлении GPD файла конфигурации, было нарушено, и вызывающий запрос запросил, что метод должен разрешать конфликты. Это значение приводит к изменению параметров с разрешенными конфликтами.
SETOPTIONS_RESULT_CONFLICT_NOT_RESOLVED По крайней мере одно ограничение, указанное в представлении GPD файла конфигурации, было нарушено, и вызывающий запрос запросил, что метод не должен разрешать конфликты. Параметры не изменяются, а конфликты остаются.

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

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

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

Для других сбоев метод должен возвращать стандартный код ошибки COM.

Замечания

IPrintCoreHelperUni::SetOptions можно использовать для одновременного внесения нескольких изменений параметров и разрешения ограничений после установки всех выбранных параметров. Изменения параметров применяются последовательно, начиная с начала pFOPairs массива, поэтому если одна и та же функция отображается дважды в этом массиве, будет выбран только последний параметр для функции. Изменения параметров не фиксируются, если параметр bResolveConflictsTRUE.

Для большинства сценариев параметр bResolveConflicts должен иметь значение TRUE. Установите для этого параметра значение FALSE, если пользователь хочет разрешить конфликты.

Требования

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

См. также

IPrintCoreHelperUni

IPrintCoreHelperUni::GetOption