GDI オブジェクト
GDI オブジェクトは、オブジェクトごとに 1 つのハンドルのみをサポートします。 GDI オブジェクトへのハンドルは、プロセスに対してプライベートです。 つまり、GDI オブジェクトを作成したプロセスのみがオブジェクト ハンドルを使用できます。
セッションあたり 65,536 GDI ハンドルの理論上の制限があります。 ただし、使用可能なメモリの影響を受けるため、セッションごとに開くことができる GDI ハンドルの最大数は通常は少なくなります。
Windows 2000: セッションあたり 16,384 GDI ハンドルの制限があります。
GDI ハンドルの既定のプロセスごとの制限もあります。 この制限を変更するには、次のレジストリ値を設定します。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\GDIProcessHandleQuota
この値は、256 ~ 65,536 の範囲の数値に設定できます。
Windows 2000: この値は、256 ~ 16,384 の範囲の数値に設定できます。
GDI オブジェクトの管理
次の表に、GDI オブジェクトと、各オブジェクトの作成者関数と駆逐関数を示します。 Creator 関数は、オブジェクトとオブジェクト ハンドルを作成するか、単に既存のオブジェクト ハンドルを返します。 駆逐関数はメモリからオブジェクトを削除し、オブジェクト ハンドルを無効にします。
GDI オブジェクト | Creator 関数 | デストロイヤー関数 |
---|---|---|
ビットマップ | CreateBitmap、CreateBitmapIndirect、CreateCompatibleBitmap、CreateDIBitmap、CreateDIBSection、CreateDiscardableBitmap | DeleteObjectの |
ブラシ | CreateBrushIndirect、 CreateDIBPatternBrush、 CreateDIBPatternBrushPt、 CreateHatchBrush、 createPatternBrush、 CreateSolidBrush | DeleteObjectの |
直流 | CreateDCの | DeleteDC、ReleaseDC |
拡張メタファイル | CreateEnhMetaFileの | DeleteEnhMetaFileの |
Enhanced-metafile DC | CreateEnhMetaFileの | CloseEnhMetaFileをする |
フォント | CreateFont、CreateFontIndirect | DeleteObjectの |
メモリ DC | CreateCompatibleDCの | DeleteDCの |
メタファイル | CreateMetaFileの | DeleteMetaFileの |
メタファイル DC | CreateMetaFileの | CloseMetaFileをする |
パレット | CreatePaletteの | DeleteObjectの |
ペンと拡張ペン | CreatePen、CreatePenIndirect、ExtCreatePen を | DeleteObjectの |
地域 | CombineRgn、 CreateEllipticRgn、 CreateEllipticRgnIndirect、 CreatePolygonRgn、 CreatePolyPolygonRgn 、CreateRectRgn、CreateRectRgnIndirect、CreateRoundRectRgn、ExtCreateRegion、PathToRegion | DeleteObjectの |