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}

相关文章

react 中的高阶组件主要是对于 hooks 之前的类组件来说的,如...
我们上一节了解了组件的更新机制,但是只是停留在表层上,例...
我们上一节了解了 react 的虚拟 dom 的格式,如何把虚拟 dom...
react 本身提供了克隆组件的方法,但是平时开发中可能很少使...
mobx 是一个简单可扩展的状态管理库,中文官网链接。小编在接...
我们在平常的开发中不可避免的会有很多列表渲染逻辑,在 pc ...