加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

reactos操作系统实现(175)

发布时间:2020-12-15 04:58:46 所属栏目:百科 来源:网络整理
导读:GetDesktopWindow 函数主要用来获取桌面窗口的句柄。下面就是这个函数的实现代码: #001 HWND WINAPI #002 GetDesktopWindow(VOID) #003 { #004 PWINDOW Wnd; #005 HWND Ret = NULL; #006 使用 SEH 机制来获取桌面窗口。 #007 _SEH2_TRY #008 { 调函数 GetTh

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}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读