Kullanıcı Nesneleri

Kullanıcı arabirimi nesneleri nesne başına yalnızca bir tanıtıcıyı destekler. İşlemler, kullanıcı nesnelerine tanıtıcıları devralamaz veya çoğaltamaz. Bir oturumdaki işlemler başka bir oturumdaki kullanıcı tanıtıcısına başvuramaz.

Oturum başına 65.536 kullanıcı tanıtıcısı teorik sınırı vardır. Ancak, kullanılabilir bellekten etkilendiği için oturum başına açılabilir kullanıcı tanıtıcı sayısı üst sınırı genellikle daha düşüktür. Kullanıcı tanıtıcılarının işlem başına varsayılan sınırı da vardır. Bu sınırı değiştirmek için aşağıdaki kayıt defteri değerini ayarlayın:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\USERProcessHandleQuota

Bu değer 200 ile 18.000 arasında bir sayıya ayarlanabilir.

Kullanıcı Nesnelerine yönelik tanıtıcılar

Kullanıcı nesnelerine yönelik tanıtıcılar tüm işlemler için ortaktır. Başka bir ifadeyle, işlemin nesneye güvenlik erişimi olması koşuluyla, herhangi bir işlem kullanıcı nesnesi tanıtıcısını kullanabilir.

Aşağıdaki çizimde bir uygulama bir pencere nesnesi oluşturur. CreateWindow işlevi pencere nesnesini oluşturur ve bir nesne tanıtıcısı döndürür.

Pencere nesnesi oluşturulduktan sonra, uygulama pencereyi görüntülemek veya değiştirmek için pencere tutamacını kullanabilir. Pencere nesnesi yok edilene kadar tanıtıcı geçerli kalır.

Sonraki çizimde uygulama pencere nesnesini yok eder. DestroyWindow işlevi, pencere nesnesini bellekten kaldırır ve bu da pencere tutamacını geçersiz kılabilir.

Kullanıcı Nesnelerini Yönetme

Aşağıdaki tabloda, her nesnenin oluşturucu ve yok edici işlevleriyle birlikte kullanıcı nesneleri listelenmektedir. Oluşturucu işlevleri nesneyi ve nesne tutamacını oluşturur veya yalnızca mevcut nesne tutamacını döndürür. Yok edici işlevleri nesneyi bellekten kaldırır ve bu da nesne tutamacını geçersiz kılacak.

Kullanıcı nesnesi Creator işlevi Destroyer işlevi
Hızlandırıcı tablosu CreateAcceleratorTable DestroyAcceleratorTable
Düzeltme imi CreateCaret DestroyCaret
İmleç CreateCursor, LoadCursorLoadImage DestroyCursor
DDE konuşması DdeConnect, DdeConnectList DdeDisconnect, DdeDisconnectList
Kanca SetWindowsHookEx UnhookWindowsHookEx
İkon CreateIconIndirect, LoadIcon, LoadImage DestroyIcon
Menü CreateMenuCreatePopupMenu, LoadMenuLoadMenuIndirect DestroyMenu
Pencere CreateWindow, CreateWindowExCreateDialogParam, CreateDialogIndirectParamCreateMDIWindow DestroyWindow
Pencere konumu BeginDeferWindowPos EndDeferWindowPos