WNDOBJ structure (winddi.h)

The WNDOBJ structure allows the driver to keep track of the position, size, and visible client region changes of a window.

Syntax

typedef struct _WNDOBJ {
  CLIPOBJ coClient;
  PVOID   pvConsumer;
  RECTL   rclClient;
  SURFOBJ *psoOwner;
} WNDOBJ, *PWNDOBJ;

Members

coClient

Specifies a CLIPOBJ structure that describes the client region of the window. If iDComplexity is DC_RECT and the left edge in rclBounds is greater than or equal to the right edge, or the top edge is greater than or equal to the bottom edge, the client region is invisible.

pvConsumer

Pointer to a driver-defined value that identifies this particular WNDOBJ structure. This value can be set by calling the WNDOBJ_vSetConsumer function.

rclClient

Specifies a RECTL structure that describes the client area of the window in screen coordinates. This rectangle is lower-right exclusive, which means that the lower and right-hand edges of this region are not included.

psoOwner

Pointer to the SURFOBJ structure that was passed to EngCreateWnd when this WNDOBJ was created.

Remarks

The visible client region can be enumerated by calling the WNDOBJ_cEnumStart and WNDOBJ_bEnum functions.

A driver can associate its own data with a WNDOBJ by calling the WNDOBJ_vSetConsumer function.

As an accelerator, the driver can access public members of the WNDOBJ. These public members are guaranteed to remain unchanged only in the context of the driver callback routine supplied to GDI in the EngCreateWnd function, or the functions where a WNDOBJ is given.

The driver should use the SURFOBJ to which psoOwner points to retrieve driver-specific state relevant to the WNDOBJ, such as the driver's PDEV handle, rather than maintain global variables.

Requirements

Requirement Value
Header winddi.h (include Winddi.h)

See also

CLIPOBJ

EngCreateWnd

SURFOBJ

WNDOBJCHANGEPROC

WNDOBJ_bEnum

WNDOBJ_cEnumStart

WNDOBJ_vSetConsumer