Метод 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) |