EngAssociateSurface 함수(winddi.h)
EngAssociateSurface 함수는 지정된 표면을 지정된 디바이스에 속하는 것으로 표시합니다.
구문
ENGAPI BOOL EngAssociateSurface(
HSURF hsurf,
HDEV hdev,
FLONG flHooks
);
매개 변수
hsurf
hdev와 연결할 표면 또는 비트맵에 대한 핸들입니다. 이 핸들은 EngCreateBitmap 또는 EngCreateDeviceBitmap에서 반환되었습니다.
hdev
표면이 연결될 디바이스에 대한 핸들입니다. 드라이버의 DrvCompletePDEV 함수에 전달된 GDI 생성 핸들입니다.
flHooks
드라이버가 GDI에서 후크할 수 있는 함수를 지정합니다. 드라이버는 flHook에서 설정하는 모든 비트에 대해 해당 함수를 구현해야 합니다. 이 멤버는 다음 값 중 비트 OR입니다.
플래그 | 후크할 함수 |
---|---|
HOOK_ALPHABLEND | |
HOOK_BITBLT | |
HOOK_COPYBITS | |
HOOK_FILLPATH | |
HOOK_GRADIENTFILL | |
HOOK_LINETO | |
HOOK_MOVEPANNING | 사용되지 않음 |
HOOK_PAINT | 사용되지 않음 |
HOOK_PLGBLT | |
HOOK_STRETCHBLT | |
HOOK_STRETCHBLTROP | |
HOOK_STROKEANDFILLPATH | |
HOOK_STROKEPATH | |
HOOK_SYNCHRONIZE |
DrvSynchronize 또는 DrvSynchronizeSurface (둘 중 하나 또는 둘 다) |
HOOK_SYNCHRONIZEACCESS | 사용되지 않음 |
HOOK_TEXTOUT | |
HOOK_TRANSPARENTBLT |
반환 값
함수가 성공하면 반환 값은 TRUE 입니다. 그렇지 않으면 드라이버는 구현 중인 GDI 함수에 정보를 보내고 GDI의 반환 값을 반환해야 합니다.
설명
EngAssociateSurface 는 프린터 드라이버에서 "규칙" 또는 디바이스 글꼴을 구현하거나 디스플레이 드라이버에서 특수 Blt 하드웨어를 사용하는 데 사용할 수 있습니다.
hsurf로 식별되는 표면이 표준 형식 비트맵인 경우 드라이버는 flHook에서 비트를 설정하여 처리할 표면에 대한 출력 함수를 지정할 수 있습니다. flHook에서 비트를 설정하면 특정 출력 함수가 드라이버로 대신 전송됩니다. 이를 후킹이라고 합니다. 드라이버가 호출을 후크하지 않으면 표준 형식 비트맵을 그릴 때 GDI가 자동으로 작업을 관리합니다.
표면이 연결되면 PDEV의 기본 색상표 및 스타일 단계를 가정합니다. DrvEnableSurface에서 반환하기 전에 표면을 연결해야 합니다.
기본적으로 드라이버가 DrvCreateDeviceBitmap DrvDeleteDeviceBitmap/을 구현하여 디바이스 비트맵을 지원하는 경우 GDI는 그리기 호출을 디바이스 비트맵 및 기본 표면에 자동으로 동기화하지 않습니다. 예를 들어 GDI는 드라이버의 DrvBitBlt 함수를 호출하여 디바이스 비트맵에 그릴 수 있으며, 다른 스레드는 드라이버의 DrvTextOut 구현을 실행하여 기본 화면에 그릴 수 있습니다. 드라이버를 호출하여 동시에 여러 디바이스 비트맵에 그릴 수도 있습니다.
DrvEnableSurface가 핸들을 기본 표면으로 반환한 후에는 해당 핸들에서 EngAssociateSurface를 호출하지 마세요. 이렇게 하면 특정 상황에서 버그 검사 발생할 수 있습니다. 자세한 내용은 Microsoft 기술 자료 문서 330248 참조하세요.
요구 사항
지원되는 최소 클라이언트 | Windows 2000 이상 버전의 Windows 운영 체제에서 사용할 수 있습니다. |
대상 플랫폼 | 유니버설 |
헤더 | winddi.h(Winddi.h 포함) |
라이브러리 | Win32k.lib |
DLL | Win32k.sys |