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の