WNDOBJ 구조체(winddi.h)
WNDOBJ 구조를 사용하면 드라이버가 창의 위치, 크기 및 표시되는 클라이언트 영역 변경 내용을 추적할 수 있습니다.
구문
typedef struct _WNDOBJ {
CLIPOBJ coClient;
PVOID pvConsumer;
RECTL rclClient;
SURFOBJ *psoOwner;
} WNDOBJ, *PWNDOBJ;
멤버
coClient
창의 클라이언트 영역을 설명하는 CLIPOBJ 구조를 지정합니다. iDComplexity가 DC_RECT rclBounds의 왼쪽 가장자리가 오른쪽 가장자리보다 크거나 같거나 위쪽 가장자리가 아래쪽 가장자리보다 크거나 같으면 클라이언트 영역이 보이지 않습니다.
pvConsumer
이 특정 WNDOBJ 구조를 식별하는 드라이버 정의 값에 대한 포인터입니다. 이 값은 WNDOBJ_vSetConsumer 함수를 호출하여 설정할 수 있습니다.
rclClient
화면 좌표로 창의 클라이언트 영역을 설명하는 RECTL 구조를 지정합니다. 이 사각형은 오른쪽 아래 배타적이므로 이 영역의 아래쪽 및 오른쪽 가장자리는 포함되지 않습니다.
psoOwner
이 WNDOBJ를 만들 때 EngCreateWnd에 전달된 SURFOBJ 구조체에 대한 포인터입니다.
설명
표시되는 클라이언트 지역은 WNDOBJ_cEnumStart 및WNDOBJ_bEnum 함수를 호출하여 열거할 수 있습니다.
드라이버는 WNDOBJ_vSetConsumer 함수를 호출하여 자체 데이터를 WNDOBJ와 연결할 수 있습니다.
가속기로서 드라이버는 WNDOBJ의 공용 멤버에 액세스할 수 있습니다. 이러한 공용 멤버는 EngCreateWnd 함수 또는 WNDOBJ가 지정된 함수에서 GDI에 제공된 드라이버 콜백 루틴의 컨텍스트에서만 변경되지 않은 상태로 유지되도록 보장됩니다.
드라이버는 psoOwner 가 가리키는 SURFOBJ를 사용하여 전역 변수를 유지 관리하는 대신 드라이버의 PDEV 핸들과 같은 WNDOBJ와 관련된 드라이버별 상태를 검색해야 합니다.
요구 사항
요구 사항 | 값 |
---|---|
헤더 | winddi.h(Winddi.h 포함) |