다음을 통해 공유


IPrintOemUI2::D ocumentEvent 메서드(prcomoem.h)

IPrintOemUI2::DocumentEvent 메서드를 사용하면 UI 플러그 인이 핵심 드라이버 UI 모듈의 DrvDocumentEvent DDI의 기본 구현을 대체할 수 있습니다.

통사론

HRESULT DocumentEvent(
  HANDLE hPrinter,
  HDC    hdc,
  INT    iEsc,
  ULONG  cbIn,
  PVOID  pvIn,
  ULONG  cbOut,
  PVOID  pvOut,
  PINT   piResult
);

매개 변수

hPrinter

발신자가 제공한 프린터 핸들입니다.

hdc

CreateDC 호출에 의해 생성된 호출자 제공 디바이스 컨텍스트 핸들입니다. iEsc DOCUMENTEVENT_CREATEDCPRE 경우 0입니다.

iEsc

처리할 이벤트를 식별하는 호출자 제공 이스케이프 코드입니다. 이 매개 변수는 다음 정수 상수 중 하나일 수 있습니다.

이스케이프 코드 의미
DOCUMENTEVENT_ABORTDOC GDI는 AbortDoc 함수에 대한 호출을 처리하려고 합니다.
DOCUMENTEVENT_CREATEDCPOST GDI는 방금 CreateDC 또는 createIC 함수를 호출을 처리했습니다.

iEsc DOCUMENTEVENT_CREATEDCPRE 설정된 DrvDocumentEvent 이전 호출이 없는 한 이 이스케이프 코드를 사용하면 안 됩니다.

DOCUMENTEVENT_CREATEDCPRE GDI는 CreateDC 호출을 처리하거나 CreateIC 함수를.
DOCUMENTEVENT_DELETEDC GDI는 DeleteDC 함수에 대한 호출을 처리하려고 합니다.
DOCUMENTEVENT_ENDDOCPOST GDI는 방금 EndDoc 함수에 대한 호출을 처리했습니다.
DOCUMENTEVENT_ENDDOCPRE

또는

DOCUMENTEVENT_ENDDOC

GDI는 EndDoc 함수에 대한 호출을 처리하려고 합니다.
DOCUMENTEVENT_ENDPAGE GDI는 EndPage 함수에 대한 호출을 처리하려고 합니다.
DOCUMENTEVENT_ESCAPE GDI는 ExtEscape 함수에 대한 호출을 처리하려고 합니다.
DOCUMENTEVENT_QUERYFILTER DOCUMENTEVENT_QUERYFILTER 이벤트는 스풀러가 드라이버가 응답할 DOCUMENTEVENT_XXX 이벤트 목록을 드라이버에 쿼리할 수 있는 기회를 나타냅니다. 이 이벤트는 DOCUMENTEVENT_CREATEDCPRE 이벤트를 전달하는 drvDocumentEvent 호출하기 직전에 발생합니다.
DOCUMENTEVENT_RESETDCPOST GDI는 ResetDC 함수에 대한 호출을 처리했습니다.

iEsc DOCUMENTEVENT_RESETDCPRE 설정된 DrvDocumentEvent 이전 호출이 없는 한 이 이스케이프 코드를 사용하면 안 됩니다.

DOCUMENTEVENT_RESETDCPRE GDI는 ResetDC 함수에 대한 호출을 처리하려고 합니다.
DOCUMENTEVENT_STARTDOCPOST GDI는 StartDoc 함수에 대한 호출을 처리했습니다.
DOCUMENTEVENT_STARTDOCPRE

또는

DOCUMENTEVENT_STARTDOC

GDI는 StartDoc 함수에 대한 호출을 처리하려고 합니다.
DOCUMENTEVENT_STARTPAGE GDI는 StartPage 함수에 대한 호출을 처리하려고 합니다.

cbIn

pvIn가리키는 버퍼의 호출자 제공 크기(바이트)입니다.

pvIn

