IPrintCoreUI2::GetOptions 方法(prcomoem.h)
IPrintCoreUI2::GetOptions
方法以功能/选项关键字对列表的格式检索驱动程序的当前功能设置。
语法
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
指向调用方提供的缓冲区的指针,该缓冲区接收从驱动程序设置获取的功能/选项关键字对列表(MULTI_SZ格式)。 每个功能/选项关键字对都包含功能关键字名称、null 字符、选项关键字名称和另一个 null 字符。 该列表以两个 null 字符结尾。
[in] cbSize
指定 pmszFeatureOptionBuf指向的缓冲区的大小(以字节为单位)。
[out] pcbNeeded
指向接收功能/选项关键字对的实际大小(以字节为单位)的内存位置的指针。
返回值
该方法必须返回以下值之一。
返回代码 | 描述 |
---|---|
|
方法成功。 |
|
cbSize 中的值小于要写入输出缓冲区的字节数(pmszFeatureOptionBuf指向的缓冲区)。
该方法是在将 pmszFeatureOptionBuf 设置为 NULL时调用的。 |
|
输入缓冲区(pmszFeaturesRequested指向的缓冲区)已提供,但其内容不采用MULTI_SZ格式。
poemuiobj 参数指向无效的上下文对象。 |
|
不支持该方法。 |
|
方法失败 |
言论
此方法仅适用于完全替换核心驱动程序的标准 UI 页面的 Windows XP Pscript5 UI 插件,并且仅在 UI 插件的 IPrintOemUI::D ocumentPropertySheets 和 IPrintOemUI::D evicePropertySheets 函数及其属性表回调例程期间才支持此方法。 有关详细信息,请参阅 替换 Driver-Supplied 属性表页。
如果无法识别请求的功能关键字, 或识别,但在当前粘滞模式下不受支持(文档粘滞 或 打印机粘滞 -- 请参阅 替换 Driver-Supplied 属性表页),或功能关键字已识别,但目前没有选项选择,该功能只是被忽略,并且功能/选项关键字对未放置在输出缓冲区中。
若要减少对每个数据访问进行两次调用的需要,请传递方法,该缓冲区的大小固定(例如 1 KB),然后检查函数返回值。 如果方法返回S_OK,则缓冲区已包含感兴趣的数据。 如果方法返回E_OUTOFMEMORY,则 * 中的值是保存感兴趣的数据的缓冲区大小。 然后,调用方应分配该较大大小的缓冲区,并继续对方法进行第二次调用。
有关详细信息,请参阅 使用 GetOptions 和 SetOptions。
要求
要求 | 价值 |
---|---|
目标平台 | 桌面 |
标头 | prcomoem.h (include Prcomoem.h) |
另请参阅
IPrintOemUI::D evicePropertySheets