共用方式為


用戶物件

用戶介面物件僅支援每個物件的一個句柄。 進程無法繼承或複製用戶物件的句柄。 一個工作階段中的進程無法參考另一個工作階段中的使用者句柄。

每個會話的理論限制為65,536個使用者句柄。 不過,每個會話可以開啟的使用者句柄數目上限通常較低,因為它會受到可用記憶體的影響。 使用者句柄也有預設的個別進程限制。 若要變更此限制,請設定下列登錄值:

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

此值可以設定為介於 200 到 18,000 之間的數位。

用戶物件的句柄

用戶物件的句柄會公開給所有進程。 也就是說,只要進程具有對象的安全性存取權,任何進程都可以使用用戶物件句柄。

在下圖中,應用程式會建立窗口物件。 CreateWindow 函式會建立窗口物件,並傳回物件句柄。

建立視窗物件的應用程式

建立視窗物件之後,應用程式可以使用視窗句柄來顯示或變更視窗。 句柄會維持有效狀態,直到視窗對象終結為止。

在下一個圖例中,應用程式會終結窗口物件。 DestroyWindow 函式會從記憶體中移除視窗物件,使視窗句柄失效。

終結視窗物件

管理用戶物件

下表列出用戶物件,以及每個物件的建立者和終結器函式。 建立者函式會建立對象和物件句柄,或只傳回現有的物件句柄。 終結器函式會從記憶體中移除物件,使物件句柄失效。

User 物件 Creator 函式 終結器函式
快速鍵數據表 CreateAcceleratorTable DestroyAcceleratorTable
插入號 CreateCaret DestroyCaret
游標 CreateCursorLoadCursorLoadImage DestroyCursor
DDE 交談 DdeConnectDdeConnectList DdeDisconnectDdeDisconnectList
SetWindowsHookEx UnhookWindowsHookEx
圖示 CreateIconIndirectLoadIconLoadImage DestroyIcon
功能表 CreateMenuCreatePopupMenuLoadMenuLoadMenuIndirect DestroyMenu
CreateWindowCreateWindowExCreateDialogParamCreateDialogIndirectParamCreateMDIWindow DestroyWindow
視窗位置 BeginDeferWindowPos EndDeferWindowPos