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 两次获取输出文件名。
- 第一次,将 4 传递给 ExtEscape 的 cbOutput 参数。 将 lpszOutData 参数设置为指向任何分配的 4 字节内存。 将在 ExtEscape 的 lpszOutData 参数中返回完全限定文件路径的大小。
- 然后再次调用函数。 这次将 cbOutput 和 cbInput 设置为 4+ DataSize。 将在 MxdcGetFileNameData 结构中返回完全限定的文件路径。
MXDCOP_PRINTTICKET_FIXED_DOC_SEQ或MXDCOP_PRINTTICKET_FIXED_DOC opCode 时:
- ExtEscape 函数的 lpszInData 参数由 MXDC_ESCAPE_HEADER_T 结构和连接到 MxdcPrintTicketEscape 结构的 MxdcPrintTicketPassthrough 结构组成。
- 对 ExtEscape 的调用必须在对 StartDoc 的调用和对 EndDoc 的调用之间发生。
MXDCOP_PRINTTICKET_FIXED_PAGE opCode 时:
- ExtEscape 函数的 lpszInData 参数由 MXDC_ESCAPE_HEADER_T 结构和连接到 MxdcPrintTicketEscape 结构的 MxdcPrintTicketPassthrough 结构组成。
- 对 ExtEscape 的调用必须在调用 StartPage 和调用 EndPage 之间发生。
MXDCOP_SET_S0PAGE opCode 时:
- ExtEscape 函数的 lpszInData 参数由 MXDC_ESCAPE_HEADER_T 结构和连接到 MxdcS0PagePassthroughEscape 结构的 MxdcS0PageData 结构组成。
- 对 ExtEscape 的调用必须在调用 StartPage 和调用 EndPage 之间发生。
- 调用应用程序负责验证 XML。
- 如果在使用 MXDCOP_SET_S0PAGE 调用 ExtEscape 之前,先使用 MXDCOP_SET_S0PAGE_RESOURCE 作为 操作码 调用页面上的每个资源,则流式处理消耗会更高效。
MXDCOP_SET_S0PAGE_RESOURCE opCode 时:
- ExtEscape 函数的 lpszInData 参数由 MXDC_ESCAPE_HEADER_T 结构和连接到 MxdcS0PageResourceEscape 结构的 MxdcXpsS0PageResource 结构组成。
- 对 ExtEscape 的调用必须在调用 StartPage 和对 EndPage 的调用之间发生,但在 StartPage 和 EndPage 调用之间可能有多个此类调用。
- 如果在使用 MXDCOP_SET_S0PAGE 调用 ExtEscape 之前,先使用 MXDCOP_SET_S0PAGE_RESOURCE 作为 操作码 调用页面上的每个资源,则流式处理消耗会更高效。
MXDCOP_SET_XPSPASSTHRU_MODE opCode 时:
要求
要求 | 值 |
---|---|
最低受支持的客户端 |
Windows Vista [仅限桌面应用] |
最低受支持的服务器 |
Windows Server 2008 [仅限桌面应用] |
标头 |
|