Compartir a través de


estructura de MXDC_ESCAPE_HEADER_T

La estructura MXDC_ESCAPE_HEADER_T contiene el código de operación de una llamada a ExtEscape con MXDC_ESCAPE como parámetro nEscape . También proporciona los tamaños de los búferes de entrada y salida.

Sintaxis

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

Miembros

cbInput

Tamaño del búfer de entrada que se pasará al parámetro lpszOutData de la función ExtEscape .

cbOutput

Tamaño del búfer de salida. Este es el mismo valor que el parámetro cbOutput de la función ExtEscape .

Opcode

Constante de código que indica a MXDC qué hacer.

Código de operaciones Descripción
MXDCOP_GET_FILENAME Devuelve, en el parámetro lpszOutData de la función ExtEscape , ya sea la ruta de acceso completa del archivo de salida como una cadena terminada en cero o el tamaño de esa cadena. Vea la sección Comentarios.
MXDCOP_PRINTTICKET_FIXED_DOC_SEQ Asocia un vale de impresión a una secuencia fija de documentos XPS.
MXDCOP_PRINTTICKET_FIXED_DOC Asocia un vale de impresión a un documento XPS.
MXDCOP_PRINTTICKET_FIXED_PAGE Asocia un vale de impresión a una página XPS.
MXDCOP_SET_S0PAGE Envía el marcado XPS de la página actual a la salida.
MXDCOP_SET_S0PAGE_RESOURCE Envía un recurso en la página, como una imagen o fuente, a la salida.
MXDCOP_SET_XPSPASSTHRU_MODE Coloca el MXDC en un estado de paso a través, lo que permite a una aplicación escribir XPS directamente en el archivo de salida sin ningún procesamiento por parte del MXDC. De este modo, se puede escribir un documento completo o incluso una secuencia de documentos.

Comentarios

Antes de llamar a MXDC_ESCAPE,_applications debe comprobar primero que el controlador es MXDC llamando a ExtEscape con el escape GETTECHNOLOGY . Si el controlador es el MXDC, la función devuelve la cadena terminada en cero "http://schemas.microsoft.com/xps/2005/06".

Esta estructura siempre está al principio de los datos pasados a la función ExtEscape en su parámetro lpszInData .

Cuando opCode es MXDCOP_GET_FILENAME:

  • El parámetro lpszInData de la función ExtEscape consta únicamente de la estructura MXDC_ESCAPE_HEADER_T .
  • Obtenga el nombre de archivo de salida llamando a ExtEscape dos veces.
    1. La primera vez, pase 4 al parámetro cbOutput de ExtEscape. Establezca el parámetro lpszOutData para que apunte a cualquier 4 bytes de memoria asignado. El tamaño de la ruta de acceso completa del archivo se devolverá en el parámetro lpszOutData de ExtEscape.
    2. A continuación, vuelva a llamar a la función. Esta vez establece cbOutput y cbInput en 4+ DataSize. La ruta de acceso completa del archivo se devolverá en una estructura MxdcGetFileNameData .

Cuando opCode se MXDCOP_PRINTTICKET_FIXED_DOC_SEQ o MXDCOP_PRINTTICKET_FIXED_DOC:

Cuando opCode está MXDCOP_PRINTTICKET_FIXED_PAGE:

Cuando opCode es MXDCOP_SET_S0PAGE:

  • El parámetro lpszInData de la función ExtEscape consta de la estructura MXDC_ESCAPE_HEADER_T y una estructura MxdcS0PageData concatenada en una estructura MxdcS0PagePassthroughEscape .
  • La llamada a ExtEscape debe producirse entre una llamada a StartPage y una llamada a EndPage.
  • La aplicación que realiza la llamada es responsable de validar el XML.
  • El consumo de streaming es más eficaz si llama a ExtEscape con MXDCOP_SET_S0PAGE_RESOURCE como opCode para cada recurso de la página antes de llamarlo con MXDCOP_SET_S0PAGE.

Cuando opCode es MXDCOP_SET_S0PAGE_RESOURCE:

  • El parámetro lpszInData de la función ExtEscape consta de la estructura MXDC_ESCAPE_HEADER_T y una estructura MxdcXpsS0PageResource concatenada en una estructura MxdcS0PageResourceEscape .
  • La llamada a ExtEscape debe producirse entre una llamada a StartPage y una llamada a EndPage, pero puede haber varias llamadas entre las llamadas StartPage y EndPage .
  • El consumo de streaming es más eficaz si llama a ExtEscape con MXDCOP_SET_S0PAGE_RESOURCE como opCode para cada recurso de la página antes de llamarlo con MXDCOP_SET_S0PAGE.

Cuando opCode está MXDCOP_SET_XPSPASSTHRU_MODE:

  • El parámetro lpszInData de la función ExtEscape consta únicamente de la estructura MXDC_ESCAPE_HEADER_T .
  • Esta llamada debe producirse antes de la llamada a StartDoc.

Requisitos

Requisito Value
Cliente mínimo compatible
Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible
Windows Server 2008 [solo aplicaciones de escritorio]
Encabezado
Mxdc.h

Consulte también

Impresión

Imprimir estructuras de API de Spooler

Funciones de escape de impresora GDI

ExtEscape

MXDC_ESCAPE