INF: Microsoft Windows Caches Five Display Contexts

ID Number: Q74291

3.00 3.10

WINDOWS

Summary:

The Microsoft Windows graphical environment maintains an internal

cache of five display contexts (DCs) which are shared by all

applications in the system. An application retrieves one of these DCs

when it calls the BeginPaint, GetDC, or GetWindowDC functions. When an

application retrieves a DC, Windows marks the DC as in use and does

not allow another application to retrieve it. When an application has

finished using a DC, it must return the DC to the cache which makes

the DC available to another application. Two functions return a DC to

the cache: the EndPaint function (to match BeginPaint) and the

ReleaseDC function (to match GetDC or GetWindowDC).

If an application fails to return DCs to the DC cache correctly, the

cache becomes empty, and subsequent calls to BeginPaint, GetDC, and

GetWindowDC fail. Because most applications do not check to be sure

that the DC they retrieve is valid, they attempt to use an invalid DC

in a graphics device interface (GDI) call, which causes a FatalExit

error.

To avoid this problem, be sure to return DCs to the cache correctly

and check the value returned by BeginPaint, GetDC, and GetWindowDC to

ensure that a valid DC is available.

Additional reference words: 3.00 3.10