MXDC_ESCAPE_HEADER_T结构

MXDC_ESCAPE_HEADER_T 结构保存对 ExtEscape 的调用的操作代码,MXDC_ESCAPE作为 nEscape 参数。 它还提供输入和输出缓冲区的大小。

语法

typedef struct tagMxdcEscapeHeader {
  ULONG cbInput;
  ULONG cbOutput;
  ULONG opCode;
} MXDC_ESCAPE_HEADER_T, *P_MXDC_ESCAPE_HEADER_T;

成员

cbInput

将传递给 ExtEscape 函数的 lpszOutData 参数的输入缓冲区的大小。

cbOutput

输出缓冲区的大小。 此值与 ExtEscape 函数的 cbOutput 参数相同。

opCode

指示 MXDC 要执行的操作的代码常量。

操作代码 说明
MXDCOP_GET_FILENAME ExtEscape 函数的 lpszOutData 参数中,返回以零结尾的字符串形式的输出文件的完整路径或该字符串的大小。 请参阅“备注”。
MXDCOP_PRINTTICKET_FIXED_DOC_SEQ 将打印票证与 XPS 固定文档序列相关联。
MXDCOP_PRINTTICKET_FIXED_DOC 将打印票证与 XPS 文档相关联。
MXDCOP_PRINTTICKET_FIXED_PAGE 将打印票证与 XPS 页面相关联。
MXDCOP_SET_S0PAGE 将当前页的 XPS 标记发送到输出。
MXDCOP_SET_S0PAGE_RESOURCE 将页面上的资源(如图像或字体)发送到输出。
MXDCOP_SET_XPSPASSTHRU_MODE 将 MXDC 置于直通状态,使应用程序能够将 XPS 直接写入输出文件,而无需 MXDC 进行任何处理。 可以通过这种方式编写整个文档,甚至文档序列。

备注

在调用 MXDC_ESCAPE 之前,_applications应首先使用 GETTECHNOLOGY 转义调用 ExtEscape 来验证驱动程序是否为 MXDC。 如果驱动程序是 MXDC,则函数返回以零结尾的字符串 “http://schemas.microsoft.com/xps/2005/06"。

此结构始终位于其 lpszInData 参数中传递给 ExtEscape 函数的数据的开头。

MXDCOP_GET_FILENAME opCode 时:

  • ExtEscape 函数的 lpszInData 参数仅包含 MXDC_ESCAPE_HEADER_T 结构。
  • 通过调用 ExtEscape 两次获取输出文件名。
    1. 第一次,将 4 传递给 ExtEscapecbOutput 参数。 将 lpszOutData 参数设置为指向任何分配的 4 字节内存。 将在 ExtEscapelpszOutData 参数中返回完全限定文件路径的大小。
    2. 然后再次调用函数。 这次将 cbOutputcbInput 设置为 4+ DataSize。 将在 MxdcGetFileNameData 结构中返回完全限定的文件路径。

MXDCOP_PRINTTICKET_FIXED_DOC_SEQ或MXDCOP_PRINTTICKET_FIXED_DOC opCode 时:

MXDCOP_PRINTTICKET_FIXED_PAGE opCode 时:

MXDCOP_SET_S0PAGE opCode 时:

MXDCOP_SET_S0PAGE_RESOURCE opCode 时:

MXDCOP_SET_XPSPASSTHRU_MODE opCode 时:

  • ExtEscape 函数的 lpszInData 参数仅包含 MXDC_ESCAPE_HEADER_T 结构。
  • 此调用必须在调用 StartDoc 之前发生。

要求

要求
最低受支持的客户端
Windows Vista [仅限桌面应用]
最低受支持的服务器
Windows Server 2008 [仅限桌面应用]
标头
Mxdc.h

另请参阅

打印

打印后台处理程序 API 结构

GDI 打印机转义函数

ExtEscape

MXDC_ESCAPE