GDI-Objekte
GDI-Objekte unterstützen nur ein Handle pro Objekt. Handles für GDI-Objekte sind für einen Prozess privat. Das heißt, nur der Prozess, der das GDI-Objekt erstellt hat, kann das Objekthandle verwenden.
Es gibt einen theoretischen Grenzwert von 65.536 GDI-Handles pro Sitzung. Die maximale Anzahl von GDI-Handles, die pro Sitzung geöffnet werden können, ist jedoch in der Regel niedriger, da sie vom verfügbaren Arbeitsspeicher beeinflusst wird.
Windows 2000: Es gibt einen Grenzwert von 16.384 GDI-Handles pro Sitzung.
Es gibt auch ein Standardlimit pro Prozess für GDI-Handles. Um diesen Grenzwert zu ändern, legen Sie den folgenden Registrierungswert fest:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\Currentversion\Fenster\GDIProcessHandleQuota
Dieser Wert kann auf eine Zahl zwischen 256 und 65.536 festgelegt werden.
Windows 2000: Dieser Wert kann auf eine Zahl zwischen 256 und 16.384 festgelegt werden.
In der folgenden Tabelle sind die GDI-Objekte zusammen mit den Ersteller- und Zerstörerfunktionen der einzelnen Objekte aufgeführt. Die Erstellerfunktionen erstellen entweder das Objekt und ein Objekthandle oder geben einfach das vorhandene Objekthandle zurück. Die Zerstörerfunktionen entfernen das Objekt aus dem Arbeitsspeicher, wodurch das Objekthandle ungültig wird.
GDI-Objekt | Creator-Funktion | Destroyer-Funktion |
---|---|---|
Bitmap | CreateBitmap, CreateBitmapIndirect, CreateCompatibleBitmap, CreateDIBitmap, CreateDIBSection, CreateDiscardableBitmap | DeleteObject |
Brush | CreateBrushIndirect, CreateDIBPatternBrush, CreateDIBPatternBrushPt, CreateHatchBrush, CreatePatternBrush, CreateSolidBrush | DeleteObject |
SL | CreateDC | DeleteDC, ReleaseDC |
Erweiterte Metadatei | CreateEnhMetaFile | DeleteEnhMetaFile |
Erweiterter Metafile-DC | CreateEnhMetaFile | CloseEnhMetaFile |
Schriftart | CreateFont, CreateFontIndirect | DeleteObject |
Arbeitsspeicher-DC | CreateCompatibleDC | DeleteDC |
Metafile | CreateMetaFile | DeleteMetaFile |
Metafile-DC | CreateMetaFile | CloseMetaFile |
Palette | CreatePalette | DeleteObject |
Stift und erweiterter Stift | CreatePen, CreatePenIndirect, ExtCreatePen | DeleteObject |
Region | CombineRgn, CreateEllipticRgn, CreateEllipticRgnIndirect, CreatePolygonRgn, CreatePolyPolygonRgn, CreateRectRgn, CreateRectRgnIndirect, CreateRoundRectRgn, ExtCreateRegion, PathToRegion | DeleteObject |