reactos操作系统实现(175)
GetDesktopWindow函数主要用来获取桌面窗口的句柄。下面就是这个函数的实现代码: #001 HWND WINAPI #002 GetDesktopWindow(VOID) #003 { #004 PWINDOW Wnd; #005 HWND Ret = NULL; #006
使用SEH机制来获取桌面窗口。 #007 _SEH2_TRY #008 {
调函数GetThreadDesktopWnd来获取当前线程的桌面句柄。 #009 Wnd = GetThreadDesktopWnd(); #010 if (Wnd != NULL)
从窗口指针里获取这个窗口句柄。 #011 Ret = UserHMGetHandle(Wnd); #012 } #013 _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) #014 { #015 /* Do nothing */ #016 } #017 _SEH2_END; #018 #019 return Ret; #020 }
GetThreadDesktopWnd函数: #001 PWINDOW #002 FASTCALL #003 GetThreadDesktopWnd(VOID) #004 {
通过函数GetThreadDesktopInfo获取桌面信息结构,然后再从结构里获取窗口句柄。 #005 PWINDOW Wnd = GetThreadDesktopInfo()->Wnd; #006 if (Wnd != NULL)
转换桌面指针为用户空间合适的窗口对象。 #007 Wnd = DesktopPtrToUser(Wnd); #008 return Wnd; #009} (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |