IPrintCoreUI2::GetOptionAttribute 方法 (prcomoem.h)

该方法 IPrintCoreUI2::GetOptionAttribute 检索选项属性列表或特定选项属性的值。

语法

HRESULT GetOptionAttribute(
  [in]  POEMUIOBJ poemuiobj,
  [in]  DWORD     dwFlags,
  [in]  PCSTR     pszFeatureKeyword,
  [in]  PCSTR     pszOptionKeyword,
  [in]  PCSTR     pszAttribute,
  [out] PDWORD    pdwDataType,
  [out] PBYTE     pbData,
  [in]  DWORD     cbSize,
  [out] PDWORD    pcbNeeded
);

参数

[in] poemuiobj

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

[in] dwFlags

保留且必须设置为零。

[in] pszFeatureKeyword

指向包含 ASCII 字符串的调用方提供的缓冲区的指针,该字符串指定要查询的单个功能关键字。

[in] pszOptionKeyword

指向包含 ASCII 字符串的调用方提供的缓冲区的指针,该字符串指定要查询的单个选项关键字。 可以从之前调用 IPrintCoreUI2::EnumOptions 获取此值。

[in] pszAttribute

指向调用方提供的缓冲区的指针,该缓冲区包含指定所请求的单个属性的 ASCII 字符串。 如果此参数为 NULL,则调用方请求选项的所有受支持的属性名称的列表,而不是为该选项指定特定的属性名称。

[out] pdwDataType

指向接收指定所请求属性数据类型的值的内存位置的指针。 此值是 EATTRIBUTE_DATATYPE 枚举的枚举器。

[out] pbData

指向接收请求数据的调用方提供的缓冲区的指针。 若要只需查询满足请求所需的字节数,请将此参数设置为 NULL

[in] cbSize

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

[out] pcbNeeded

指向接收所请求数据的实际大小(以字节为单位)的内存位置的指针。

返回值

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

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

使用 pbData 设置为 NULL 调用了该方法。

E_INVALIDARG
该方法尝试查询不存在的属性。

无法识别特征关键字名称或选项关键字名称。

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

E_FAIL
方法失败

注解

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

If this method is called with its pszAttribute and pbData parameters set to NULL, the method returns with *pcbNeeded set to the number of bytes needed for the list of all supported attribute names for the option. 如果该方法第二次调用, pszAttribute 设置为 NULLpbData 指向上一次调用中指定的大小缓冲区 ,则该方法返回的 *pdwDataType 设置为kADT_ASCII (EATTRIBUTE_DATATYPE 枚举类型的枚举器) , pbData 指向选项所有受支持属性名称的 null 分隔列表。 此列表以两个 null 字符终止。

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

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

要求

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

另请参阅

IPrintCoreUI2

IPrintCoreUI2::EnumOptions

IPrintCoreUI2::GetFeatureAttribute

IPrintCoreUI2::GetGlobalAttribute

OEMUIOBJ