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格式的功能/选项关键字 (keyword) 对的列表。 此列表中的每一项与下一个项隔开一个 null 字符,列表以两个 null 字符结尾。

[in] cbIn

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

[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 插件。

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

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

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

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

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

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

要求

要求
目标平台 桌面
标头 prcomoem.h (包括 Prcomoem.h)

另请参阅

IPrintCoreUI2

IPrintCoreUI2::GetOptions

IPrintOemUI::D evicePropertySheets

IPrintOemUI::D ocumentPropertySheets

OEMUIOBJ