IPrintCoreUI2::EnumFeatures 方法 (prcomoem.h)

该方法 IPrintCoreUI2::EnumFeatures 枚举打印机的可用功能。

语法

HRESULT EnumFeatures(
  [in]  POEMUIOBJ poemuiobj,
  [in]  DWORD     dwFlags,
  [out] PZZSTR    pmszFeatureList,
  [in]  DWORD     cbSize,
  [out] PDWORD    pcbNeeded
);

参数

[in] poemuiobj

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

[in] dwFlags

保留,必须设置为零。

[out] pmszFeatureList

指向调用方提供的缓冲区的指针,该缓冲区以MULTI_SZ格式接收以 null 分隔的功能关键字列表。 列表以两个 null 字符结尾。

将此参数设置为 NULL ,只需查询功能列表的大小 (*) ,而无需填充列表。

[in] cbSize

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

[out] pcbNeeded

指向接收功能列表的实际大小(以字节为单位)的内存位置的指针。

返回值

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

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

使用 pmszFeatureList 设置为 NULL 调用该方法。

E_INVALIDARG
poemuiobj 参数指向无效的上下文对象。
E_FAIL
方法失败

注解

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

打印机粘性 功能 (请参阅 替换Driver-Supplied属性工作表页) (如确定可安装内存和可选附件的状态)包含在功能关键字列表中,当方法返回时,它们将显示在 pmszFeatureList 指向的输出缓冲区中。 对于 Pscript5,此类功能将 OpenGroupType 功能属性设置为“InstallableOptions”。

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

有关详细信息,请参阅 使用 EnumFeatures

要求

   
目标平台 桌面
Header prcomoem.h (包括 Prcomoem.h)

另请参阅

IPrintCoreUI2

IPrintCoreUI2::EnumOptions

OEMUIOBJ