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 应使用 pDevmode 所指向的 DEVMODEW 结构,而不是默认或当前的 DEVMODEW 结构。 如果从插件提供程序或从 IPrintOemPS::D evMode调用此方法,则需要此参数。 在大多数其他情况下,参数应 NULL。 当核心驱动程序 pDevmode 设置为 NULL时,它会修改其内部状态,而不是传入 DEVMODEW 结构的内部状态。 在完全 UI 替换等作期间,需要执行此作,其中 DDI 返回的 DEVMODEW 结构(如 DrvDocumentPropertySheets)由核心驱动程序的 UI 模块提供服务。
[in] cbSize
pDevmode 参数指向的 DEVMODEW 结构的大小(以字节为单位)。
[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 (include Prcomoem.h) |