MXDC_S0PAGE_PASSTHROUGH_ESCAPE_T structure

The MXDC_S0PAGE_PASSTHROUGH_ESCAPE_T structure is an MXDC_ESCAPE_HEADER_T structure concatenated with an MXDC_S0PAGE_DATA_T structure.

Syntax

typedef struct tagMxdcS0PagePassthroughEscape {
  MXDC_ESCAPE_HEADER_T mxdcEscape;
  MXDC_S0PAGE_DATA_T   xpsS0PageData;
} MXDC_S0PAGE_PASSTHROUGH_ESCAPE_T, *P_MXDC_S0PAGE_PASSTHROUGH_ESCAPE_T;

Members

mxdcEscape

An MXDC_ESCAPE_HEADER_T structure with its opCode member set to MXDCOP_SET_S0PAGE.

xpsS0PageData

An MxdcS0PageData structure that represents an XPS-document page.

Remarks

This structure is passed in the lpszInData parameter of the ExtEscape function when it is called with the MXDC_ESCAPE escape and the opCode member of the MXDC_ESCAPE_HEADER_T structure is MXDCOP_SET_S0PAGE. The result is that the Microsoft XML Document Converter (MXDC) passes the page through to the printer without processing it.

Allocate memory for the escape as shown below, set the fields as needed, and then call ExtEscape.

// Compute size of buffer required adding the
//  size of the escape structure to the size
//  of the resource data buffer.
SIZE_T iTotalDataSize = sizeof(MXDC_S0PAGE_PASSTHROUGH_ESCAPE_T) + 
                        iS0PageDataSize - 1;

// Allocate the memory buffer.
P_MXDC_S0PAGE_PASSTHROUGH_ESCAPE_T pS0PageEscapeData = 
                        (P_MXDC_S0PAGE_PASSTHROUGH_ESCAPE_T)HeapAlloc(
                            GetProcessHeap(),
                            0,
                            iTotalDataSize);

The call to ExtEscape must be between a call to StartPage and a call to EndPage.

The calling application is responsible for validating the XML of the XPS document page.

Streaming consumption is more efficient if you call ExtEscape with MXDCOP_SET_S0PAGE_RESOURCE as opCode for each resource on the page before you call it with MXDCOP_SET_S0PAGE.

Requirements

Requirement Value
Minimum supported client
Windows Vista [desktop apps only]
Minimum supported server
Windows Server 2008 [desktop apps only]
Header
Mxdc.h

See also

Printing

Print Spooler API Structures

GDI Printer Escape Functions

ExtEscape

MXDC_ESCAPE