描述
逃逸功能使应用程序能够访问不能通过GDI直接使用的特定设备的功能。由应用程序进行的Escape呼叫转换并发送给驱动程序。
C++ 语法
int Escape( __in HDC hdc, __in int nEscape, __in int cbInput, __in LPCSTR lpvInData, __out LPVOID lpvOutData ); |
PowerBASIC 语法
FUNCTION Escape ( _ BYVAL hdc AS DWORD, _ BYVAL nEscape AS LONG, _ BYVAL cbInput AS LONG, _ BYREF lpvInData AS ANY, _ BYREF lpvOutData AS ANY _ ) AS LONG |
参数
hdc
[in]处理设备上下文。
nEscape
[in]指定要执行的转义函数。此参数必须是备注部分中列出的预定义转义值之一。如果应用程序定义私有转义值,请使用ExtEscape函数。
cbInput
[in]指定lpvInData参数指向的数据的字节数。这可以是0。
lpvInData
[in]指向指定转义所需的输入结构的指针。
lpvOutData
[out]指向从此转义接收输出的结构的指针。如果没有返回数据,此参数应为NULL。
返回值
如果函数成功,则返回值大于零,但QUERYESCSUPPORT打印机转义除外,仅检查实现。如果没有实现转义,返回值为零。
如果函数失败,则返回值是系统错误代码。
错误
如果函数失败,则返回值为以下值之一:
值 |
含义 |
SP_ERROR |
一般错误。如果返回SP_ERROR,Escape可能会将最后一个错误代码设置为:
ERROR_INVALID_PARAMETER ERROR_DISK_FULL ERROR_NOT_ENOUGH_MEMORY ERROR_PRINT_CANCELLED |
SP_OUTOFDISK |
当前没有足够的磁盘空间用于假脱机,并且没有更多的空间可用。 |
SP_OUTOFMEMORY |
没有足够的内存可用于假脱机。 |
SP_USERABORT |
用户通过打印管理器终止了作业。 |
备注
对cbInput传递0的效果将取决于nEscape的值和正在处理转义的驱动程序。
在原始打印机转义中,只能使用以下内容。
逃逸 |
描述 |
QUERYESCSUPPORT |
确定设备驱动程序是否实现特定的转义。 |
PASSTHROUGH |
允许应用程序直接将数据发送到打印机。 |
以下打印机转义已过时。它们仅用于与16位版本的Windows兼容。
逃逸 |
描述 |
ABORTDOC |
停止当前打印作业,并擦除应用程序自上次ENDDOC转义以来写入设备的所有内容。
这个逃脱已被AbortDoc取代。 |
ENDDOC |
结束STARTDOC转义启动的打印作业。
这被EndDoc所代替。 |
GETPHYSPAGESIZE |
检索物理页面大小并将其复制到指定的位置。
这个逃脱已被GetDeviceCaps中的物理学和物理学权限取代。 |
GETPRINTINGOFFSET |
从实际打印或绘图开始的物理页面的左上角检索偏移量。
这个逃脱已被GetDeviceCaps中的PHYSICALOFFSETX和PHYSICALOFFSETY所取代。 |
GETSCALINGFACTOR |
检索打印机的x轴和y轴的缩放因子。
这个逃脱已被GetDeviceCaps中的SCALINGFACTORX和SCALINGFACTORY取代。 |
NEWFRAME |
通知打印机应用程序已完成写入页面。
这个逃脱已被EndPage取代,该结束一页。与NEWFRAME不同,打印页面后始终会调用EndPage. |
NEXTBAND |
通知打印机应用程序已完成写入频带。
乐队信息不再使用。 |
SETABORTPROC |
设置打印作业的中止功能。
这个逃脱已被SetAbortProc所取代。 |
SETCOPYCOUNT |
设置份数。
这个逃脱已被DocumentProperties或PrinterProperties取代。 |
STARTDOC |
通知打印机驱动程序新的打印作业正在启动。
这个逃脱已经被StartDoc取代了。 |
此外,StartPage??功能用于准备打印机驱动程序接收数据。
引用文件 #INCLUDE Once
WinGdi.inc(包括Windows.inc)