IPrintCoreUI2::SetOptions 方法(prcomoem.h)

IPrintCoreUI2::SetOptions 方法设置驱动程序的功能设置。

语法

HRESULT SetOptions(
  [in]  POEMUIOBJ poemuiobj,
  [in]  DWORD     dwFlags,
  [in]  PCZZSTR   pmszFeatureOptionBuf,
  [in]  DWORD     cbIn,
  [out] PDWORD    pdwResult
);

参数

[in] poemuiobj

指向当前上下文的指针,OEMUIOBJ 结构。

[in] dwFlags

指定核心驱动程序是否要解决冲突。 此参数必须设置为以下值之一:

价值 意义
SETOPTIONS_FLAG_KEEP_CONFLICT 要求核心驱动程序不解决出现的任何冲突。
SETOPTIONS_FLAG_RESOLVE_CONFLICT 要求核心驱动程序解决出现的任何冲突。

[in] pmszFeatureOptionBuf

指向调用方提供的缓冲区的指针,该缓冲区包含MULTI_SZ格式的功能/选项关键字对列表。 此列表中的每个项由空字符分隔,列表以两个 null 字符结尾。

[in] cbIn

指定 pmszFeatureOptionBuf指向的缓冲区的大小(以字节为单位)。 此大小包括最后一个MULTI_SZ null 字符。

[out] pdwResult

指向接收以下值之一的内存位置的指针。 这些常量在 printoem.h 中定义。

价值 意义
SETOPTIONS_RESULT_CONFLICT_REMAINED 核心驱动程序发现冲突,但尚未解决。
SETOPTIONS_RESULT_CONFLICT_RESOLVED 核心驱动程序找到并解决了所有冲突。
SETOPTIONS_RESULT_NO_CONFLICT 核心驱动程序未发现任何冲突。

返回值

该方法必须返回以下值之一。

返回代码 描述
S_OK
方法成功。
E_NOTIMPL
不支持该方法。

不支持由 dwLevel 指定的类型结构。

E_INVALIDARG
dwFlags 中的值 不正确。

输入缓冲区(pmszFeatureOptionBuf指向)的格式不是MULTI_SZ格式。

poemuiobj 参数指向无效的上下文对象。

E_FAIL
方法失败

言论

此方法仅支持 Windows XP Pscript5 插件,而不支持 Unidrv 插件。

调用此方法以使用功能/选项关键字对列表设置驱动程序的功能设置。 调用方可以使用 IPrintCoreUI2::GetOptions 方法访问生成的功能设置。

如果此方法返回除S_OK以外的任何值,则不会在驱动程序的功能设置中进行任何更改。

pmszFeatureOptionBuf 输入缓冲区必须与 IPrintCoreUI2::GetOptions 方法的输出缓冲区相同。 也就是说,功能/选项关键字对必须采用MULTI_SZ格式,并且列表中的每个项都以 null 字符分隔。 一对 null 字符将终止列表。

如果输入缓冲区包含无法识别的功能关键字或其选项关键字,或者当前粘滞模式下识别该功能但不受支持(请参阅 替换 Driver-Supplied 属性表页),则忽略功能/选项对,并且该功能的当前选项将继续有效。

此方法仅支持完全替换核心驱动程序的标准 UI 页面的 UI 插件,并且仅在 UI 插件的 IPrintOemUI::D ocumentPropertySheetsIPrintOemUI::D evicePropertySheets 函数及其属性表回调例程期间才支持此方法。

有关详细信息,请参阅 使用 GetOptions 和 SetOptions

要求

要求 价值
目标平台 桌面
标头 prcomoem.h (include Prcomoem.h)

另请参阅

IPrintCoreUI2

IPrintCoreUI2::GetOptions

IPrintOemUI::D evicePropertySheets

IPrintOemUI::D ocumentPropertySheets

OEMUIOBJ