структура 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. Таким образом можно написать весь документ или даже последовательность документов.

Комментарии

Перед вызовом 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 в параметр cbOutputобъекта ExtEscape. Задайте параметр lpszOutData , чтобы он указывал на любые выделенные 4 байта памяти. Размер полного пути к файлу будет возвращен в параметре lpszOutDataобъекта ExtEscape.
    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