描述
AddJob功能将打印作业添加到打印后台处理程序可以调度的打印作业列表中。该函数检索可用于存储作业的文件的名称。
C++ 语法
BOOL AddJob( __in HANDLE hPrinter, __in DWORD Level, __out LPBYTE pData, __in DWORD cbBuf, __out LPDWORD pcbNeeded ); |
PowerBASIC 语法
FUNCTION AddJobA ( _ BYVAL hPrinter AS DWORD, _ BYVAL Level AS DWORD, _ BYREF pData AS ANY, _ BYVAL cbBuf AS DWORD, _ BYREF pcbNeeded AS DWORD _ ) AS LONG |
Unicode版本:
FUNCTION AddJobW ( _ BYVAL hPrinter AS DWORD, _ BYVAL Level AS DWORD, _ BYREF pData AS ANY, _ BYVAL cbBuf AS DWORD, _ BYREF pcbNeeded AS DWORD _ ) AS LONG |
参数
hPrinter
[in]句柄,用于指定打印作业的打印机。这必须是配置为假脱机打印机的本地打印机。如果hPrinter是远程打印机连接的句柄,或者如果打印机配置为直接打印,则AddJob功能失败。使用OpenPrinter或AddPrinter功能来检索打印机句柄。
Level
[in]指定函数存储到的pData指向的缓冲区中的打印作业信息数据结构的版本。将此参数设置为1。
pData
[out]指向接收ADDJOB_INFO_1数据结构和路径字符串的缓冲区的指针。
cbBuf
[in]指定pData指向的缓冲区的大小(以字节为单位)。缓冲区需要足够大以包含ADDJOB_INFO_1结构和路径字符串。
pcbNeeded
[out]指向接收ADDJOB_INFO_1数据结构的总大小(以字节为单位)加上路径字符串的变量的指针。如果此值小于或等于cbBuf,并且该函数成功,则这是写入的pData指向的缓冲区的实际字节数。如果该数字大于cbBuf,则缓冲区太小,您必须使用至少与pcbNeeded一样大的缓冲区大小再次调用该函数。
Windows 95/98 / Me:pcbNeeded只有cbBuf大于零且小于SIZEOF(ADDJOB)+ SIZEOF(路径字符串)时,才会返回正确的数字。否则返回不正确的数字。
返回值
如果函数成功,则返回值为非零值。
如果函数失败,返回值为零。
Windows 95/98 / Me:下表显示cbBuf如何影响AddJob.
备注
应用程序可以通过调用EnumForms功能来确定打印机可用的窗体。
如果P成型指向FORM_INFO_2,则如果具有指定名称的表单已存在或结构的pKeyword值已存在,则AddForm将失败。
条件 |
结果 |
cbBuf=零 |
功能失败,ERROR_INVALID_USER_BUFFER,pcbNeeded返回不正确的数字。 |
cbBuf >= SIZEOF(ADDJOB_INFO_1+路径字符串) |
函数成功,但pcbNeeded返回不正确的数字。 |
零<cbBuf<sizeof(ADDJOB_INFO_1+路径字符串) |
函数失败,pcbNeeded返回正确的数字。 |
备注
您可以调用CreateFile函数打开由ADDJOB_INFO_1结构的Path成员指定的假脱机文件,然后调用WriteFile函数将打印作业数据写入它。一旦完成,请调用ScheduleJob功能通知打印后台处理程序现在可以由后台处理程序调度打印作业进行打印。
Windows 95/98 / Me:Microsoft Layer for Unicode支持AddJobW.
引用文件 #INCLUDE Once
WinSpool.inc(包括Windows.inc)