CreateDesktop函数在与调用进程相关联的窗口工作站上创建一个新的桌面。它返回一个可用于访问新桌面的句柄。调用进程必须具有关联的窗口工作站,由系统在进程创建时分配或由SetProcessWindowStation设置。桌面是包含在窗口站对象内的安全对象。桌面具有逻辑显示面,包含窗口,菜单和挂钩。
HDESK CreateDesktop(
LPCTSTR 【lpszDesktop】, | //新桌面的名称 |
LPCTSTR 【lpszDevice】, | //保留;必须为NULL。 |
LPDEVMODE 【pDevMode】, | //保留;必须为NULL |
DWORD 【dwFlags中】, | //标志来控制与其他应用程序的交互 |
DWORD 【dwDesiredAccess】, | //指定返回句柄的访问 |
LPSECURITY_ATTRIBUTES 【LPSA】 | //指定桌面的安全属性 |
); |
参数
【lpszDesktop】
指向一个以null结尾的字符串,指定要创建的桌面的名称。桌面名称不区分大小写,不得包含反斜杠字符(\\)。
【lpszDevice】
保留;桌面使用在引导时加载的默认显示驱动程序。
【pDevMode】
Reserved; must be NULL.
【dwFlags中】
一个位标志参数,用于控制呼叫应用程序将如何与桌面上的其他应用程序配合使用。此参数可以指定零或以下值:
值 | 描述 |
DF_ALLOWOTHERACCOUNTHOOK | 允许进程在桌面上的其他帐户中运行,以便在此过程中设置挂接。 |
【dwDesiredAccess】
指定对桌面的访问类型。此参数可以是以下值中的一个或多个:
值 | 描述 |
DESKTOP_CREATEMENU | 需要在桌面上创建一个菜单。 |
DESKTOP_CREATEWINDOW | 需要在桌面上创建一个窗口。 |
DESKTOP_ENUMERATE | 需要枚举的桌面。 |
DESKTOP_HOOKCONTROL | 需要建立任何窗口挂钩。 |
DESKTOP_JOURNALPLAYBACK | 需要在桌面上执行日志回放。 |
DESKTOP_JOURNALRECORD | 需要在桌面上执行日志记录。 |
DESKTOP_READOBJECTS | 需要在桌面上读取对象。 |
DESKTOP_SWITCHDESKTOP | 需要使用SwitchDesktop功能激活桌面。 |
DESKTOP_WRITEOBJECTS | 需要在桌面上写入对象。 |
【LPSA】
指向SECURITY_ATTRIBUTES结构的指针,用于确定返回的句柄是否可以由子进程继承。如果【LPSA】为NULL,则无法继承该句柄。
Windows NT:结构的lpSecurityDescriptor成员指定新桌面的安全描述符。如果【LPSA】为NULL,则桌面从父窗口站继承其安全描述符。
Windows 95:结构的lpSecurityDescriptor成员将被忽略。
返回值
如果函数成功,则返回值是新创建的桌面的句柄。
如果函数失败,返回值为NULL。要获取扩展错误信息,请调用GetLastError.
备注
CreateDesktop函数返回一个可用于访问桌面的句柄。
也可以看看