IPrintCoreUI2::EnumConstrainedOptions 方法 (prcomoem.h)

方法 IPrintCoreUI2::EnumConstrainedOptions 确定特征的哪些选项受约束。

语法

HRESULT EnumConstrainedOptions(
  [in]  POEMUIOBJ poemuiobj,
  [in]  DWORD     dwFlags,
  [in]  PCSTR     pszFeatureKeyword,
  [out] PZZSTR    pmszConstrainedOptionList,
  [in]  DWORD     cbSize,
  [out] PDWORD    pcbNeeded
);

参数

[in] poemuiobj

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

[in] dwFlags

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

[in] pszFeatureKeyword

指向调用方提供的缓冲区的指针,该缓冲区包含调用方感兴趣的单个功能关键字 (keyword) 。

[out] pmszConstrainedOptionList

指向调用方提供的缓冲区的指针,该缓冲区接收此功能MULTI_SZ格式的选项关键字列表。 每个关键字 (keyword) 表示在当前配置中受约束的选项。

将此参数设置为 NULL ,只需查询受约束选项列表的大小 (*) ,而无需填充列表。

[in] cbSize

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

[out] pcbNeeded

指向接收受约束选项列表的实际大小(以字节为单位)的内存位置的指针。

返回值

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

返回代码 说明
S_OK
方法成功。 如果功能的选项均不受约束,则方法还应返回此值。 在这种情况下,方法应将一个 null 字符放入 pmszConstrainedOptionList 指向的缓冲区中,并应将 “印刷板” 设置为 1。
E_OUTOFMEMORY
cbSize 中的值小于要写入输出缓冲区 (pmszConstrainedOptionList) 指向的缓冲区的字节数。

调用 方法时 ,pmszConstrainedOptionList 设置为 NULL

E_INVALIDARG
pszFeatureKeyword 指向的字符串不是可识别的特征。

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

特征的粘性与 peomuiobj 指向的上下文对象的粘性不匹配。 (请参阅 替换 Driver-Supplied 属性表 Pages.)

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

注解

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

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

要求

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

另请参阅

IPrintCoreUI2

IPrintCoreUI2::WhyConstrained

IPrintOemUI::D evicePropertySheets

IPrintOemUI::D ocumentPropertySheets

OEMUIOBJ