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 的指针,其中包含呈现插件所需的打印区域的高度(以像素为单位)。

返回值

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

返回代码 描述
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 (include Prcomoem.h)