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
一个整数值,该值根据所需的每个像素的颜色信息位数指定位图的格式。 此参数的取值可为下列值之一:
值 | 含义 |
---|---|
|
单色 |
|
每像素 4 位 |
|
每像素 8 位 |
|
每像素 16 位 |
|
每像素 24 位 |
|
每像素 32 位 |
|
每像素 4 位;运行长度编码 |
|
每像素 8 位;运行长度编码 |
[in] dwPageWidthBytes
Unidrv 提供的一个值,该值指定打印区域的宽度(以字节为单位)。
[in] dwPageHeight
Unidrv 提供的一个值,该值指定打印区域的高度(以像素为单位)。
[in] dwMaxHeight
Unidrv 提供的一个值,该值指定打印区域允许的最大高度(以像素为单位)。
[in] pdwRequiredHeight
调用方提供的指向 DWORD 的指针,该 DWORD 包含呈现插件所需的打印区域的高度(以像素为单位)。
返回值
方法必须返回以下值之一:
返回代码 | 说明 |
---|---|
|
操作成功。 请参阅“注意”。 |
|
此操作失败。 请参阅“注意”。 |
|
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) |