Метод IPrintCoreHelper::SetOptions (prcomoem.h)
Метод IPrintCoreHelper::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 . Если указан этот указатель, IPrintCoreHelper::SetOptions должен использовать структуру DEVMODEW, на которую указывает pDevmode , вместо структуры DEVMODEW по умолчанию или текущей. Если этот метод вызывается из поставщика подключаемого модуля или из IPrintOemPS::D evMode или IPrintOemUni::D evMode, этот параметр является обязательным. В большинстве других ситуаций параметр должен иметь значение NULL. Когда основной драйвер задает pDevmodeзначение NULL, он изменяет внутреннее состояние, а не внутреннее состояние переданной структуры DEVMODEW. Это необходимо во время таких операций, как полная замена пользовательского интерфейса, когда структура DEVMODEW, возвращаемая DDI, например DrvDocumentPropertySheets, обслуживается модулем пользовательского интерфейса основного драйвера.
[in] cbSize
Размер (в байтах) структуры DEVMODEW, на которую указывает параметр pDevmode .
[in] bResolveConflicts
Логическое значение, указывающее, должен ли IPrintCoreHelper::SetOptions разрешать конфликты, возникающие из-за одного или нескольких ограничений, указанных в представлении GPD или PPD файла конфигурации, а также ограничений для функциональных возможностей, реализованных Unidrv, Pscript или процессором печати. Если задано значение TRUE, этот метод должен попытаться устранить конфликт. Если значение FALSE, этот метод не должен пытаться разрешить конфликты. Дополнительные сведения см. в разделе «Примечания».
[in] pFOPairs
Массив элементов PRINT_FEATURE_OPTION , где каждый элемент содержит пару признаков и вариантов. В каждой паре "признак-параметр" перечисляются признаки и варианты, которые нужно выбрать для этой функции. Все параметры применяются последовательно. Дубликаты не запрещены, но параметры, которые отображаются позже в массиве (т. е. по более высокому индексу), переопределяют параметры, которые отображаются ранее в массиве.
[in] cPairs
Количество пар функций и параметров, на которые указывает параметр pFOPairs .
[out] pcPairsWritten
Указатель на переменную, получающую количество пар функций и вариантов, которые были успешно сохранены до возврата или сбоя IPrintCoreHelper::SetOptions . Если этот метод возвращает успешно, значение *pcPairsWritten будет иметь то же значение, что и cPairs. Если метод завершается сбоем,*pcPairsWritten может иметь любое значение от нуля до значения cPairs. Этот параметр является необязательным и может иметь значение NULL.
[out] pdwResult
Указатель на переменную, получающую состояние разрешения конфликта. Состояние может быть одним из следующих значений.
Значение | Описание |
---|---|
SETOPTIONS_RESULT_NO_CONFLICT | По отношению к новому параметру не было нарушено никаких ограничений, указанных в представлении GPD или PPD файла конфигурации. |
SETOPTIONS_RESULT_CONFLICT_RESOLVED | По крайней мере одно ограничение, указанное в представлении GPD или PPD файла конфигурации, было нарушено, и вызывающий объект запросил, чтобы метод разрешал конфликты. Это значение приводит к изменению параметров с разрешением конфликтов. |
SETOPTIONS_RESULT_CONFLICT_NOT_RESOLVED | По крайней мере одно ограничение, указанное в представлении GPD или PPD файла конфигурации, было нарушено, и вызывающий объект запросил, чтобы метод не разрешал конфликты. Параметры не изменяются, а конфликты сохраняются. |
Возвращаемое значение
IPrintCoreHelper::SetOptions должен возвращать одно из следующих значений.
Код возврата | Описание |
---|---|
S_OK | Операция успешно выполнена. |
E_INVALIDARG | Один или несколько аргументов недопустимы или функция не поддерживается. |
E_OUTOFMEMORY | Не удалось выделить память для результирующих массивов. |
Для других сбоев метод должен возвращать стандартный код ошибки COM.
Комментарии
IPrintCoreHelper::SetOptions можно использовать для одновременного изменения нескольких параметров и устранения ограничений после установки всех выбранных параметров. Изменения параметров применяются последовательно, начиная с начала массива pFOPairs , поэтому если один и тот же компонент отображается дважды в этом массиве, будет выбран только последний параметр для этой функции. Изменения параметров не фиксируются (то есть сохраняются в реестре), если только параметр bResolveConflicts не имеет значение TRUE.
В большинстве сценариев параметру bResolveConflicts следует задать значение TRUE. Присвойте этому параметру значение FALSE , если вы хотите предложить пользователю разрешить конфликты.
Требования
Требование | Значение |
---|---|
Целевая платформа | Персональный компьютер |
Верхняя часть | prcomoem.h (включая Prcomoem.h) |