[NTDLL] Allow shimdata to override the process manifest.
[reactos.git] / dll / shellext / stobject / power.cpp
index 5853b2b..24d5fd8 100644 (file)
@@ -8,23 +8,17 @@
  *              David Quintana <gigaherz@gmail.com>
  */
 
-#include <Windows.h>
-#include <SetupAPI.h>
-#include <devguid.h>
-#include <BatClass.h> 
-
 #include "precomp.h"
-#include "powrprof.h"
 
-#include <mmsystem.h>
-#include <mmddk.h>
-#include <atlstr.h>
+#include <devguid.h>
+#include <winioctl.h>
+#include <powrprof.h>
+#include <windows.h>
+#include <batclass.h>
 
 #define GBS_HASBATTERY 0x1
 #define GBS_ONBATTERY  0x2
 
-WINE_DEFAULT_DEBUG_CHANNEL(stobject);
-
 int br_icons[5] = { IDI_BATTCAP0, IDI_BATTCAP1, IDI_BATTCAP2, IDI_BATTCAP3, IDI_BATTCAP4 }; // battery mode icons.
 int bc_icons[5] = { IDI_BATTCHA0, IDI_BATTCHA1, IDI_BATTCHA2, IDI_BATTCHA3, IDI_BATTCHA4 }; // charging mode icons.
 
@@ -380,19 +374,28 @@ HRESULT STDMETHODCALLTYPE Power_Message(_In_ CSysTray * pSysTray, UINT uMsg, WPA
             }
             return S_FALSE;
 
+        case WM_TIMER:
+            if (wParam == POWER_TIMER_ID)
+            {
+                KillTimer(pSysTray->GetHWnd(), POWER_TIMER_ID);
+                ShowPowerSchemesPopupMenu(pSysTray);
+            }
+            break;
+
         case ID_ICON_POWER:
             Power_Update(pSysTray);
 
             switch (lParam)
             {
                 case WM_LBUTTONDOWN:
+                    SetTimer(pSysTray->GetHWnd(), POWER_TIMER_ID, GetDoubleClickTime(), NULL);
                     break;
 
                 case WM_LBUTTONUP:
-                    ShowPowerSchemesPopupMenu(pSysTray);
                     break;
 
                 case WM_LBUTTONDBLCLK:
+                    KillTimer(pSysTray->GetHWnd(), POWER_TIMER_ID);
                     _RunPower();
                     break;