IPrintCorePS2::GetGlobalAttribute 方法 (prcomoem.h)

IPrintCorePS2::GetGlobalAttribute 方法检索全局属性列表或特定全局属性的值。

语法

HRESULT GetGlobalAttribute(
  [in]  PDEVOBJ pdevobj,
  [in]  DWORD   dwFlags,
  [in]  PCSTR   pszAttribute,
  [out] PDWORD  pdwDataType,
  [out] PBYTE   pbData,
  [in]  DWORD   cbSize,
  [out] PDWORD  pcbNeeded
);

参数

[in] pdevobj

指向 DEVOBJ 结构的指针。

[in] dwFlags

保留并且必须设置为零。

[in] pszAttribute

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

[out] pdwDataType

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

[out] pbData

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

[in] cbSize

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

[out] pcbNeeded

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

返回值

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

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

调用此方法时,pbData 设置为 NULL

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

pdevobj 参数指向无效的驱动程序上下文对象。

E_FAIL
方法失败。

言论

如果使用其 pszAttribute 调用此方法,并且 pbData 参数设置为 NULL,则该方法将返回 * 设置为所有受支持的全局属性名称列表所需的字节数。 如果第二次调用该方法,pszAttribute 设置为 NULLpbData 指向上一次调用中指定的 * 中指定的大小的缓冲区, 该方法返回的值为 *pdwDataType 设置为kADT_ASCII(EATTRIBUTE_DATATYPE 枚举类型的枚举器),pbData 指向所有支持的全局属性名称的空分隔列表。 此列表以两个 null 字符结尾。

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

任何 Pscript5 呈现插件都支持此方法。

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

要求

要求 价值
目标平台 桌面
标头 prcomoem.h (include Prcomoem.h)

另请参阅

DEVOBJ

IPrintCorePS2

IPrintCorePS2::GetFeatureAttribute

IPrintCorePS2::GetOptionAttribute