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 字符串,该字符串指定要查询的单个功能关键字 (keyword) 。
[in] pszOptionKeyword
指向调用方提供的缓冲区的指针,该缓冲区包含一个 ASCII 字符串,该字符串指定要查询的单个选项关键字 (keyword) 。 此值可以从之前对 IPrintCoreUI2::EnumOptions 的调用中获取。
[in] pszAttribute
指向调用方提供的缓冲区的指针,该缓冲区包含指定所请求的单个属性的 ASCII 字符串。 如果此参数为 NULL,则调用方请求选项的所有受支持属性名称的列表,而不是为选项指定特定的属性名称。
[out] pdwDataType
指向内存位置的指针,该内存位置接收指定所请求属性的数据类型的值。 此值是 EATTRIBUTE_DATATYPE 枚举的枚举器。
[out] pbData
指向调用方提供的缓冲区的指针,该缓冲区接收请求的数据。 若要仅查询满足请求所需的字节数,请将此参数设置为 NULL。
[in] cbSize
指定 pbData 指向的缓冲区的大小(以字节为单位)。
[out] pcbNeeded
指向接收所请求数据的实际大小(以字节为单位)的内存位置的指针。
返回值
此方法必须返回以下值之一。
返回代码 | 说明 |
---|---|
|
方法成功。 |
|
cbSize 中的值小于要写入输出缓冲区 (pbData) 指向的缓冲区的字节数。
调用 方法时 ,pbData 设置为 NULL。 |
|
方法尝试查询不存在的属性。
无法识别功能关键字 (keyword) 名称或选项关键字 (keyword) 名称。 poemuiobj 参数指向无效的上下文对象。 |
|
方法失败 |
注解
此方法仅支持 Windows XP Pscript5 插件,不适用于 Unidrv 插件。
如果在将 pszAttribute 和 pbData 参数设置为 NULL 的情况下调用此方法,该方法将返回 ,并将 *pbNeeded 设置为选项的所有受支持属性名称列表所需的字节数。 如果第二次调用该方法,并将 pszAttribute 设置为 NULL,pbData 指向上一次调用中 *EATTRIBUTE_DATATYPE Needed 中指定的大小的缓冲区,则该方法返回 ,并将 *pdwDataType 设置为kADT_ASCII (EATTRIBUTE_DATATYPE枚举类型) 和 pbData 的枚举器指向选项的所有受支持属性名称的 null 分隔列表。 此列表以两个 null 字符结尾。
若要减少对每个数据访问进行两次调用的需要,请向 方法传递一个固定大小 (1 KB 的输出缓冲区,例如) ,然后检查函数返回值。 如果方法返回S_OK,则缓冲区已包含相关数据。 如果该方法返回E_OUTOFMEMORY,则 *E_OUTOFMEMORY 中的值是保存相关数据所需的缓冲区大小。 然后,调用方应分配一个更大的缓冲区,并继续对 方法的第二次调用。
有关详细信息,请参阅 使用 GetOptionAttribute。
要求
要求 | 值 |
---|---|
目标平台 | 桌面 |
标头 | prcomoem.h (包括 Prcomoem.h) |
另请参阅
IPrintCoreUI2::GetFeatureAttribute