Partager via


Objets GDI

Les objets GDI ne prennent en charge qu’un seul handle par objet. Les handles des objets GDI sont privés dans un processus. Autrement dit, seul le processus qui a créé l’objet GDI peut utiliser le handle d’objet.

Il existe une limite théorique de 65 536 handles GDI par session. Toutefois, le nombre maximal de handles GDI qui peuvent être ouverts par session est généralement inférieur, car il est affecté par la mémoire disponible.

Windows 2000 : Il existe une limite de 16 384 handles GDI par session.

Il existe également une limite par défaut par processus de handles GDI. Pour modifier cette limite, définissez la valeur de Registre suivante :

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\GDIProcessHandleQuota

Cette valeur peut être définie sur un nombre compris entre 256 et 65 536.

Windows 2000 : Cette valeur peut être définie sur un nombre compris entre 256 et 16 384.

Gestion des objets GDI

Le tableau suivant répertorie les objets GDI, ainsi que les fonctions créateur et destructeur de chaque objet. Les fonctions de créateur créent l’objet et un handle d’objet ou retournent simplement le handle d’objet existant. Les fonctions de destroyer suppriment l’objet de la mémoire, ce qui invalide le handle d’objet.

Objet GDI Fonction Creator Fonction destroyer
Image matricielle CreateBitmap , CreateBitmapIndirect, CreateCompatibleBitmap, CreateDIBitmap, CreateDIBSection, CreateDiscardableBitmap DeleteObject
Brosse CreateBrushIndirect, CreateDIBPatternBrush, CreateDIBPatternBrushPt, CreateHatchBrush, CreatePatternBrush, CreateSolidBrush DeleteObject
Courant continu CreateDC DeleteDC, ReleaseDC
Métafichier amélioré CreateEnhMetaFile DeleteEnhMetaFile
Contrôleur de domaine de métafichier amélioré CreateEnhMetaFile CloseEnhMetaFile
Police CreateFont, CreateFontIndirect DeleteObject
Contrôleur de domaine mémoire CreateCompatibleDC DeleteDC
Métafichier CreateMetaFile DeleteMetaFile
Métafichier DC CreateMetaFile CloseMetaFile
Palette CreatePalette DeleteObject
Stylet et stylet étendu CreatePen, CreatePenIndirect, ExtCreatePen DeleteObject
Région CombineRgn, CreateEllipticRgn, CreateEllipticRgnIndirect, CreatePolygonRgn, CreatePolyPolygonRgn, CreateRectRgn, CreateRectRgnIndirect, CreateRoundRectRgn, ExtCreateRegion, PathToRegion DeleteObject