Метод 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 по умолчанию или текущую. Если этот метод вызывается из поставщика подключаемого модуля или из 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 , поэтому если один и тот же компонент отображается дважды в этом массиве, будет выбран только последний параметр для этой функции. Изменения параметров не фиксируются, если только параметр bResolveConflicts не имеет значение TRUE.
В большинстве сценариев параметру bResolveConflicts следует задать значение TRUE. Присвойте этому параметру значение FALSE , если вы хотите предложить пользователю разрешить конфликты.
Требования
Требование | Значение |
---|---|
Целевая платформа | Персональный компьютер |
Верхняя часть | prcomoem.h (включая Prcomoem.h) |