호출자 제공 포인터는 다음과 같이 iEsc제공된 값에 따라 달라집니다.

iEsc 상수 pvIn 콘텐츠
DOCUMENTEVENT_ABORTDOC 사용되지 않습니다.
DOCUMENTEVENT_CREATEDCPOST pvIniEsc 매개 변수가 DOCUMENTEVENT_CREATEDCPRE 설정된 이 함수에 대한 이전 호출에서 pvOut 매개 변수에 지정된 DEVMODEW 구조체에 대한 포인터의 주소를 포함합니다.
DOCUMENTEVENT_CREATEDCPRE pvInDOCEVENT_CREATEDCPRE 구조를 가리킵니다.
DOCUMENTEVENT_DELETEDC 사용되지 않습니다.
DOCUMENTEVENT_ENDDOCPOST 사용되지 않습니다.
DOCUMENTEVENT_ENDDOCPRE

또는

DOCUMENTEVENT_ENDDOC

사용되지 않습니다.
DOCUMENTEVENT_ENDPAGE 사용되지 않습니다.
DOCUMENTEVENT_ESCAPE pvInDOCEVENT_ESCAPE 구조를 가리킵니다.
DOCUMENTEVENT_QUERYFILTER DOCUMENTEVENT_CREATEDCPRE 경우와 동일합니다.
DOCUMENTEVENT_RESETDCPOST pvIniEsc 매개 변수가 DOCUMENTEVENT_RESETDCPRE 설정된 이 함수에 대한 이전 호출에서 pvOut 매개 변수에 지정된 DEVMODEW 구조체에 대한 포인터의 주소를 포함합니다.
DOCUMENTEVENT_RESETDCPRE pvInResetDC 호출자가 제공한 DEVMODEW 구조에 대한 포인터의 주소를 포함합니다(Microsoft Windows SDK 설명서에 설명됨).
DOCUMENTEVENT_STARTDOCPOST pvInStartDoc 반환된 인쇄 작업 식별자를 지정하는 LONG을 가리킵니다(Windows SDK 설명서에 설명됨).
DOCUMENTEVENT_STARTDOCPRE

또는

DOCUMENTEVENT_STARTDOC

pvInStartDoc 호출자가 제공하는 DOCINFO 구조체에 대한 포인터의 주소를 포함합니다(둘 다 Windows SDK 설명서에 설명됨).
DOCUMENTEVENT_STARTPAGE 사용되지 않습니다.

cbOut

iEsc가 DOCUMENTEVENT_ESCAPE 경우:

ExtEscape대한 cbOutput 매개 변수로 사용되는 함수 제공 값입니다.

iEsc가 DOCUMENTEVENT_QUERYFILTER 경우:

pvOut 버퍼 포인터의 호출자 제공 크기(바이트)입니다.

다른 모든 iEsc 값의 경우:

사용되지 않습니다.

pvOut

다음과 같이 iEsc제공된 값에 따라 달라지는 출력 버퍼에 대한 함수 제공 포인터입니다. CreateDC, ExtEscapeResetDC Windows SDK 설명서에 설명되어 있습니다.

iEsc 상수 pvOut 콘텐츠
DOCUMENTEVENT_CREATEDCPRE CreateDC 호출자가 제공하는 구조 대신 GDI에서 사용하는 드라이버 제공 DEVMODEW 구조체에 대한 포인터입니다. (NULL 경우 GDI는 호출자 제공 구조를 사용합니다.)
DOCUMENTEVENT_ESCAPE ExtEscape대한 lpszOutData 매개 변수로 사용되는 버퍼 포인터입니다.
DOCUMENTEVENT_QUERYFILTER DOCEVENT_FILTER 구조체를 포함하는 버퍼에 대한 호출자 제공 포인터입니다.
DOCUMENTEVENT_RESETDCPRE GDI가 ResetDC 호출자가 제공하는 구조 대신 사용하는 드라이버 제공 DEVMODEW 구조체에 대한 포인터입니다. (NULL 경우 GDI는 호출자 제공 구조를 사용합니다.)
다른 모든 iEsc 사용되지 않습니다.

