структура 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 .
- В первый раз передайте значение 4 в параметр cbOutputобъекта ExtEscape. Задайте параметр lpszOutData , чтобы он указывал на любые выделенные 4 байта памяти. Размер полного пути к файлу будет возвращен в параметре lpszOutDataобъекта ExtEscape.
- Затем снова вызовите функцию. На этот раз для параметра cbOutput и cbInput задано значение 4+ DataSize. Полный путь к файлу будет возвращен в структуре MxdcGetFileNameData .
Если opCode MXDCOP_PRINTTICKET_FIXED_DOC_SEQ или MXDCOP_PRINTTICKET_FIXED_DOC:
- Параметр lpszInData функции ExtEscape состоит из структуры MXDC_ESCAPE_HEADER_T и структуры MxdcPrintTicketPassthrough , объединенных в структуру MxdcPrintTicketEscape .
- Вызов ExtEscape должен происходить между вызовом StartDoc и вызовом Метода EndDoc.
Если opCode MXDCOP_PRINTTICKET_FIXED_PAGE:
- Параметр lpszInData функции ExtEscape состоит из структуры MXDC_ESCAPE_HEADER_T и структуры MxdcPrintTicketPassthrough , объединенных в структуру MxdcPrintTicketEscape .
- Вызов ExtEscape должен происходить между вызовом StartPage и вызовом EndPage.
Если 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 [только классические приложения] |
Заголовок |
|