структура MXDC_ESCAPE_HEADER_T

Структура MXDC_ESCAPE_HEADER_T содержит код операции для вызова ExtEscape с MXDC_ESCAPE в качестве параметра nEscape . Он также предоставляет размеры входных и выходных буферов.

Синтаксис

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

Участники

cbInput

Размер входного буфера, который будет передан в параметр lpszOutData функции ExtEscape .

cbOutput

Размер выходного буфера. Это то же значение, что и параметр cbOutput функции ExtEscape .

Код

Константа кода, которая сообщает MXDC о том, что делать.

Код операций Описание:
MXDCOP_GET_FILENAME Возвращается в параметре lpszOutData функции ExtEscape либо полный путь к выходному файлу в виде строки, завершающейся с нуля, либо размера этой строки. См. заметки.
MXDCOP_PRINTTICKET_FIXED_DOC_SEQ Связывает билет печати с фиксированной последовательностью документов 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. Таким образом можно написать весь документ или даже последовательность документов.

Remarks

Перед вызовом MXDC_ESCAPE,_applications сначала убедитесь, что драйвер MXDC вызывает ExtEscape с escape-экраном GETTECHNOLOGY . Если драйвер является MXDC, функция возвращает строку с отсчитываемой от нуля "http://schemas.microsoft.com/xps/2005/06".

Эта структура всегда находится в начале данных, передаваемых функции ExtEscape в параметре lpszInData .

Если opCode MXDCOP_GET_FILENAME:

  • Параметр lpszInData функции ExtEscape состоит только из структуры MXDC_ESCAPE_HEADER_T .
  • Получите имя выходного файла, дважды вызвав ExtEscape .
    1. В первый раз передайте значение 4 в параметр cbOutputextEscape. Задайте параметр lpszOutData , чтобы он указывал на выделенные 4 байта памяти. Размер полного пути к файлу будет возвращен в параметре lpszOutDataextEscape.
    2. Затем снова вызовите функцию. На этот раз установите для cbOutput и cbInput значение 4+ DataSize. Полный путь к файлу будет возвращен в структуре MxdcGetFileNameData .

Если opCode MXDCOP_PRINTTICKET_FIXED_DOC_SEQ или MXDCOP_PRINTTICKET_FIXED_DOC:

Если opCode MXDCOP_PRINTTICKET_FIXED_PAGE:

Если opCode MXDCOP_SET_S0PAGE:

  • Параметр lpszInData функции ExtEscape состоит из структуры MXDC_ESCAPE_HEADER_T и структуры MxdcS0PageData , объединенных в структуру MxdcS0PagePassthroughEscape .
  • Вызов ExtEscape должен происходить между вызовом StartPage и вызовом EndPage.
  • Вызывающее приложение отвечает за проверку XML.
  • Потребление потоковой передачи эффективнее, если вы вызываете ExtEscape с MXDCOP_SET_S0PAGE_RESOURCE как opCode для каждого ресурса на странице, прежде чем вызывать его с помощью MXDCOP_SET_S0PAGE.

Если opCode MXDCOP_SET_S0PAGE_RESOURCE:

  • Параметр lpszInData функции ExtEscape состоит из структуры MXDC_ESCAPE_HEADER_T и структуры MxdcXpsS0PageResource , объединенных в структуру MxdcS0PageResourceEscape .
  • Вызов ExtEscape должен происходить между вызовом StartPage и вызовом EndPage, но между вызовами StartPage и EndPage может быть несколько таких вызовов.
  • Потребление потоковой передачи эффективнее, если вы вызываете ExtEscape с MXDCOP_SET_S0PAGE_RESOURCE как opCode для каждого ресурса на странице, прежде чем вызывать его с помощью MXDCOP_SET_S0PAGE.

Если opCode MXDCOP_SET_XPSPASSTHRU_MODE:

  • Параметр lpszInData функции ExtEscape состоит только из структуры MXDC_ESCAPE_HEADER_T .
  • Этот вызов должен выполняться перед вызовом StartDoc.

Требования

Требование Значение
Минимальная версия клиента
Windows Vista [только классические приложения]
Минимальная версия сервера
Windows Server 2008 [только классические приложения]
Заголовок
Mxdc.h

См. также раздел

Вывод на печать

Структуры API очереди печати

Escape-функции принтера GDI

ExtEscape

MXDC_ESCAPE