MXDC_ESCAPE_HEADER_T 구조체
MXDC_ESCAPE_HEADER_T 구조체는 nEscape 매개 변수로 MXDC_ESCAPEExtEscape 호출에 대한 작업 코드를 보유합니다. 또한 입력 및 출력 버퍼의 크기도 제공합니다.
구문
typedef struct tagMxdcEscapeHeader {
ULONG cbInput;
ULONG cbOutput;
ULONG opCode;
} MXDC_ESCAPE_HEADER_T, *P_MXDC_ESCAPE_HEADER_T;
멤버
-
cbInput
-
ExtEscape 함수의 lpszOutData 매개 변수에 전달될 입력 버퍼의 크기입니다.
-
cbOutput
-
출력 버퍼의 크기입니다. ExtEscape 함수의 cbOutput 매개 변수와 동일한 값입니다.
-
Opcode
-
MXDC에 수행할 작업을 알려주는 코드 상수입니다.
작업 코드 설명 MXDCOP_GET_FILENAME ExtEscape 함수의 lpszOutData 매개 변수에서 출력 파일의 전체 경로를 0으로 끝나는 문자열로 반환하거나 해당 문자열의 크기를 반환합니다. 설명 부분을 참조하세요. 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를 통과 상태로 전환하여 애플리케이션이 MXDC에서 처리하지 않고 출력 파일에 직접 XPS를 쓸 수 있도록 합니다. 전체 문서 또는 문서 시퀀스를 이러한 방식으로 작성할 수 있습니다.
설명
MXDC_ESCAPE 호출하기 전에 먼저 _applications GETTECHNOLOGY 이스케이프를 사용하여 ExtEscape를 호출하여 드라이버가 MXDC인지 확인해야 합니다. 드라이버가 MXDC인 경우 함수는 0으로 끝나는 문자열 "http://schemas.microsoft.com/xps/2005/06"을 반환합니다.
이 구조체는 항상 lpszInData 매개 변수의 ExtEscape 함수에 전달되는 데이터의 시작 부분에 있습니다.
opCode가 MXDCOP_GET_FILENAME 경우:
- ExtEscape 함수의 lpszInData 매개 변수는 MXDC_ESCAPE_HEADER_T 구조로만 구성됩니다.
-
ExtEscape를 두 번 호출하여 출력 파일 이름을 가져옵니다.
- 처음으로 ExtEscape의 cbOutput 매개 변수에 4를 전달합니다. 할당된 4바이트 메모리를 가리키도록 lpszOutData 매개 변수를 설정합니다. 정규화된 파일 경로의 크기는 ExtEscape의 lpszOutData 매개 변수에 반환됩니다.
- 그런 다음 함수를 다시 호출합니다. 이번에는 cbOutput 과 cbInput 을 모두 4+ DataSize로 설정합니다. 정규화된 파일 경로는 MxdcGetFileNameData 구조로 반환됩니다.
opCode가 MXDCOP_PRINTTICKET_FIXED_DOC_SEQ 또는 MXDCOP_PRINTTICKET_FIXED_DOC 경우:
- ExtEscape 함수의 lpszInData 매개 변수는 MXDC_ESCAPE_HEADER_T 구조체와 MxdcPrintTicketPassthrough 구조체가 MxdcPrintTicketEscape 구조체에 연결된 구조체로 구성됩니다.
- StartDoc 호출과 EndDoc 호출 간에 ExtEscape 호출이 발생해야 합니다.
opCode가 MXDCOP_PRINTTICKET_FIXED_PAGE 경우:
- ExtEscape 함수의 lpszInData 매개 변수는 MXDC_ESCAPE_HEADER_T 구조체와 MxdcPrintTicketPassthrough 구조체가 MxdcPrintTicketEscape 구조체에 연결된 구조체로 구성됩니다.
- StartPage 호출과 EndPage 호출 간에 ExtEscape 호출 이 발생해야 합니다.
opCode가 MXDCOP_SET_S0PAGE 경우:
- ExtEscape 함수의 lpszInData 매개 변수는 MXDC_ESCAPE_HEADER_T 구조체와 MxdcS0PageData 구조체가 MxdcS0PagePassthroughEscape 구조체에 연결되어 있습니다.
- StartPage 호출과 EndPage 호출 간에 ExtEscape 호출 이 발생해야 합니다.
- 호출 애플리케이션은 XML의 유효성을 검사합니다.
- MXDCOP_SET_S0PAGE 사용하여 호출하기 전에 페이지의 각 리소스에 대해 opCode로 MXDCOP_SET_S0PAGE_RESOURCE ExtEscape를 호출하는 경우 스트리밍 소비가 더 효율적입니다.
opCode가 MXDCOP_SET_S0PAGE_RESOURCE 경우:
- ExtEscape 함수의 lpszInData 매개 변수는 MXDC_ESCAPE_HEADER_T 구조체와 MxdcS0PageResourceEscape 구조체에 연결된 MxdcXpsS0PageResource 구조체로 구성됩니다.
- ExtEscape에 대한 호출은 StartPage 호출과 EndPage 호출 간에 발생해야 하지만 StartPage와 EndPage 호출 간에 이러한 호출이 여러 개 있을 수 있습니다.
- MXDCOP_SET_S0PAGE 사용하여 호출하기 전에 페이지의 각 리소스에 대해 opCode로 MXDCOP_SET_S0PAGE_RESOURCE ExtEscape를 호출하는 경우 스트리밍 소비가 더 효율적입니다.
opCode가 MXDCOP_SET_XPSPASSTHRU_MODE 경우:
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 |
Windows Vista [데스크톱 앱만 해당] |
지원되는 최소 서버 |
Windows Server 2008 [데스크톱 앱만 해당] |
헤더 |
|