다음을 통해 공유


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 포함)

추가 정보

CLIPOBJ

EngCreateWnd

SURFOBJ

WNDOBJCHANGEPROC

WNDOBJ_bEnum

WNDOBJ_cEnumStart

WNDOBJ_vSetConsumer