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