piResult

다음 값 중 하나를 수신하는 메모리 위치에 대한 포인터입니다.

반환 값 정의
DOCUMENTEVENT_FAILURE 드라이버는 iEsc식별된 이스케이프 코드를 지원하지만 오류가 발생했습니다.
DOCUMENTEVENT_SUCCESS 드라이버는 iEsc식별된 이스케이프 코드를 성공적으로 처리했습니다. 자세한 내용은 설명 섹션을 참조하세요.
DOCUMENTEVENT_UNSUPPORTED 드라이버는 iEsc식별된 이스케이프 코드를 지원하지 않습니다.

반환 값

이 메서드는 다음 값 중 하나를 반환해야 합니다. 자세한 내용은 설명 섹션을 참조하세요.

반환 코드 묘사
S_OK
UI 플러그 인은 이 메서드를 구현합니다.
E_NOTIMPL
UI 플러그 인은 이 메서드를 구현하지 않습니다.

발언

사용자 인터페이스 플러그 인의 IPrintOemUI2::DocumentEvent 메서드는 사용자 모드 프린터 인터페이스 DLL에서 내보낸 DrvDocumentEvent DDI와 동일한 유형의 작업을 수행합니다. 문서 이벤트 및 처리 방법에 대한 자세한 내용은 DrvDocumentEvent DDI에 대한 설명을 참조하세요.

사용자 인터페이스 플러그 인을 제공하는 경우 프린터 드라이버의 DrvDocumentEvent DDI는 IPrintOemUI2::DocumentEvent 메서드를 호출합니다. DrvDocumentEvent DDI는 지정된 이벤트에 대해 자체 처리를 수행한 다음 IPrintOemUI2::DocumentEvent 메서드를 호출하여 이벤트의 추가 처리를 처리합니다.

이 메서드가 DOCUMENTEVENT_QUERYFILTER iEsc 매개 변수의 값으로 호출되고 *piResult == DOCUMENTEVENT_SUCCESS 반환되는 경우 스풀러는 DOCEVENT_FILTER 구조체의 특정 멤버가 값을 변경했는지 여부에 따라 두 가지 방법 중 하나에서 이 값을 해석할 수 있습니다. 자세한 내용은 DrvDocumentEvent대한 설명 섹션을 참조하세요.

DOCUMENTEVENT_QUERYFILTER 이벤트가 발생하면 핵심 드라이버는 플러그 인 중 하나가 S_OK 반환하거나 모든 플러그 인이 호출되고 S_OK 반환되지 않을 때까지 설치된 순서대로 플러그 인을 호출합니다. 이러한 방식으로 최대 하나의 플러그 인에서 DOCUMENTEVENT_QUERYFILTER 이벤트를 처리할 수 있으며, 지정하는 필터는 플러그 인 체인의 모든 플러그 인에 적용됩니다.

IPrintOemUI2 인터페이스를 구현하지만 IPrintOemUI2::DocumentEvent 메서드를 지원할 필요가 없는 플러그 인 작성기의 경우 이 메서드는 iEsc모든 값에 대해 E_NOTIMPL 반환해야 합니다. 이 메서드를 구현해야 하는 경우 iEsc모든 값에 대한 S_OK 반환해야 합니다. 이는 이 메서드가 관련 이벤트를 처리했음을 핵심 드라이버에 알릴 수 있습니다. 핵심 드라이버는 이 메서드가 piResult 배치하는 값을 DrvDocumentEvent DDI의 반환 값으로 사용합니다.

요구 사항

요구
대상 플랫폼 바탕 화면
헤더 prcomoem.h(Prcomoem.h 포함)

참고 항목

DOCEVENT_CREATEDCPRE

DOCEVENT_ESCAPE

DOCEVENT_FILTER

DrvDocumentEvent

IPrintOemUI2