StartDocPrinter 函数通知打印后台处理程序要打印文档以供打印。
语法
DWORD StartDocPrinter(
  _In_ HANDLE hPrinter,
  _In_ DWORD  Level,
  _In_ LPBYTE pDocInfo
);
参数
- 
hPrinter [in] 
- 
打印机的句柄。 使用 OpenPrinter 或 AddPrinter 函数检索打印机句柄。 
- 
级别 [in] 
- 
pDocInfo 指向的结构的版本。 此值必须为 1。 
- 
pDocInfo [in] 
- 
指向描述要打印的文档 的DOC_INFO_1 结构的指针。 
返回值
如果函数成功,则返回值标识打印作业。
如果函数失败,则返回值为零。
注解
注释
这是阻塞或同步函数,可能不会立即返回。 此函数返回的速度取决于运行时因素,例如网络状态、打印服务器配置和打印机驱动程序实现因素,在编写应用程序时难以预测。 从管理与用户界面交互的线程调用此函数可能会使应用程序看起来无响应。
打印作业的典型顺序如下所示:
- 若要开始打印作业,请调用 StartDocPrinter。
- 若要开始每个页面,请调用 StartPagePrinter。
- 若要将数据写入页面,请调用 WritePrinter。
- 若要结束每个页面,请调用 EndPagePrinter。
- 根据需要对任意数量的页面重复 2、3 和 4。
- 若要结束打印作业,请调用 EndDocPrinter。
请注意,调用 StartPagePrinter 和 EndPagePrinter 可能没有必要,例如,打印数据类型是否包含页面信息。
当后台处理文件中的页面超过大约 350 MB 时,它可能无法打印,并且无法发送错误消息。 例如,打印大型 EMF 文件时可能会出现这种情况。 页面大小限制取决于许多因素,包括可用的虚拟内存量、调用进程分配的内存量以及进程堆中的碎片量。
例子
有关使用此函数的示例程序,请参阅 How To: Print Using the GDI Print API.
要求
| 要求 | 价值 | 
|---|---|
| 支持的最低客户端 | Windows 2000 Professional [仅限桌面应用] | 
| 支持的最低服务器 | Windows 2000 Server [仅限桌面应用] | 
| 标题 | 
 | 
| 图书馆 | 
 | 
| DLL | 
 | 
| Unicode 和 ANSI 名称 | StartDocPrinterW (Unicode) 和 StartDocPrinterA (ANSI) |