estrutura MXDC_ESCAPE_HEADER_T

A estrutura MXDC_ESCAPE_HEADER_T contém o código de operação de uma chamada ao ExtEscape com MXDC_ESCAPE como o parâmetro nEscape . Ele também fornece os tamanhos dos buffers de entrada e saída.

Sintaxe

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

Membros

cbInput

O tamanho do buffer de entrada que será passado para o parâmetro lpszOutData da função ExtEscape .

cbOutput

O tamanho do buffer de saída. Esse é o mesmo valor que o parâmetro cbOutput da função ExtEscape .

Opcode

A constante de código que informa ao MXDC o que fazer.

Código de operações Descrição
MXDCOP_GET_FILENAME Retorna, no parâmetro lpszOutData da função ExtEscape , o caminho completo do arquivo de saída como uma cadeia de caracteres com término zero ou o tamanho dessa cadeia de caracteres. Consulte Observações.
MXDCOP_PRINTTICKET_FIXED_DOC_SEQ Associa um tíquete de impressão a uma sequência de documentos fixa do XPS.
MXDCOP_PRINTTICKET_FIXED_DOC Associa um tíquete de impressão a um documento XPS.
MXDCOP_PRINTTICKET_FIXED_PAGE Associa um tíquete de impressão a uma página XPS.
MXDCOP_SET_S0PAGE Envia a marcação XPS da página atual para a saída.
MXDCOP_SET_S0PAGE_RESOURCE Envia um recurso na página, como uma imagem ou fonte, para a saída.
MXDCOP_SET_XPSPASSTHRU_MODE Coloca o MXDC em um estado de passagem, permitindo que um aplicativo escreva XPS diretamente no arquivo de saída sem nenhum processamento pelo MXDC. Um documento inteiro ou até mesmo uma sequência de documentos pode ser gravado dessa forma.

Comentários

Antes de chamar MXDC_ESCAPE,_applications deve primeiro verificar se o driver é MXDC chamando o ExtEscape com a escape GETTECHNOLOGY . Se o driver for o MXDC, a função retornará a cadeia de caracteres terminada em zero "http://schemas.microsoft.com/xps/2005/06".

Essa estrutura está sempre no início dos dados passados para a função ExtEscape em seu parâmetro lpszInData .

Quando o opCode é MXDCOP_GET_FILENAME:

  • O parâmetro lpszInData da função ExtEscape consiste apenas na estrutura MXDC_ESCAPE_HEADER_T .
  • Obtenha o nome do arquivo de saída chamando ExtEscape duas vezes.
    1. Na primeira vez, passe 4 para o parâmetro cbOutput do ExtEscape. Defina o parâmetro lpszOutData para apontar para todos os 4 bytes alocados de memória. O tamanho do caminho do arquivo totalmente qualificado será retornado no parâmetro lpszOutData do ExtEscape.
    2. Em seguida, chame a função novamente. Dessa vez, defina cbOutput e cbInput como 4+ DataSize. O caminho do arquivo totalmente qualificado será retornado em uma estrutura MxdcGetFileNameData .

Quando o opCode é MXDCOP_PRINTTICKET_FIXED_DOC_SEQ ou MXDCOP_PRINTTICKET_FIXED_DOC:

Quando o opCode é MXDCOP_PRINTTICKET_FIXED_PAGE:

Quando o opCode é MXDCOP_SET_S0PAGE:

  • O parâmetro lpszInData da função ExtEscape consiste na estrutura MXDC_ESCAPE_HEADER_T e uma estrutura MxdcS0PageData concatenada em uma estrutura MxdcS0PagePassthroughEscape .
  • A chamada para o ExtEscape deve ocorrer entre uma chamada para StartPage e uma chamada para EndPage.
  • O aplicativo de chamada é responsável por validar o XML.
  • O consumo de streaming será mais eficiente se você chamar o ExtEscape com MXDCOP_SET_S0PAGE_RESOURCE como opCode para cada recurso na página antes de chamá-lo com MXDCOP_SET_S0PAGE.

Quando o opCode é MXDCOP_SET_S0PAGE_RESOURCE:

  • O parâmetro lpszInData da função ExtEscape consiste na estrutura MXDC_ESCAPE_HEADER_T e uma estrutura MxdcXpsS0PageResource concatenada em uma estrutura MxdcS0PageResourceEscape .
  • A chamada para o ExtEscape deve ocorrer entre uma chamada para StartPage e uma chamada para EndPage, mas pode haver várias chamadas desse tipo entre as chamadas StartPage e EndPage .
  • O consumo de streaming será mais eficiente se você chamar o ExtEscape com MXDCOP_SET_S0PAGE_RESOURCE como opCode para cada recurso na página antes de chamá-lo com MXDCOP_SET_S0PAGE.

Quando o opCode é MXDCOP_SET_XPSPASSTHRU_MODE:

  • O parâmetro lpszInData da função ExtEscape consiste apenas na estrutura MXDC_ESCAPE_HEADER_T .
  • Essa chamada deve ocorrer antes da chamada para StartDoc.

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte
Windows Server 2008 [somente aplicativos da área de trabalho]
Cabeçalho
Mxdc.h

Confira também

Impressão

Estruturas de API do Spooler de Impressão

Funções de escape da impressora GDI

Extescape

MXDC_ESCAPE