勇芳软件工作室.汉化:  Printing > GDI Print API > Microsoft XPS Document Converter (MXDC) > MXDC Escape Code Structures >

MXDC_ESCAPE_HEADER_T (Vista)

Previous pageReturn to chapter overviewNext page

描述

 

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通过ExtEscapecbOutput参数。将lpszOutData参数设置为指向任何已分配的4个字节的内存。将在ExtEscapelpszOutData参数中返回完全限定文件路径的大小。

 

·然后再次调用该函数。此时将cbOutputcbInput设置为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之间,但StartPageEndPage电话之间可能会有多个此类电话。

 

·如果您在使用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