IPrintOemUni3::SetBandSize 方法 (prcomoem.h)

方法 IPrintOemUni3::SetBandSize 可用于 Unidrv 支持的打印机,以在打印输出上指定所需的带区大小。

语法

HRESULT SetBandSize(
  [in] PDEVOBJ pdevobj,
  [in] INT     iFormat,
  [in] DWORD   dwPageWidthBytes,
  [in] DWORD   dwPageHeight,
  [in] DWORD   dwMaxHeight,
  [in] PDWORD  pdwRequiredHeight
);

参数

[in] pdevobj

调用方提供的指向 DEVOBJ 结构的指针。

[in] iFormat

一个整数值,该值根据所需的每个像素的颜色信息位数指定位图的格式。 此参数的取值可为下列值之一:

含义
BMF_1BPP
单色
BMF_4BPP
每像素 4 位
BMF_8BPP
每像素 8 位
BMF_16BPP
每像素 16 位
BMF_24BPP
每像素 24 位
BMF_32BPP
每像素 32 位
BMF_4RLE
每像素 4 位;运行长度编码
BMF_8RLE
每像素 8 位;运行长度编码

[in] dwPageWidthBytes

Unidrv 提供的一个值,该值指定打印区域的宽度(以字节为单位)。

[in] dwPageHeight

Unidrv 提供的一个值,该值指定打印区域的高度(以像素为单位)。

[in] dwMaxHeight

Unidrv 提供的一个值,该值指定打印区域允许的最大高度(以像素为单位)。

[in] pdwRequiredHeight

调用方提供的指向 DWORD 的指针,该 DWORD 包含呈现插件所需的打印区域的高度(以像素为单位)。

返回值

方法必须返回以下值之一:

返回代码 说明
S_OK
操作成功。 请参阅“注意”。
E_FAIL
此操作失败。 请参阅“注意”。
E_NOTIMPL
Unidrv 应计算带状大小。

注解

此方法在 Windows Vista 及更高版本中可用。

呈现插件使用此方法通过插件自己的计算来指定带大小,而不是使用 Unidrv 的带区大小计算。

可以通过将 dwPageHeight 值设置为 *pdwRequiredHeight 来禁用 Unidrv 的绑定操作,但应考虑呈现插件请求的高度值的性能影响。 对于呈现,Unidrv 至少需要通过将 dwPageWidthBytes 乘以 *pdwRequiredHeight 计算得出的内存量。 如果呈现插件支持 IPrintOemUni::D riverDMS 方法,并且该方法返回“S_OK”, IPrintOemUni3::SetBandSize 则不调用 。

如果定义了此方法,并且打印机的通用打印机说明 (GPD) 文件指示禁用预分析 (GPD 文件包含“*PreAnalysisOptions: 0”) ,则 Unidrv 调用此方法来计算带大小。 有关 PreAnalysisOptions 属性的信息,请参阅 预分析基础结构

如果呈现插件支持 IPrintOemUni::D riverDMS ,并且该方法返回S_OK, IPrintOemUni3::SetBandSize 则不调用 。

要求

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