Wince 电池警告的bug

来源:互联网 发布:东方网络2014年报pdf 编辑:程序博客网 时间:2024/05/01 21:00

因近期定制wince Shell 频繁,已经是一个星期连续发现2个MS的bug了。。

位置是在 WINCE500/PUBLIC/SHELL/OAK/HPC/EXPLORER/TASKBAR/taskbar.cpp的

LRESULT CALLBACK CTaskBar::TaskBarWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)函数,

 

 m_pPowerUI->ShowPowerWarning(hwnd, lParam, (DLGPROC) s_TrayWndProc);

很明显的bug 把消息处理函数指导托盘的消息处理函数去了,服了MS,导致电池警告窗口弹出一次以后,关闭后,窗口句柄没有销毁,在资源泄漏的同时,也造成了再次弹出窗口时对窗口句柄的判断,使得无法弹出窗口。           

[c-sharp] view plaincopyprint?
  1.         case WM_COMMAND:  
  2.   
  3.             switch (GET_WM_COMMAND_ID(wParam, lParam))  
  4.             {  
  5.                 case IDM_TASKBAR_WARNING:  
  6.                     if (m_pPowerUI)  
  7.                     {  
  8.                         // ignore return val until there is another warning handler  
  9.                         //m_pPowerUI->ShowPowerWarning(hwnd, lParam, (DLGPROC) s_TrayWndProc);   
  10. m_pPowerUI->ShowPowerWarning(hwnd, lParam, (DLGPROC) s_WarningDlgProc);  
  11.                     }     
  12.                     break;  

原创粉丝点击