描述
MXDC_ESCAPE_HEADER_T结构保存ExtEscapeMXDC_ESCAPE作为nEscape参数的呼叫操作代码。它还提供输入和输出缓冲区的大小。
C++ 语法
typedef struct tagMxdcEscapeHeader { ULONG cbInput; ULONG cbOutput; ULONG opCode; } MXDC_ESCAPE_HEADER_T, *P_MXDC_ESCAPE_HEADER_T; |
PowerBASIC 语法
TYPE MXDC_ESCAPE_HEADER_T cbInput AS DWORD cbOutput AS DWORD opCode AS DWORD END TYPE |
成员
cbInput
将传递给ExtEscape函数的lpszOutData参数的输入缓冲区的大小。
cbOutput
输出缓冲区的大小。这与ExtEscape函数的cbOutput参数的值相同。
opCode
代码常量,告诉Microsoft XPS Document Converter(MXDC)做什么。
操作代码 |
描述 |
MXDCOP_GET_FILENAME |
返回在ExtEscape函数的lpszOutData参数中,输出文件的完整路径为零终止字符串或该字符串的大小。见备注。 |
MXDCOP_PRINTTICKET_FIXED_DOC_SEQ |
将打印票据与XML纸张规格(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之前,_应用程序应首先通过使用GETTECHNOLOGY转义来调用ExtEscape来验证驱动程序是否为MXDC。如果驱动程序是MXDC,则该函数返回零终止字符串“http://schemas.microsoft.com/xps/2005/06”。
此结构始终处于传递给其lpszInData参数中ExtEscape函数的数据的开头。
当操作码为MXDCOP_GET_FILENAME时:
· | ExtEscape函数的lpszInData参数仅由MXDC_ESCAPE_HEADER_T结构组成。 |
· | 通过调用ExtEscape获取输出文件名。 |
· | 第一次,将4通过ExtEscape的cbOutput参数。将lpszOutData参数设置为指向任何已分配的4个字节的内存。将在ExtEscape的lpszOutData参数中返回完全限定文件路径的大小。 |
· | 然后再次调用该函数。此时将cbOutput和cbInput设置为4+ DataSize.完全限定的文件路径将以MXDC_GET_FILENAME_DATA_T结构返回。 |
当操作码为MXDCOP_PRINTTICKET_FIXED_DOC_SEQ或MXDCOP_PRINTTICKET_FIXED_DOC:
· | ExtEscape功能的lpszInData参数由MXDC_ESCAPE_HEADER_T结构和MXDC_S0PAGE_PASSTHROUGH_ESCAPE_T结构连接成MXDC_S0PAGE_PASSTHROUGH_ESCAPE_T结构组成。 |
· | 致电ExtEscape必须在致电StartDoc和致电EndDoc之间。 |
当操作码为MXDCOP_PRINTTICKET_FIXED_PAGE:
· | ExtEscape功能的lpszInData参数由MXDC_ESCAPE_HEADER_T结构和MXDC_PRINTTICKET_DATA_T结构连接成MXDC_PRINTTICKET_ESCAPE_T结构组成。 |
· | 致电ExtEscape必须在致电StartPage和致电EndPage之间。 |
当操作码为MXDCOP_SET_S0PAGE时:
· | ExtEscape函数的lpszInData参数由MXDC_ESCAPE_HEADER_T结构和MXDC_S0PAGE_DATA_T结构连接成MXDC_S0PAGE_RESOURCE_ESCAPE_T结构组成。 |
· | 致电ExtEscape必须在致电StartPage和致电EndPage之间。 |
· | 调用应用程序负责验证XML。 |
· | 如果您使用MXDCOP_SET_S0PAGE_RESOURCE 操作码为操作码为页面上的每个资源调用ExtEscape,然后使用MXDCOP_SET_S0PAGE调用流量消耗就更有效。 |
当操作码为MXDCOP_SET_S0PAGE_RESOURCE时:
· | ExtEscape函数的lpszInData参数由MXDC_ESCAPE_HEADER_T结构和MXDC_XPS_S0PAGE_RESOURCE_T结构连接成MXDC_S0PAGE_RESOURCE_ESCAPE_T结构组成。 |
· | 致电ExtEscape必须在致电StartPage和致电EndPage之间,但StartPage和EndPage电话之间可能会有多个此类电话。 |
· | 如果您在使用MXDCOP_SET_S0PAGE_RESOURCE作为opCode为网页上的每个资源调用ExtEscape,然后使用MXDCOP_SET_S0PAGE调用流量消耗就更有效。 |
当操作码为MXDCOP_SET_XPSPASSTHRU_MODE时:
· | ExtEscape功能的lpszInData参数仅由MXDC_ESCAPE_HEADER_T结构组成。 |
· | 应用程序应首先通过GETTECHNOLOGY转义来调用ExtEscape来验证驱动程序是否为MXDC。如果驱动程序是MXDC,它将返回零终止的字符串“http://schemas.microsoft.com/xps/2005/06”。此呼叫必须在致电StartDoc之前进行。 |
引用文件 #INCLUDE Once
Mxdc.inc