IPrintCoreUI2::GetOptions 方法 (prcomoem.h)

方法IPrintCoreUI2::GetOptions以功能/选项关键字 (keyword) 对列表的格式检索驱动程序的当前功能设置。

语法

HRESULT GetOptions(
  [in]  POEMUIOBJ poemuiobj,
  [in]  DWORD     dwFlags,
  [in]  PCZZSTR   pmszFeaturesRequested,
  [in]  DWORD     cbIn,
  [out] PZZSTR    pmszFeatureOptionBuf,
  [in]  DWORD     cbSize,
  [out] PDWORD    pcbNeeded
);

参数

[in] poemuiobj

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

[in] dwFlags

为保留,并且必须设置为零。

[in] pmszFeaturesRequested

指向调用方提供的缓冲区的指针,其中包含MULTI_SZ格式 (功能关键字列表) 请求其设置。 将此参数设置为 NULL 以获取所有功能的设置。

[in] cbIn

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

[out] pmszFeatureOptionBuf

指向调用方提供的缓冲区的指针,该缓冲区接收功能/选项列表,关键字 (keyword) () 从驱动程序设置获取MULTI_SZ格式。 每个特征/选项关键字 (keyword) 对都包含特征关键字 (keyword) 名称、null 字符、选项关键字 (keyword) 名称以及另一个 null 字符。 列表以两个 null 字符结尾。

[in] cbSize

指定 pmszFeatureOptionBuf 指向的缓冲区的大小(以字节为单位)。

[out] pcbNeeded

指向内存位置的指针,该位置接收功能/选项关键字 (keyword) 对的实际大小(以字节为单位)。

返回值

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

返回代码 说明
S_OK
方法成功。
E_OUTOFMEMORY
cbSize 中的值小于要写入输出缓冲区的字节数, (pmszFeatureOptionBuf) 指向的缓冲区。

调用 方法时 ,pmszFeatureOptionBuf 设置为 NULL

E_INVALIDARG
提供了 pmszFeaturesRequested) 指向的缓冲区 (输入缓冲区,但其内容不是MULTI_SZ格式。

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

E_NOTIMPL
不支持该方法。
E_FAIL
方法失败

注解

此方法仅支持完全取代核心驱动程序的标准 UI 页面的 Windows XP Pscript5 UI 插件,并且仅在 UI 插件的 IPrintOemUI::D ocumentPropertySheetsIPrintOemUI::D evicePropertySheets 函数及其属性表回调例程期间受支持。 有关详细信息 ,请参阅替换 Driver-Supplied 属性表页

如果请求的功能关键字 (keyword) 无法识别或识别,但在当前粘滞模式下不受支持, (文档粘滞打印机粘滞 -- 请参阅替换 Driver-Supplied 属性工作表页) ,或识别功能关键字 (keyword) ,但当前没有选项选择,则只是忽略该功能,功能/选项关键字 (keyword) 对未放置在输出缓冲区中。

若要减少对每个数据访问进行两次调用的需求,请将固定大小的输出缓冲区 (1 KB(例如) ),然后检查函数返回值。 如果方法返回S_OK,则缓冲区已包含相关数据。 如果方法返回E_OUTOFMEMORY,则 *E_OUTOFMEMORY 中的值是保存所需数据的缓冲区大小。 然后,调用方应分配一个更大的缓冲区,并继续对 方法进行第二次调用。

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

要求

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

另请参阅

IPrintCoreUI2

IPrintCoreUI2::SetOptions

IPrintOemUI::D evicePropertySheets

IPrintOemUI::D ocumentPropertySheets

OEMUIOBJ