다음을 통해 공유


IPrintOemUni::D riverDMS 메서드(prcomoem.h)

메서드 IPrintOemUni::DriverDMS 를 사용하면 Unidrv 에 대한 렌더링 플러그 인이 디바이스 관리 드로잉 표면을 사용함을 나타낼 수 있습니다.

구문

HRESULT DriverDMS(
  PVOID  pDevObj,
  PVOID  pBuffer,
  DWORD  cbSize,
  PDWORD pcbNeeded
);

매개 변수

pDevObj

DEVOBJ 구조체에 대한 호출자 제공 포인터입니다.

pBuffer

메서드 지정 플래그를 수신하기 위해 버퍼에 대한 호출자 제공 포인터입니다. (다음 설명 섹션을 참조하세요.)

cbSize

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

pcbNeeded

필요한 최소 pBuffer 크기를 받을 위치에 대한 호출자 제공 포인터입니다.

반환 값

메서드는 다음 값 중 하나를 반환해야 합니다.

반환 코드 Description
S_OK
작업에 성공했습니다.
E_FAIL
작업이 실패했습니다.

설명

Unidrv에 대한 렌더링 플러그 인은 메서드를 IPrintOemUni::DriverDMS 구현해야 합니다. 메서드는 Unidrv가 OEM의 렌더링 플러그 인에 대한 유효한 인터페이스 포인터를 찾는 경우에만 호출됩니다.

메서드 IPrintOemUni::DriverDMS 를 사용하면 렌더링 플러그 인이 기본 GDI 관리형 표면 대신 디바이스 관리 드로잉 표면을 사용 중임을 나타낼 수 있습니다.

메서드는 pBuffer가 가리키는 버퍼에 HOOK_ 접두사 플래그를 지정해야 하며, 이는 그리기 화면에 대해 호출할 플러그 인의 그래픽 DDI 후킹 함수를 나타냅니다. HOOK_ 접두사 플래그는 winddi.h에 정의되며 EngAssociateSurface 함수의 설명에 설명되어 있습니다. 에 IPrintOemUni::DriverDMS 지정된 플래그는 Unidrv에서 EngAssociateSurface로 전달됩니다. (디바이스 관리 표면을 지원하려면 렌더링 플러그 인이 모든 그리기 함수를 연결해야 합니다.) 자세한 내용은 Device-Managed Surface 처리를 참조하세요.

pBuffer가 가리키는 버퍼의 플래그를 설정하는 경우 IPrintOemUni::DriverDMS Unidrv는 EngCreateDeviceSurface를 호출하여 디바이스 관리 표면을 만듭니다. 가 플래그를 설정하지 않으면 IPrintOemUni::DriverDMS Unidrv는 EngCreateBitmap을 호출하여 GDI 관리 표면을 만듭니다. 이러한 경우 중 하나에서 는 IPrintOemUni::DriverDMS S_OK 반환해야 합니다.

cbSize에서 지정한 출력 버퍼 크기가 너무 작으면 메서드는 pcbNeeded가 가리키는 위치에 필요한 크기를 지정하고 SetLastError(ERROR_INSUFFICIENT_BUFFER)를 호출하고 E_FAIL 반환해야 합니다.

요구 사항

요구 사항
대상 플랫폼 데스크톱
머리글 prcomoem.h(Prcomoem.h 포함)