Gyakori megjelenítési eszközkörnyezetek
Az gyakori eszközkörnyezet az ablak ügyfélterületén való rajzoláshoz használatos. A rendszer alapértelmezés szerint általános eszközkörnyezetet biztosít minden olyan ablakhoz, amelynek ablakosztálya nem ad meg explicit módon megjelenítési eszközkörnyezetstílust. A gyakori eszközkörnyezeteket általában olyan ablakokkal használják, amelyek az eszközkörnyezet attribútumainak jelentős módosítása nélkül rajzolhatók meg. A gyakori eszközkörnyezetek kényelmesek, mert nem igényelnek további memóriát vagy rendszererőforrást, de kényelmetlenek lehetnek, ha az alkalmazásnak számos attribútumot kell beállítania használat előtt.
A rendszer lekéri az összes gyakori eszközkörnyezetet a megjelenítési eszközkörnyezet gyorsítótárából. Az alkalmazások közvetlenül az ablak létrehozása után lekérhetnek egy közös eszközkörnyezetet. Mivel a közös eszközkörnyezet a gyorsítótárból származik, az alkalmazásnak a rajzolás után a lehető leghamarabb fel kell szabadítania az eszközkörnyezetet. A közös eszközkörnyezet felszabadítása után az már nem érvényes, és az alkalmazás nem kísérelhet meg rajzolni vele. Az ismételt rajzoláshoz az alkalmazásnak le kell kérnie egy új közös eszközkörnyezetet, és minden alkalommal, amikor az ablakban rajzol, le kell kérnie és fel kell szabadítania egy közös eszközkörnyezetet. Ha az alkalmazás a GetDC függvénnyel kéri le az eszközkörnyezeti leírót, a leíró kiadásához a ReleaseDC függvényt kell használnia. Hasonlóképpen, minden BeginPaint függvényhez az alkalmazásnak egy megfelelő EndPaint függvényt kell használnia.
Amikor az alkalmazás lekéri az eszközkörnyezetet, a rendszer úgy állítja be a forrást, hogy az igazodjon az ügyfélterület bal felső sarkához. Beállítja a kivágási régiót is, hogy az eszközkörnyezet kimenete az ügyfélterületre legyen vágva. Minden olyan kimenet, amely egyébként az ügyfélterületen kívül jelenne meg, ki lesz vágva. Ha az alkalmazás BeginPainthasználatával kéri le a közös eszközkörnyezetet, a rendszer a kimenet további korlátozásához a kivágási régió frissítési régióját is tartalmazza.
Amikor egy alkalmazás kiad egy közös eszközkörnyezetet, a rendszer visszaállítja az eszközkörnyezet attribútumainak alapértelmezett értékeit. Az attribútumértékeket módosító alkalmazásnak ezt minden alkalommal meg kell tennie, amikor egy közös eszközkörnyezetet kér le. Az eszközkörnyezet felszabadítása felszabadítja az alkalmazás által kiválasztott rajzobjektumokat, így az alkalmazásnak nem kell felszabadítania ezeket az objektumokat az eszközkörnyezet felszabadítása előtt. Minden esetben az alkalmazásnak soha nem szabad feltételeznie, hogy a közös eszközkörnyezet a kiadás után is megőrzi a nem megfelelő beállításokat.