CreateDesktop
CreateDesktop
目錄
CreateDesktop 函數
創建新的桌面、與調用進程的窗口站相關聯,並將它分配給調用線程。
調用進程必須具有關聯的窗口站,在進程創建時由系統分配或通過SetProcessWindowStation函數設置。若要指定桌面堆的大小,請使用CreateDesktopEx函數。
語法
HDESK WINAPI CreateDesktop(
__in LPCTSTR lpszDesktop,
__reserved LPCTSTR lpszDevice,
__reserved DEVMODE *pDevmode,
__in DWORD dwFlags,
__in ACCESS_MASK dwDesiredAccess,
__in_opt LPSECURITY_ATTRIBUTES lpsa
);
lpszDesktop
要創建桌面的名稱。桌面名稱不區分大小寫,並且不能包含反斜線字元 (\)。
lpszDevice
保留;必須為 NULL。
pDevmode
保留;必須為 NULL。
dwFlags
這個參數可以是零或以下值:
DF_ALLOWOTHERACCOUNTHOOK 允許其它用戶在桌面進程的運行過程中設置鉤子
dwDesiredAccess
桌面的許可權,可以是以下值的組合:
DESKTOP_CREATEMENU 要在桌面上創建一個菜單。
DESKTOP_CREATEWINDOW 要在桌面上創建一個窗口。
DESKTOP_ENUMERATE 要枚舉桌面
DESKTOP_READOBJECTS 要在桌面上讀取對象
DESKTOP_SWITCHDESKTOP 要用SwitchDesktop函數激活桌面
DESKTOP_WRITEOBJECTS 要在桌面上寫入對象
DESKTOP_HOOKCONTROL 要建立任何窗口鉤子
lpsa
一個SECURITY_ATTRIBUTES結構指針,確定是否可以由子進程繼承返回句柄。如果lpsa為 NULL,則不能繼承該句柄。
構的lpSecurityDescriptor成員指定新桌面的安全描述符。桌面會從父窗口站繼承其安全描述符。
返回值
如果函數成功,則返回值是新創建桌面的句柄。如果指定的桌面已經存在,該函數成功並返回現有的桌面的句柄。
當你句柄使用完成時,調用CloseDesktop函數將其關閉。如果該函數失敗,則返回值為 NULL。要獲取擴展的錯誤的信息,請調用GetLastError .