From 287232ea2fd9687a72bdf6a64e66da5f38f4e1ef Mon Sep 17 00:00:00 2001 From: Shriraj Sawant Date: Mon, 17 Jul 2017 19:43:53 +0000 Subject: [PATCH] [STOBJECT] -Added support for battery enumeration. -Now battery status is available. -Added icons and resources respectively for battery levels. -Now battery changes its icons dynamically as per its quantized levels. svn path=/branches/GSoC_2017/shellext/; revision=75367 --- reactos/dll/shellext/stobject/CMakeLists.txt | 1 + reactos/dll/shellext/stobject/csystray.cpp | 2 +- reactos/dll/shellext/stobject/power.cpp | 209 ++++++++++++++---- reactos/dll/shellext/stobject/resource.h | 13 ++ .../shellext/stobject/resources/battery/0.ico | Bin 0 -> 9774 bytes .../shellext/stobject/resources/battery/1.ico | Bin 0 -> 9774 bytes .../shellext/stobject/resources/battery/2.ico | Bin 0 -> 9774 bytes .../shellext/stobject/resources/battery/3.ico | Bin 0 -> 9774 bytes .../shellext/stobject/resources/battery/4.ico | Bin 0 -> 9774 bytes .../shellext/stobject/resources/battery/5.ico | Bin 0 -> 9774 bytes .../stobject/resources/battery/charging0.ico | Bin 0 -> 9774 bytes .../stobject/resources/battery/charging1.ico | Bin 0 -> 9774 bytes .../stobject/resources/battery/charging2.ico | Bin 0 -> 9774 bytes .../stobject/resources/battery/charging3.ico | Bin 0 -> 9774 bytes .../stobject/resources/battery/charging4.ico | Bin 0 -> 9774 bytes .../stobject/resources/battery/error.ico | Bin 0 -> 25214 bytes reactos/dll/shellext/stobject/stobject.rc | 15 ++ 17 files changed, 198 insertions(+), 42 deletions(-) create mode 100644 reactos/dll/shellext/stobject/resources/battery/0.ico create mode 100644 reactos/dll/shellext/stobject/resources/battery/1.ico create mode 100644 reactos/dll/shellext/stobject/resources/battery/2.ico create mode 100644 reactos/dll/shellext/stobject/resources/battery/3.ico create mode 100644 reactos/dll/shellext/stobject/resources/battery/4.ico create mode 100644 reactos/dll/shellext/stobject/resources/battery/5.ico create mode 100644 reactos/dll/shellext/stobject/resources/battery/charging0.ico create mode 100644 reactos/dll/shellext/stobject/resources/battery/charging1.ico create mode 100644 reactos/dll/shellext/stobject/resources/battery/charging2.ico create mode 100644 reactos/dll/shellext/stobject/resources/battery/charging3.ico create mode 100644 reactos/dll/shellext/stobject/resources/battery/charging4.ico create mode 100644 reactos/dll/shellext/stobject/resources/battery/error.ico diff --git a/reactos/dll/shellext/stobject/CMakeLists.txt b/reactos/dll/shellext/stobject/CMakeLists.txt index dc1d02ed714..41f952a634d 100644 --- a/reactos/dll/shellext/stobject/CMakeLists.txt +++ b/reactos/dll/shellext/stobject/CMakeLists.txt @@ -29,6 +29,7 @@ set_module_type(stobject win32dll UNICODE) target_link_libraries(stobject uuid wine atlnew) add_importlibs(stobject + setupapi advapi32 winmm ole32 diff --git a/reactos/dll/shellext/stobject/csystray.cpp b/reactos/dll/shellext/stobject/csystray.cpp index 6200254d0fd..7fe3ace1fb7 100644 --- a/reactos/dll/shellext/stobject/csystray.cpp +++ b/reactos/dll/shellext/stobject/csystray.cpp @@ -143,7 +143,7 @@ HRESULT CSysTray::SysTrayMessageLoop() } HRESULT CSysTray::SysTrayThreadProc() -{ +{ WCHAR strFileName[MAX_PATH]; GetModuleFileNameW(g_hInstance, strFileName, MAX_PATH); HMODULE hLib = LoadLibraryW(strFileName); diff --git a/reactos/dll/shellext/stobject/power.cpp b/reactos/dll/shellext/stobject/power.cpp index c36bedd07f9..41c18cce850 100644 --- a/reactos/dll/shellext/stobject/power.cpp +++ b/reactos/dll/shellext/stobject/power.cpp @@ -4,20 +4,32 @@ * FILE: dll/shellext/stobject/power.cpp * PURPOSE: Power notification icon handler * PROGRAMMERS: Eric Kohl + Shriraj Sawant a.k.a SR13 * David Quintana */ +#include +#include +#include +#include + #include "precomp.h" #include "powrprof.h" #include #include +#define GBS_HASBATTERY 0x1 +#define GBS_ONBATTERY 0x2 + #define GET_X_LPARAM(lp) ((int)(short)LOWORD(lp)) #define GET_Y_LPARAM(lp) ((int)(short)HIWORD(lp)) WINE_DEFAULT_DEBUG_CHANNEL(stobject); +int br_icons[5] = { IDI_BATTCAP0, IDI_BATTCAP1, IDI_BATTCAP2, IDI_BATTCAP3, IDI_BATTCAP4 }; +int bc_icons[5] = { IDI_BATTCHA0, IDI_BATTCHA1, IDI_BATTCHA2, IDI_BATTCHA3, IDI_BATTCHA4 }; + typedef struct _PWRSCHEMECONTEXT { HMENU hPopup; @@ -25,66 +37,181 @@ typedef struct _PWRSCHEMECONTEXT UINT uiLast; } PWRSCHEMECONTEXT, *PPWRSCHEMECONTEXT; -//static HICON g_hIconBattery = NULL; +static float g_batCap = 0; +static HICON g_hIconBattery = NULL; static HICON g_hIconAC = NULL; static BOOL g_IsRunning = FALSE; +/*** This function enumerates the available battery devices and provides the remaining capacity +@param cap: if no error occurs, then this will contatin average remaining capacity +@param dwResult: helps in making battery type checks +{ +Returned value includes GBS_HASBATTERY if the system has a non-UPS battery, and GBS_ONBATTERY if the system is running on a battery. +dwResult & GBS_ONBATTERY means we have not yet found AC power. +dwResult & GBS_HASBATTERY means we have found a non-UPS battery. +} +@return : error checking +*/ +static HRESULT GetBatteryState(float& cap, DWORD& dwResult) +{ + cap = 0; + dwResult = GBS_ONBATTERY; + + HDEVINFO hdev = SetupDiGetClassDevs(&GUID_DEVCLASS_BATTERY, 0, 0, DIGCF_PRESENT | DIGCF_DEVICEINTERFACE); + if (INVALID_HANDLE_VALUE == hdev) + return E_HANDLE; + + // Limit search to 100 batteries max + for (int idev = 0, count = 0; idev < 100; idev++) + { + SP_DEVICE_INTERFACE_DATA did = { 0 }; + did.cbSize = sizeof(did); + + if (SetupDiEnumDeviceInterfaces(hdev, 0, &GUID_DEVCLASS_BATTERY, idev, &did)) + { + DWORD cbRequired = 0; + + SetupDiGetDeviceInterfaceDetail(hdev, &did, 0, 0, &cbRequired, 0); + if (ERROR_INSUFFICIENT_BUFFER == GetLastError()) + { + PSP_DEVICE_INTERFACE_DETAIL_DATA pdidd = (PSP_DEVICE_INTERFACE_DETAIL_DATA)LocalAlloc(LPTR, cbRequired); + if (pdidd) + { + pdidd->cbSize = sizeof(*pdidd); + if (SetupDiGetDeviceInterfaceDetail(hdev, &did, pdidd, cbRequired, &cbRequired, 0)) + { + // Enumerated a battery. Ask it for information. + HANDLE hBattery = CreateFile(pdidd->DevicePath, GENERIC_READ | GENERIC_WRITE, + FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); + + if (INVALID_HANDLE_VALUE != hBattery) + { + // Ask the battery for its tag. + BATTERY_QUERY_INFORMATION bqi = { 0 }; + + DWORD dwWait = 0; + DWORD dwOut; + + if (DeviceIoControl(hBattery, IOCTL_BATTERY_QUERY_TAG, &dwWait, sizeof(dwWait), &bqi.BatteryTag, + sizeof(bqi.BatteryTag), &dwOut, NULL) && bqi.BatteryTag) + { + // With the tag, you can query the battery info. + BATTERY_INFORMATION bi = { 0 }; + bqi.InformationLevel = BatteryInformation; + + if (DeviceIoControl(hBattery, IOCTL_BATTERY_QUERY_INFORMATION, &bqi, sizeof(bqi), &bi, + sizeof(bi), &dwOut, NULL)) + { + // Only non-UPS system batteries count + if (bi.Capabilities & BATTERY_SYSTEM_BATTERY) + { + if (!(bi.Capabilities & BATTERY_IS_SHORT_TERM)) + dwResult |= GBS_HASBATTERY; + + // Query the battery status. + BATTERY_WAIT_STATUS bws = { 0 }; + bws.BatteryTag = bqi.BatteryTag; + + BATTERY_STATUS bs; + if (DeviceIoControl(hBattery, IOCTL_BATTERY_QUERY_STATUS, &bws, sizeof(bws), + &bs, sizeof(bs), &dwOut, NULL)) + { + if (bs.PowerState & BATTERY_POWER_ON_LINE) + dwResult &= ~GBS_ONBATTERY; + + // Take average of total capacity of batteries detected! + cap = cap*(count)+(float)bs.Capacity / bi.FullChargedCapacity * 100; + cap /= count + 1; + count++; + } + } + } + } + CloseHandle(hBattery); + } + } + LocalFree(pdidd); + } + } + } + else if (ERROR_NO_MORE_ITEMS == GetLastError()) + { + break; // Enumeration failed - perhaps we're out of items + } + } + SetupDiDestroyDeviceInfoList(hdev); + + // Final cleanup: If we didn't find a battery, then presume that we + // are on AC power. + + if (!(dwResult & GBS_HASBATTERY)) + dwResult &= ~GBS_ONBATTERY; + + return S_OK; +} + +/*** This function quantizes the mentioned quantity to nearest level +@param p: should be a quantity in percentage +@param lvl: quantization level, default is 10 +@return : nearest quantized level +*/ +static UINT Quantize(float p, UINT lvl = 10) +{ + int i = 0; + float f, q = (float)100 / lvl, d = q / 2; + for (f = 0; f < p; f += q, i++); + + if ((f - d) <= p) + return i; + else + return i - 1; +} + +static HICON DynamicLoadIcon(HINSTANCE hinst) +{ + HICON hBatIcon; + float cap = 0; + DWORD dw = 0; + UINT index = -1; + HRESULT hr = GetBatteryState(cap, dw); + if (!FAILED(hr) && (dw & GBS_HASBATTERY)) + { + index = Quantize(cap, 4); + g_batCap = cap; + } + + if (dw & GBS_ONBATTERY) + hBatIcon = LoadIcon(hinst, MAKEINTRESOURCE(index<0 ? IDI_BATTCAP_ERR : br_icons[index])); + else + hBatIcon = LoadIcon(hinst, MAKEINTRESOURCE(index<0 ? IDI_BATTCAP_ERR : bc_icons[index])); + + return hBatIcon; +} HRESULT STDMETHODCALLTYPE Power_Init(_In_ CSysTray * pSysTray) -{ +{ WCHAR strTooltip[128]; - - TRACE("Power_Init\n"); - -// g_hIconBattery = LoadIcon(g_hInstance, MAKEINTRESOURCE(IDI_BATTERY)); - g_hIconAC = LoadIcon(g_hInstance, MAKEINTRESOURCE(IDI_BATTERY)); - - HICON icon; -// if (g_IsMute) -// icon = g_hIconBattery; -// else - icon = g_hIconAC; - LoadStringW(g_hInstance, IDS_PWR_AC, strTooltip, _countof(strTooltip)); + TRACE("Power_Init\n"); + g_hIconBattery = DynamicLoadIcon(g_hInstance); + swprintf(strTooltip, L"%.2f %% Remaining", g_batCap); g_IsRunning = TRUE; - return pSysTray->NotifyIcon(NIM_ADD, ID_ICON_POWER, icon, strTooltip); + return pSysTray->NotifyIcon(NIM_ADD, ID_ICON_POWER, g_hIconBattery, strTooltip); } HRESULT STDMETHODCALLTYPE Power_Update(_In_ CSysTray * pSysTray) { -// BOOL PrevState; - TRACE("Power_Update\n"); -#if 0 - PrevState = g_IsMute; - Volume_IsMute(); + WCHAR strTooltip[128]; + g_hIconBattery = DynamicLoadIcon(g_hInstance); + swprintf(strTooltip, L"%.2f %% Remaining", g_batCap); - if (PrevState != g_IsMute) - { - WCHAR strTooltip[128]; - HICON icon; - if (g_IsMute) { - icon = g_hIconMute; - LoadStringW(g_hInstance, IDS_VOL_MUTED, strTooltip, _countof(strTooltip)); - } - else { - icon = g_hIconVolume; - LoadStringW(g_hInstance, IDS_VOL_VOLUME, strTooltip, _countof(strTooltip)); - } - - return pSysTray->NotifyIcon(NIM_MODIFY, ID_ICON_POWER, icon, strTooltip); - } - else - { - return S_OK; - } -#endif - return S_OK; + return pSysTray->NotifyIcon(NIM_MODIFY, ID_ICON_POWER, g_hIconBattery, strTooltip); } HRESULT STDMETHODCALLTYPE Power_Shutdown(_In_ CSysTray * pSysTray) diff --git a/reactos/dll/shellext/stobject/resource.h b/reactos/dll/shellext/stobject/resource.h index 2637a12aeaf..11ad4147dd9 100644 --- a/reactos/dll/shellext/stobject/resource.h +++ b/reactos/dll/shellext/stobject/resource.h @@ -39,4 +39,17 @@ #define IDS_KEYS_MOUSE 331 #define IDS_KEYS_FILTER 332 +#define IDI_BATTCAP0 400 +#define IDI_BATTCAP1 401 +#define IDI_BATTCAP2 402 +#define IDI_BATTCAP3 403 +#define IDI_BATTCAP4 404 +#define IDI_BATTCAP5 405 +#define IDI_BATTCHA0 406 +#define IDI_BATTCHA1 407 +#define IDI_BATTCHA2 408 +#define IDI_BATTCHA3 409 +#define IDI_BATTCHA4 410 +#define IDI_BATTCAP_ERR 412 + #define IDR_SYSTRAY 11001 diff --git a/reactos/dll/shellext/stobject/resources/battery/0.ico b/reactos/dll/shellext/stobject/resources/battery/0.ico new file mode 100644 index 0000000000000000000000000000000000000000..b69af8b255308a69e1f766427d016608eac11850 GIT binary patch literal 9774 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 F{x8rH#M}S? literal 0 HcmV?d00001 diff --git a/reactos/dll/shellext/stobject/resources/battery/1.ico b/reactos/dll/shellext/stobject/resources/battery/1.ico new file mode 100644 index 0000000000000000000000000000000000000000..e29ec5e5a36f105644a6cc95f31675a049c6f4e7 GIT binary patch literal 9774 zcmeI234B!56^H+luqus!C>0PCK@`veMMPW+SipoG#JWIRmmncTb`T{B5fKWMO+X|N z!W#A^5Y{MSQM6)Ikev#)ELJH7$U3LrogpCuDl?JRU;E=^F1hpWedpYF-U? zg{W#(@w{sA!LsYLWPbChtC``G=3HdE!nLi(a9UZC+BXehC`1 zZik9Qt<>xj{nhFkKVUvX%1HQI%{pNOSjO>0o-6R)3kJWe0P#`@|`YS(~O(jE(pxTdh`R z>Ckr`rDvOVeq&mD$fKma9wqGZXv*gv&hzNQqq#bMDo1Hw{YwwMo}#DT+@!c|*(yIR zLp5jP`)?k7`cKo}*{h?cP2XmkGILBBv}31owd?ClrLw0Z)*sM=W8c+vy_P5}GErTp zY*gI)8JfM@qs99?TC(4x$Jgg7JULeptgBhlx4L)cVKtb%Tepw?ST*9_)eY=lmx(DV z5iwBHcI0Xf=g!;X(GweTRlQx5Zfo654H8di)b?CW=3X@G@VLU;ch+<3PUw+U>1wm$ zj9Mgpt>!cK=%F`0P=}5k)uBTNtz4a~-hKP1J^kgYR%+~o@oGmurdKa5U9nu#X2k1> zu3Z!z(^Ku*x7VU&OErICl2)x*tv>zxt6Nleb??zb33Fy^>h!m?B6*b-FJGnwix+9m zg86!5>J*I}Gg`4jU(utFJ*KB4pHl)}Tq)t(qVqN6o8 zX@NGqovODtzoWGq)@wO_7cO0*DbwE6*zw~uV$?_t8$Mh^;%ZsSI!tY6Q1*JuIjp3HjUUK_5SF)`}=XlFHP(nO6KHB$5D&DE(> zC$(wQMs@4fb)QV{OR=%8N8^W1YHBLK-4XM?#OIVAjUPJ2iWO7YvSn4JN)^?vU0cnX zHB*-^T@)1+r2zv5D30}x8#hkz@$pJZO41tEwPni|rKP25|Ni|te*8Gz{#&+p-}e2R zu&D?39K0~*$J;+iTR;EP&pzL=^NU@(=j=Ie#-`M_-`V``miLw~`pee$KiKx+M}PI3 zkg|5&y!G>!EM2yI(TbI;7HrrsbH>Jk6Q(X&JZs*$@ubA$)oc95=f*SMb^L^hlirv- zbU{+$jD>Uj#uMUajTxIaJ}fSA#%%xb>G7irj`y1}^DV#g-;DGh??26dd|>40u?771 z>;LK$zw>|M_&Cn@Ti<#9|KuAV`O=WsmtPq=EROhpE*O9Kz{qZ|jd;D__^5*8zh!*T z3xi)QaDE%V@n<8uJ=Z;|M|97a=X>?;)3;y$0gw2NcYgGDk3IgxlU=%Y?egUB|M17B zo_@xEyluPobqZLAj-C9+o44?ewtP4|qLu5lXzdrj(cO(Xc+b7}-T%OYziHC6PMyZh z9x53B*4t{;u2bjsJAPHSUj1J;xU){}>J9HIIIim}R;qkMnJQIpys_#{)o!j{;}(}+ z{p=TESC=VU?wV`LmB0473cvIl%6n6yWT`8!EOk}sy!RLUE)o)2v{>;A4*w?)ko(VB zYKZ$q zC>eNBs8FxC(jfq2Z&@UD3S|u;*qI;kPiaHtL(xLb;!2hP4F42J)KK~UsU<1FsK6+| zsJ|$`sJH2arBwiie~L1ne=0o+y&v*V%}B|}`teWg7PxSlm2I8NJ z7XRD=S3U+{te=9D`Z;j_6wJN*_6giSg|*K=n{(0qVg2~0u6E^c0LJ?Nr~N|&`Rfnx z{sy%_P{@V;K@`Xauz_p98mNZn-}ijx@4v&901W!^`3JwCARq_^3dFxdqyP-M%=ZtS z0cWroXm-){JLC+&od0dvJfEx|dITO}N6-;+1RUW;un}qm8ev9|(YHVFqQlkz4FA9_ zYzx{#wty{M3)Vuld{OYC!&~4Mwgqh=Tfi2s4ctFq4OfHJ5dTGAkT>8BcL(ktxQFe} z^9<<&`fxs&59JpeWirek=>CTfMsz@P$oGKufb@X!fbf9sfb4+kfarkc;G4r_vzXtWn(SqL2UW^D~Q_h#A;^ZSo4taznL zm8!!_lZkl>Vmbvf5C=61-fwauvCsS?=24F$0*qYjFD>NPOVQpc@0v3_ddeEwggv%J&ib`-PtK z7FDxm&8o!D1lJ7S@rzHLWI&riZ3ea(+-88AL2gFr>b?HF_*}ceZ^pB5hWpu+FxQ?J z>U-ZdXwaa7ix1A_$EPAUki{+*pW4}gJMZL45|c8r*7t zt3j^b&wt+Mui*U$VAGp+d@|tYPfh!WL9_Ys0YZal4Wu=g)`E=>;HKXc(KD#{(4t>_ zh}S?~gLw_;4eI&G)Wd@uCtNBEQN*BnXaZj&3gjXN7@B~$xjxE3F4Dk0g}->IY5QO2k4$bixj`_h!PGR)69J* z6}35ATaS43uT!RO$r&mZov1Ne_h!~;bWS*`?SV? z;ZeDM8&qj%it5IHr$!6Ybsx3f%FXDhTtUxkJZ&|KCxX=jE8 zzsLCDn^i6*iG8e6VQQIPiK_S7YQ-%1LSsM6(A)!uRj5UOg|g;#N50e4U6~rQJzXO| zI;jy`PiWM~sT!M-sibd?s(8!(n!6`M2U9b&`s*w$JD8>2Cr)YP+7y+bZ|EnPYPm8) zhko!VHPf{7JJZ@j9wqGcD1Mhm6TkE@&!dlzX6yK=ETw$&A3gF`lAd{Ilj62zs@&u> z)tHU#e|YryzfJ$-td5>GeV=Yh&oZS^kDbcau5Z(o%$W{de?Sk9dS5s6T%uADv(#nc zM#X)YrrEnaTD;GrCHp;ka(%YK60;S~x|$|@ulr{lR{aUPb?1mrRXy%~-NgBI9+#wI z;r%puN4DlLcitY4p4yPDYHcHRN2{)?KkI~sZ_m~Q?nTq~Pb#ckC#_tas2A3q&||Ao z)q2GlHBb0f&8F|sBX57CUN7}l`wkt{zI}U*8aqa9d3~x&XU$)jpjB&Dt9PG1>KfTi zD-u^}@$zL_uy~Q?ESRtOIkWZlq=_0fa)e?By{>l5TfSq#(iO`!dHOU(MfXtK zcI~ui*-~}u-d&TXPSN8}JfUYJo>!YTZPd1HTkOYZiL<+Cp(|Zw^t9=xB9%yptL?Zmfn48>(5eX6o3n zqguCatvYq;xNoNSQf#biQTd^foSe+7`^3DL_@2_D@Nnri?0AuB=+MYN=_{ zrs~|evmzrS)wge7#j)PeqepAnv}sC6NYEPAwPni|rKF^2|Ni|te*8Gr{#Rx1zU})r zQ6?YQbMSnhpKkvwW&MoLzxZ;;&aZauUcM*ah)v1wzPI`PEg#IC_qVMdezfi5PyX&V zAZhKo>Fa0AnmuRky!i_f;x}wqJauE<0h8ygS~~q)|IBHLtJnDTubATBKXv7Dzy2lp z`go%UVXHJ_s>7D%ZM~%wq9~^gq{t4m-V`fd;_9nQTvIaV{dup2LP84{DSF<=|IH7G z{pU(@i2Jo-9%*2f^x&1M&Ys0yWp<*JSz6_D{%HB^wgOvrj4?h<%76DEklr=MTSNA5ysF z`mqnN1b#kH2w;=XK8OO@05)(9SOe8?{=W0^*@tT!t^`n^AD?~j3km{)V4y(kJ46bg zK$p4pp)=qNHUrHrxqgS70TgF{TPEkj`k_bQ5q1O}AxFRwZUh^lMxYU91Q~tj11~yk z4WM8jxP@&&TgVo$g=@iDsFnwniw19jTi6z~g=_&^xHfS6fHhnVRzv)kydZDD8}1I= zK5!4)=d%py1Nv}2m=ERW?PV~`AL#jq4M222bI7%T_JH(&@__Jw?ttuo>VW8g=HMH{ zV6+D(Jp@otMG!^MM36*$)6qnbL{LN!M9@Q!Lr_ByL(oDPz%YarG!Z9>1Xd7j&}@)w zP;3xv(0Pz-P;3xvxM-l-AljhWU>U^*!N%z|K^CMWlq7^C>?0$gA|WDi(LhN;NJ2+K zMsh0B4HXR$4Gj$m%_(TVlq+!pe$eouo zR>Y=p8O8Z6Q?g{q+aRJykZ3;evKJ`&0o3s1so7*-CqbjVAj?AFs26K%z}#D@Kh5tK zUs%zK6)RSQmnPuz6vT82WXgs-3^XvP$-pMsYYcEQ$jLw_gPlCU(`l0G)2wAy>C&Ye z;idvLt5GLXt(Dg&wvsxq+0Ko$e646-uN%3v!4t_->| z@G2d?I$pJE)#g~QNOk8KNVyi;+6-=G!COYQZ#nyhi45p6s4Le$;AN1PfnG-LY>=0? zlKUGes0RSsh11)qr2=tYwrtr7+|LZRH+akdChr>Dxd-B(ZFyU##pgPjd{ zHt5;FXM>*$>>r#qcpAG|1`q~Sp=$%L4Zbe0e{kDC=nMLVx()0$xZ414gS^ih=jOuS z7WDn+zd-PR08+tm1F`+=!sG^&8&qy!xxwWIm>Xnnpt-^3x#Qhj_}l>WGdzDK0{#8( z#zE^ZgX}v0 z2IS9l{(*i2_6_FuR@a974fHqIKNI*r1O3m?qx~HxT&WVG@cwnt1inQS$VLn>Gy!jQ zZIpp*q=9`3d*v=129s+Cx4wv^>k$oxp&IN#Hb_G^$UrzafO0Tg-4>S(&e$)bf9?~= r)hT=$#Xyhm@2Hj2V3mB;eHK*BVm$RhYz}mPr?rDceScHUb!zq_mMi92 literal 0 HcmV?d00001 diff --git a/reactos/dll/shellext/stobject/resources/battery/3.ico b/reactos/dll/shellext/stobject/resources/battery/3.ico new file mode 100644 index 0000000000000000000000000000000000000000..e91d2879134d69e4b3969a5774e39db50578222e GIT binary patch literal 9774 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 literal 0 HcmV?d00001 diff --git a/reactos/dll/shellext/stobject/resources/battery/5.ico b/reactos/dll/shellext/stobject/resources/battery/5.ico new file mode 100644 index 0000000000000000000000000000000000000000..c5ef87e0587e11e4fb32cc82167baed1d8f52163 GIT binary patch literal 9774 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 literal 0 HcmV?d00001 diff --git a/reactos/dll/shellext/stobject/resources/battery/charging0.ico b/reactos/dll/shellext/stobject/resources/battery/charging0.ico new file mode 100644 index 0000000000000000000000000000000000000000..5dc27f88b6d8673332622561342edb3146be902b GIT binary patch literal 9774 zcmeI233!y%6^1{_!X{-CrLroEC?FOZkwwu07BFEC&{hq$YNH0kEi9tMVzej)ilV_F zAcCM#5oHS~MgfbUV&j7BR8Uz2LQKdq$(+7-f^iZ8%tWa6c|4iJ-1+bQ&$<7df99U| z8>F)oqQ;HIb0saPBwa2YdtFxx&X#s?tf;@S7Sxa)sUx*;WALkScb>C^P~TJ0KWF{W zHZz3|U#5z8r7C3jQiTj#qKYF@6?*4#g$-M*o^!uY(w6;tanC;Wn7c{g!{1Qlz7MKp z{2Yy0`MD~@E!Mm*_i4_KOilmXLwm0(-?dC57QUxuanlsmd#u8u#_EdkuV~Kpy-L}= zU(avP)bQ1XTDRA$Z?a8yq~)v9h^2aB-B!KC`Lj0dQpBid6>{BZg-4B1zv*u)WzT-i z+;UV;ed<-6(Qm22gmkr?b4ZETDnEOC(Ki5uTct(9IN@v z@0m^cdiY(&Ph71!@u^(L5{2Ql?pdmK4=q#t!cX<&zwiM8F|HrFO4w}AZt@a%?9nLf56_|4I{n>@u{B54nSknn_?$k9?*66&u7pi*f zTn(MRN{R31YTg#FUfu51!W~{+|7M{gmli6Dd38@YtSg_}qlly}x^&V;HBVflhOA%A zv{Y4!8m$?h7wQGhU9i=w8{R5Zv;J|qq|a@Nn46)A9~UZ#_oDm2>lHa*h;Cn*p}|YC z)c1`X^-TFzJ!Ws!wNJ0t!02cV95_&yEz47zH90y`;8p7tIU2yR=#_<9`dz+m{WMn{ z7kSk2HIF*;eAPmak`CqSootT|Fn-D5d|m!}zS=C$Rh!g2-M2GG?`C<_eQlm1$k(r5 zKlSh5U-yoT*8^W4)lFaIs6X)|BO^6nzyJ*!K3s!$WU1AvTn!#FM1A`7QLkRT6wTaX zV`J6eqa(U_L#FyOwrkg}>d>Ksdi3a_L4yXVZ{NN;`=bnnZ#<-`8#ATP4!Td1@1cYQ z*TVUuk(QRmvpZtGhxlyK!ug{S9v-e*wQ8wRqeg1gs+GET@2;4b7{$fKY1F7uN=!`D z)TvW7Yt}5Kq@-y1^5t5)cCFIW)3syA4jnjfK)JcO%HUp_JA1a$wxua!{R?Ec3cmp# ziznkN@XdIJnl?4A#mHfrGR3rbF%vn5@eSShpzXs`oU!49G6%f(ue5ck*fa01FQfnM zw0EWqed5V!Pd%M9{@vAU)|MKQx?r2~Q_M5itej9Ol>sHO$U*X@c^Xt`b z(6DBs#ur@B_`)Vln>D}4?XM;5SJi9OtX2D*b86Q)_q@8lF46V}ub? zKJK|fNN8Ai#p4d2$ph^D*kSw|v$TrtE6TjmxB{um>2ep(63#NqsBV_qh+IEd$vUO3 z?@|+}Y5srAw;7zd>9Xng_M9J;f!&PFjJ=NSjNP!<*p=Db+}>7RV-F=PJ1B(!wG1Ty z6#xYQ`#;-1yFWz*dn;QjJFDARgE8jGzD=n?rE!w@)D&#(?CfmpZeI_~s1_&|sIN{L zpIU{If{KDdgPOvX6ag4(OW}3$_*6s`G}JScGgLDaGo)~(OaK;0eAb^7)KQdCR8bUB z)KIRB3cv!7PyI&uM)gMVM(yTGw*V}__}o8S0wp7rA_XmVsVf@;uwdi!E|)t#H|I(2 zPikuSMz1**-<87wnE(6(iBF26`JajSAVIM4A%auh|3%*qtPk-amZ0Vjg&ZFrM1gDo z8@L9nfoiyaO2v1$5`aNJMe)HeCu$XK-g@S?-k0F3y+Eo=+gLbiY{TnpAhwQK}D zXz&uag>6Aw$QH1LYXgrDSi{v|HN=0)2jmTS!`*?$2kv3}QjsBjKp)Nr^PznIUIxSb zfv$h#SVRXjhvEom4@eIv4+szF4#*Cu4u}qD4n<=ajP~H9hX4#!1W^P{1WBambTknp z5fl*w5%dt`5Y!OF5VQ~mFbrV@O~gqeff=F=nhlZ-iVcDdIuDW!iVcDd4;rX8h&E_8 zL`JbeuyJ}#kcO0ml7x^%d}Jh4Bt#@0G*FTdlF*Tmk(`S3;|wheDGMbFA&UnM)GQ}v zojyZGLq$VGLqkJCa|+rob~;v|h!}n@oYL5LNeMMh$CdpoVpL!jp?LT)5A(hL?BGp2 zp9ypMs^aJ4&G1%u+sc(IcMJ^;?MT~6-0eW0c-SX~Hj4H!5u3)3FqgMhwQAKaf{5Zk zq8EXeZ9vg?poZ7a3#q;`L8EQ3(Lv_b-Z|$s#ZS!dC!biw`t|EKgO`%XnGG>zQ`H&! zqybF^H5u4saFYQ}MrCA_E(SY&1w6e6Jsky~=GLrPvlD6R;UOnaSE4tpdGqFNxW3)+ zlmi}vs4S5DRIRIkD}%14fmeC()qy5Wn)D=kecY{QAXWp~S`BU$P>)zJ`Kij2fG>l- zvSFiJ;4d!#=7i0Q@#=vjuU)%#J>JiJ$}I~tKh^Gf(Cib~Y!h&1(3yc}yWAWAw7dol z8X%ymY@w&rq*}CS(U|;s!Q^-EzncT>X26?4Zw9^@@V3D@?`JpCoLeeYnJ*(EBI=em zKWt~fok4e*;N21UE(5@u+_GiM&Lj&+so{RFPX63ruixGOZViAxgZ>;o8T@Ae;L-N& z+h1Dd#g=jKbmVvUpIw4$l?L@0*lKXA0j>tQ`o90m$`8P1 zb&I|+;QLSAMplPri}M472GJTwYcQ<^n;*cc5z80c)UvjNWrJsbFJ@N>EIgVP326Su$s!k`?wHt^cu z>vHD@w+)0YGcVL_V7I~D26!9fecU*AF8pmlzyJIf2>uU17C3Goc8Rz!xdG({l^a-Y zaJd2I2ALaZZm@arcy}&*ZUA}?_g|GVzwA$N5L&+jd7fCx-3LdW7?t#e2XYhh!|jK0zP+blz~E|f$fTXpbZIwskMWfUu^2Rhz5_N z8f-;2$VE5EM>yDtaxhVMyjnZBV84w1saK#_r$`HNzom}z7X6OeC>K^KF~5JNay literal 0 HcmV?d00001 diff --git a/reactos/dll/shellext/stobject/resources/battery/charging1.ico b/reactos/dll/shellext/stobject/resources/battery/charging1.ico new file mode 100644 index 0000000000000000000000000000000000000000..93bf995a7494a11ff80d1961afcbcee0d0549f87 GIT binary patch literal 9774 zcmeI234B!56^H+luuBmUr2>i~hyr4v5n0>{SippRYpa5-+Ngkt3W6w6L`5i2S!5G5 z>;wo~62cl5ErNm~i|i<%>;z08>zsafLSiNam_(@d_wz6}bLZXn&bjZtH}9P9KS)<8 zKou*B_ad5JM7l>h_qnX5UoGunTgG@rO}|EZyNp!T?L&Kz=8kg~7U+G;_;b}yeKS*F zw-^b5{dTfVMpJ;T*! z$yOEUvQSgLJFM_Mr!{74D*Zz$`a+DlM}DfxT}G;4^S&w=(pUHPpRMrShZM2@h$ihm zt!}H+wf2xlKO~x-i%U_F?$H{)cBf`?{KReh6!gl63V5Wq3WfAht1&ASao~t1>^P%Q zn>{MidzmT>+@xCJCscn{vKr88Pdce`?`%|sS7Y@?^bR#2I7NZYUQu9hUrl3vW4EQ~ ztySzlc(uy(jO9F{RFHPke#hX-&v4LNts`Pqxv!*00mZSQQEB zt?^saHI-wh@AT-gW$CKix{K~?@r;5d$7}GH=^D+oXx#Qu1-I#_XP3mQLsWuVE;y^E z5y#Zzqn&#AgLP`#uASPpZL7Oul2vofSuKo-)~Pg)YAimh7hir!Z5W#$wNS%G3|G4) z>1xgA?mc>F?t=Lm|ItK6|CpkuHz%pyyj0bjo2mx9-yfN(+4JUV#;gcMEsD|T6G>W` zn5v`rjXIg4d*-JoeCia9o$#R+L`P}P{CS!=XSSx!oS_fKj#14;Nvau}te5wm)vAP4 zHU1=7LCm{Vt5#~=y0u>F)l-q~nAx*5Xy_1y^?y^ZeSbzzd~;U8!NF?Nrj5FG>!xWD zGqqx6oK~)0rNzsZYCf@M&5hKU@#8dX`1=|-c#t~mNl^9WN$SwCqgu3Rp=QmRsU2$) z8XBq*qeg1U^5u$Mx|H)+q?w%0Xy!NI-FH-B!ztad{_pP1x?RWbR9Q^)=Lx+##*k!}UFTdLK_2w;0W43PlX8iUY zJ9qi)@X4qDnY(sg?BXR$W0rlkZsPjSS5NsO`wnAc7EPafZhYMG6>%$9tzP3Z9yy8e z&cjEH9QDEIaq|}}jEau-8J{+3`p{vS<1=PP%$hyNXFPn;kgW0k<0ed=GWBDh@ef0N z#wYgr$alPV=#XKV{`~U>AI#zk^JI{Dq<(4A1DC5ge-?I?S$s*e zq??KLllj&uWxb~wMoshoW8Mevm76XPc<=N5XGI`$kT}RWqz*DymXVc7BrcES*T`kK zC6kfJ$d#mGvKh&YTt+G*laa{CW27;%m`h@LG3H5*CB>3qNwDNs(kt1OBu;K8#gbu3 zu+$W!STZaL*5z0Kj4V%*C&yDlWXzm8fii(AA;Ujq0-2x0Pn|;QC-YMvP@A~)?}xFr zOp^M85{3}0%=!MQh$uv;LnuS2LMTEA;Ytuc4F42B)J$3asU<1FsK6+|sJ|$`sJ;k6 zZA58AWkg{_UF1q5KMemAU>W|Y^eFT$rhZh~T`eFD7Zed%{7P19w;aad3s^vk!iw+-wTi6z~g=_&^xYmFF zfHhnVRzv)kd_mrTH{9*Nf8ZXr&*2%;2lU~5Fdxd#KFZE8zrX7r+!xUS%^}MJ+5^%9 z$^*g!x&yKUsso|}nnT7u?2Pu{qz69?RRmE4O$13K<8U+)BoP!51QGNQW>Ip&}t7@uGv0gph=egpA}=q@QPKSx8wZSqNFY=%8jfG3)XfG8!rxA{rVR5}H%c zezVK50vW{cYvGiN-ct&@=5n0bufj(GW)Vm$bgmWje%^BY3Er=Sxp>8CH_|H8s?%x} zEn2i*U|?W9`cC4m4f^zieLB%c(LN_))A*diVt`hfqORi9%!u`a~UFgX%sj5}0RwRBhxMuK< zPkibm1KJE~GqBCzHUr!Yax*sv*v)`9gWe2$GvIB#Yh2Gpgt2K!*&MT8FY6VygLQo#RGUlt5vJkfM9+pHQetdiJt`SdE*0Q=1+V|ckdbi ze+K0JJl8>eRU_*OSdx=;9~h^QK%v<+>>|KIMK^ ze7E+OT7P%`u#tBS-1pGMhaU}qO!!~NclY8i6(4x>u0ej|H{$+-Mw7CyzrXjNTYncH zINBv_;8p`%4RW>2>z^||0GrUL-Q#}We`?gLBs7~9A0RY{ z)<9Z=X)Uku0o;UJL!Qr5d}z@pKE!JvufeJiX9d^E_PsSkg@@Y>+(e8&g34TR1$F4S#cx53>8 zcpKz>-hS>__}lV){rN8t{2zb>aNIy_AHOiU0p$jj8(3~|xdG+|nHy+suzA-0?pXNT z0Q9rmf5mcr*k52HwEil%o&v8MB%b9HW;dYSpmqb>4Q@BU-5_@Z-3@m4?(2>LvJHMu z1>lEWAk4)!7Xasn!1E~py+QN_(i_ZeK)r)`$MoLj`jEYW_6FN~<3jfa-lxF#qX^>o zAb-}h_niQLIK+Pz9LK7BB$`VQH&^t=g!7hzf!zQA9;3P+1HJ z0V8|ZmxQo}MT?-I$RZ$%0?JOn1d>cLr@uRqn1K)`F@Ck*=jENuop;|m=f3;i%sIdR zAYGxts#;aN7T5IR(w)+e?<;EhmC|1JWsX^M6{MQ(80ceg+h`SO(_ckG`s=QNvlYGPuwo7z z)rWh|sK?q2tv~G5_sOPb64F$>XRJo9->sRPKXJ!?HF#-)3P0FaMML_j-Pl!%Ie1i2 zyUuFNRIR)R}c=hE8(|4@Zk+Y^#sixF)Qwnx8IYT>-rz(Lp9lU&>?jNyE*Y=vLGU1ce zb?izF`XohDc6l{tk5_Z|diC(~3>nh&iRZKRBock-K#Ju+6G5Xq~QS{kn{f zSMiX(8oxb5Q#p6~Zm%9$k)i6L-E>>qr_^9_qK1B+p-ApUi?D|k+`h9G#l`CBWr^yv zI7tsJJf~JM$JKJuZawhc20j1c3kvJdL1AHG8Zm05?ubj(j9D>Syd+L9^y#Cz>&|Im z>|)JXFkdt0%+}PIGZZ~_iryPHRzrplQ^dg6bvoUvI!n)K!Qw^guq;D8d-c-1g$p!( z(nQ7nkftZMrl|3Jj~dVOs41`a%=KvY{CSEznWELn9v$QS#i!DA=Ylkii<+RiOHx!f zK2Wy}I}4 zp=mKQwQ6;OR3^Vnl)>tMvWS&Wy_Z8 z*s-Io+?1%In@_6L<}=c^6YkUP+Y}MudKmxcBqSv8>h_p#6Q6Z@82?-+@9p$uPC1pB z;{nHx?>(`JHh%oc9LD$T-M9afN#A^X;NYR}zCV2A=mm#t+Wh$!TfW@7ZR)h`JHCqE zxoh{=eg}N~pY;)$s8tE8*Q{Olk>B`| z30dPaqT-h>TfSn2-}t=j;|mrpS{xhaH$Hp9g!BGq%#4beGj8tte&Zwk$7hWjm&171 zQKQGa7ddv|2T{>EjE@*`e*BH7sEfykWg8!K;rP2F!-oz3>HI;x`}oKIS6|=wkXHvp zy!QIQHyD5O-`VH?R^RZa-X8o;_VJ1eyes>-uB%kJ%Jt=LsCwg#Rd1?xbM+dxxcutZepjY!xvR=weRcT?*IZli_kKg? z-xM!VvQ(*(SC&5i{-W1Hg@cL|Eq2lFUvdYzpLPoS-YlV*`${mcG$38Nx1h}VvxqCq z63dvS+(4|Kntz>A(RZm4)HMG;&G+T|%T1RrdEa;Z&x%0iAaRg$NF8LZtVTAbxm=Rp zMlQoGnT$k6o+O=<%}8eCGEy0tj6_BrBaM;8ToTJmW1i$#QY;yk1WSG;y^>ui4yX-C zv1C{hEVTnEmJCaRb@?^0MusQBliw*rGG|WxLHR-Tk?Eh(gUW-#gPMc%PxhxcApg7c zA3$SanIv@vWAWo z+Q*eY0W|zmTm|Bv+KbYQ%8SB_y33Va0W|zm$l;&uQtOks{#*j39~B=(BsHHaBLiso zryvd7KX)1bZ29(2El>GN^-J+f?MvxP(BaR`G;#9t_0Aa zpG^PY7Zd~p!9aodcZd`~gD$iDLubGlYzCTLcK!}I18C0wMi1-5{GmtS5q1O}AxFRw zZUh^lMxYU91Q|2eA6|6W8bHH8a0}alwva7g3)h0RP%RHC8y(&Px3Dc}3)up;aBblJ z0c*G#tcLh6yFuQ7H{2b#f8ZXrzrZu359q`BU_O+eeUyV?{y^71xIdx;nnRWcv6P%I2i50Ne=-uR1riGG!Z0`%+t|CkVH^K5Jb>JkV8;I5JS*H zIDo?tR?tM8BobIdv_Z2$vO%#yutDcRvO%#yuwkQvYJ+HlW`k!G8w4At*W|GwC7~oC zB;g+!2^9$uiH#0Q5<(I>5;Brgk$zr7%Rhqk3S<()uZ2^p`YtJ=Y(ZSvufj(mW)XxH{n3i}X0`3aW4_md|KsA7!mh)rW3{n* zB}$ZN926APn7)&^>w`YMVV^Gaom!nKV$=B<&BeW{bm`K!Kt$a@q8Y%;*Fez^poTY_ zWl%kyaRwWmU|tQKaqi97rTIPgi506{xpH-QDUz7U5K}V9lmU4dXkbv2flc(67~o`( zlYveKI~@X^K8Bvof=`pnl`GeTFqN>vxrg%`EmEUKjk;Xl0eC6}pfZTcKq`Z&45%`w z%D^52Sq!i;$jU$~qiS6VTp4sV8oWw{uZ~r#R;?A@D`Rdw18HTUt+n7*I=p36`*!}i zVIl*%4C=~?4|o}szkyyxRUQd^8T6G58$A&k7Ul)Ob`tbftV|%m%a<=-iF=vmt_>bD zfXO!px9*pUPqn)NH2V@Z+X0*zbY|e$em4gIEwxIOD)$gOXQAhUN!6@bvnugZ!8LkJ zny>qRQ->$ZK&vU>UXJmBN`v|gY&E#m09S)tefQt3fA;wBs{yb{%{x3A@bjnUeab+y zS@8ivgJ=z;HJH}&8Xv$-x+&z@JjI6={o+Hs2J#xrYd~+Ft{(tPQb=^m#s(W3aGZ7j;bQ|Z^A#UlHh9?pW+RyZ{2zcMaNIy_Kff@!0p$jj8(3~|xdG+|nHy+suzA+; z?p*lX0Q7S_e%8{BSyyFu;-x*P27JJy{8 zWE=eM0pLemB1~?(3xV^);Q2Iw-XMAd=?&&Kpx(i}V|t&tK4fp8y}|arxX`_U_i6C` z7=mQ-L2l75HP)){Z2*5X#D5Ot_qg~#zXAIO^ZU&8A%6q?4fgi{|L36p5Aqz?=Cy>J2Hd$_3{3<;l`H9=jKx1KjVlwx8c? K-EXSd+J6B!4^vhE literal 0 HcmV?d00001 diff --git a/reactos/dll/shellext/stobject/resources/battery/charging3.ico b/reactos/dll/shellext/stobject/resources/battery/charging3.ico new file mode 100644 index 0000000000000000000000000000000000000000..e0fc35a439dd3d837e0a4e32debe05ba14412a31 GIT binary patch literal 9774 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 literal 0 HcmV?d00001 diff --git a/reactos/dll/shellext/stobject/resources/battery/error.ico b/reactos/dll/shellext/stobject/resources/battery/error.ico new file mode 100644 index 0000000000000000000000000000000000000000..c3c2041626d7b2aa2971ebac9183451d7766551d GIT binary patch literal 25214 zcmeI4e{fyLb>A2K@dyb3AKotjBuL`j2Y?`c@W*@L4?vVm68hnYwrqnoQwg?YL6BrA zkdnv<)548p*Eg@IHQ@OGx-Ca zac7{JdUE^uo_p`Z13-Y36xx~A7qf5g-95YK?Afzt&)FYvuFPHI_U)@C-rydHIrpq{ zE}IR$|JOR_{*tun>fn1K!3Wp64gjJt5*g7baf@#7rdyx89v zr}q!}lqFO_@LO6{S>Dp^_wwn9L?Tb%HDSQgZ&dx@D zQz3kBZ{qgbQ>nby*x1Mv`op`N7YdC3$+7IKBgT#odl*Pl$(B<{JVKb7!kRC6+sOhA9K#;Zwu zftnIYU<*Lgw#I6gN+kOG@9ppJugQ_D_UZ@t{(ee-^jM-lNySQ23Fndt)qP8X+ybp? zv=Tu&@I4>phZ@3%9!S+dg_rV7nff()4r|@{UN&5h69ZTA5|p&@X$#r zNZla<;{yn&3Pf-+Y=P1Ryc|9$&I+%1418IxV1y zR3MQ=T-3fK_(MihA#yIEEaYq;SaWGHRV1wn&yoYSi4|TV2|;-h%8K2kbc%p)5iUpz zG7^_eE`hkrD>^GwTmHL$c|_`KdHgdeK+;!^t`!pTeW| ziw-5l75`*?z~7(6BR(&QHP2)TM+xtHp0ODQBsSkr!3TNDJePUP~^Sas#J zBd{ltG604%I_%hu&Aka}7Zhk2!~Dj=eh+oU=%tyYHWiLBiorF@=|*_R1fp1rY+M^rZQEa%*dp=0!{a_`bK>M z1H7hP>XYgcar}Y+{RCye^9{WY?lHfh)KZr1){#IB(nkV!BqTg9;b4BG63U9*rtz!i z-3AK?sfM#;^(TZ2VK_rv63Td2SWnnQh!Yx?1*IvEur7?IU-Ny* zxyZ~Cu0+lu)@-U$d+H2jFZ&=qy_>3CqR^R0WH2%g_UH3?FQ4qkO2{Yj$@}{id&ztI zVH^Tka}WW6jg37AGy^2_=|=Kha(}KVg_I}LjZC_j37tJDEF_m~OnO0F;l>H0&yBhf@<*OH=ca!&?WW(JaWe`(R+x38l$m;c%1yj7 z;l^GVbLXEs@6JDe-c7zX=|-q?;?+qv^~RJNetg7@y*TEk-NeJPR*pUEkw#uJws| z*Lrr|d1n_~-SZ1>3K}K}t&c9absH0ss9O|Jl~yogL1DexWR{g%9D5Y9OdZu7isrx3vQraX+C{Pc%CxP0{5c@aE$Xk z<4*MYZs-x}d&+kM7jyN}ncu!JRk>4#M!+QD7!% z6LNK0yz!A!i z|M5Rf|L8ye*?)QK&;ILwo7s|3{aZ&46ydj4X7iN|0sOk(-tnz}{rbQ8w^Kj(!5eRU z|KI)l|M2FPhS-rK`$uZC;nPt&QhVS)$(GVDhyee)F4OdGagYJbmF` zZE4sO51){uL{*g?g0F4<&csWv{IkIlIefjBs{`k``Kl=48yK5s(mc+GL!CzPX zkG}tphhKd8>8GFmCj@)`X`(7ubu>Z|#7C>D8ukEx_zN%ngD*Y$5A}@OFF)U_ith-) zSpcdI3nX^jE%@(@ed)#E`Fr0DU;h5q-3AV<%*e3FfjYq5;ctEY8{zZ(xBobJ`;!-L zp-uyC=dmL3c=k^XzT*$S`bXjO+}}MPyj31(Fz|-(5sroq8xMy&o_hKl-_&#Z^fSLV z`unH#Jo^V-2}p^+8yY~-6-e{pj`-g``}M!`J5T)1lTSYRnS0Oi%k#U9M*{HOJSvvB zCAD4Txa+g=c-!CnTaSKe_{*oi^4Q6NGhaFV<*z>e$k*Dt1h)GCj|y}(grigN@%HvF zJn-PJ4LOIlYywm7`#(2j^lKb|h(={vLk@F7V(;vU>6A^rS!*1X+oo(rKW;uMd#zh?X z=39?{EUdqwqXYQPmiEr{&f1a!*CQ(JU0q!P{HBloN(g^|8nPd8wfm|-(7jmT`Xj*S zDPZ+)+J18gFO0x9H@DZNcdjde?-D#Zrn(V&Hf`^@F=%g=8i02-DO#}orecBXfo}jl zdms_tv9CUrN;Re$k2TiQO9r3b9#56BNbuPs2k78<+m5Pzxqax#qiyl3{GkBeUE3K? zr(4ny0^mD<-rdk%gl}t$#}lBm`kl+P)t9j7`mTodh64!gQuy{mH{{#18&vB$wV>GI z>$8atByc7Cp?pICUkgEtU2u5!?$zLTcX(7^+f4nuZP-BqH${m`NO zfrjhWt;;m0K>*@hk4S>8)GZK`Jb=mB{T(>&%i(a?7 zyq_w+M*g6DNcnp5Q{|V+-;*yTpH+UR{8ago@*(Am$|se7D&N+8QT#^vpYk2$v&z4f zk0>8fKCAps`IPckQNE}AM%niAo8_0v=aiot`KR)A<A%wTi=>< zJ@QovBf!Wv?|ysE{7DJ7{L>!%&2id!{zd%jm+-NknREH)=3Ni|)p7i=A?oeEL;e!J z)E#Qeg!$;B&*B5&!^syk{}F$11iwr^@Zd{F=a@c1|*XJ^ePl)on*v+o7`#(Dg* zSL8FYrts`J^B24EIeXre-$ff=8OP7U2gN@fzz;3QPaMFflz%55Og^7{LHT{%_^v&C z%g56?#rR9m*3X&(exCeV`LQRc$9zHjKJ#hmtI1bqpkF>6u=sxR`{e)1pVivKPwt5H^fHP z@7=q1ORM+ox}D!?*;H8`%fw=J8$HY4^e2y0y|8s_>V?|Y!)2AblU0?QcPD!*w^jb> zA@a9BTYu;e{_u}*5x(_&Ys(FlHQ&BAc3n-~A6FJCYcu3O<>3}Q^LzJ?{{HAgt(jD1 zO>JXYP0h8Hbv2a@ZLMx39e4px{@S_UeX?~|M`b?Wwo6YYQ<=`Uy1f~!{WE92`Z&AH zXTH|bl&ma1NiXw=+lx=YgImDwm$MmKb@-5;!=9JPmXZJYFS6^|KlEGtoT|zzmxcFC z28d2<|GjzqgZuBtL->t{9(w3Ey?mGrK;C;q`QBZhzZ;+6#(VF(|DG>Akk4l_?U2`= zVgDEIk?$QcgZ>k@-_iHk&&9Ge=KXfo+^KBK&$N6DgZz`XeX4is?%j3U_ho8oc4bcl zzJbcOXAa$T^DQ6!m0OQ*-QDD+ZrD^=xifh~&^5|$Ys(~#_1t*v4YgZ$do4|Ed%dl- z8xDr~*LfZ+>!|(6k)z6Q+0~Tao9(Er;!uE|y#?=Zp^zux`Yz>X^5oaI)YjUfx#b_K zDRh#*p{twxw(D~Fy;W4OEwGm;-%?Y^x3%Qb`w#5fcd$@HetatxY^V?FZz<$6EnY60 z-j`)Jw5GL8>J7CmVg9D9c-`VP zb?ol2`uFT=+EG>8k*nPt*seR9T6Sex5{<3vcf_`Wzb#i+QJZL~-=aHJNlpZQYj2&0DwD*KVse>Z}ImHpXNiVp@{8 zIbKn{Azl$}GK3HglW?6``B6d;%S!us?>n%k(eSfN?mMh)r^v?8{2)6*c1g5uuKB{& zyKP;2((Dh}3|fDeeIeUGw#d*^%zeyRW?Qh>&!5VIi7WT>=dn?%Vrv6%~tdLplpcmVaI%L+Km!xEqwfqd3OT4;v8$6 zvS&0e4!*?N=Nxn7o8UanT0ZuS=H2tJ%(|f;&$$7@!UA(Cw$t$0IoI7k<9c3Xt(rCI zfyc+p7V@z@WG^|l;PTi7b^BSrzIontclpk1(z-Hs8$7}Sx3yZ$^8@z{m~AJ!NOsft z7v@|Yu+Ghz4QBfivh|pUC$NiT_sPcUyW<4&_p16n5TsxJ{*nV%l>>KfjKyMief~C= zx*I%)ZfL5=-x2HW>y7n(wm0^Mm-Eehc2HZ4_VCU8bgbw4^74us%Wt}Qdn~@K`?}oWgEjH;ZPzo^ z#o~KfINNjJVC+y=*&+MhOUb?aQu%_K9oyEjE7#iA-cg>~yxYE|)f+cAmB(YvJISvp zm-61axqe%0`{o@OP@7o+NS4JbQt5RSTD6c4FTW?{h`#HTUjje#3v7h=Xncll zAHUdVPW7wP)v~2m3tnAaU8~@kOVwUY8mdEe{al{ow;nGi)OB}td-;9&R)tdf^ZWBX zUX!;NcJUsD)?KYVl}5&uQMzOji`4}u3Sk{^SQ>UxVj>c2|#o4gzS z;1R9ZO%@{hMHlN)#q=nDc`W#d{!)0gJEZ@L$3uzk(>RLsM5H&OSmTjXE-oL?KV$S` zoB9ey|JQ>1^19__icrxpKU3Z1vW zxg?+SDd3;-IS&Gz(Az)B`?Sy55eu9P;d=(!r+v-*c?T6VJtO&bj!UbAg^oqfPX(-U&?$q!XU9lR?|d4e(e;gfi`TrYl@@2KyV(O(Vk7c{Op zi)1|KED}72mircI6}?7tNPF~sshG8GlYfmn&cqextF`)Jt-N3i2KA_4k@0yHXT*Q# zAM!b8W_%wyayUCE;I{KKLfy6~ij>W_6$wR3G-k zB=kr6-{_a@aAwSC7vEP4oG0@+Pqu2l%5m1r^eSfzFHL(Xz0f3GwHQ`!i^j0#KIWX^ z<@8J6NOp&i^R)tJ=6ue~`J9Zav!P=O@g~fIRZ4j*K z9&FLpj#kNj(f*0(=RBj0QSm?0lS^V`U;2o1jy~rcea<=hoO84^rI!ZIKKh(}G#f0S zMRWvwUyJV2ya-;gY&rDL0<;d6($2fqy{v8G6X!P3iSX9+pzm{TlX5|9`d&Jp!2Y36 z6MW8c2J=9eUJAn*PoMQZo4+DjO6jwA#)!sAF)ZsBm6IIGhC^>^+!pyR+V!A6Z9XjO z2=oQ#R(;N`nogHKl0MZuARcSZ;@qkhgMH4+`kY@4<}vaFBN^1Zz&<881Di$syEN^= z+#1cX){c@kMCFjjh2tlWd!a2H5FY-npr3w-#+39b=XZV1@A{nI^*O)mbAH$7{I1XW zU3)mg>$6^J^m2xmHcLlOW8a~NnA2qkvHxr~jK<(1-?1amDMed?_n;l{JhXY(gOXXbs*%=?^4@HsQ@vyWlE3+F8^DL>K+(b(0y>cuBo;JyJi zBlZPB<3xdd1oYYHn)0%|9ham(l1s(lE2Up}xC7uzX1D`zS^7;EXgr}Om(f2XeyHw< ze$J?f{(D@`^*3#a%m`q_gs{j-|u-2&`d@m3V79pAOZrvw6Qy()?J3PYS3tkoXF;$E(gh*!SEE1dgJJ1Tl~uo% zjDxu=rQhZl@L6o_2y}Lo{z2&1xHR5}{MWbompN88S#h3%&*g*_<3MSI$k)AOQ^bGO zX|}d>UDOAWT`m~{?}wp3k{|J675a}$moAZ^a4xtc(ItuUUn2h@nrBRgt_J-V*upEev158-_i%1 zQx$C%B=@3KGA}wJ`B#4cBY$zthq{KfK54SKhWv;=;ZVJtZ!x>kY)9-!*^b6P#$M_8 zT|&Qf8nkQP5bcqkiDJ`VA&!vuvuhGwl1U#-*j!F|lTjN3i{n=`aYjYs&TL%Sy%GP^ z7VeR1UCGj(NO<_d9B6t<^a+<@ z?N8V|3y(y<=1H~9`UssRU1IGcO?hg+<}}U0qK9+0Ru}axh^K-vS%=4w+{o@wyM&KE zUAPjNUrxKesiUZm_05?qs}GvywH~ElG8*zVl96DYOmnoYt=hPtA7<#!VS@I=?18Qm zgi*o-VU`fdiR|U`gyV!Owwt4RqZmG{I!|cbf_B&$0JGcR7iZ0beWNheIDqcysJ<(S zp?3+-uB6O|fuRi=Bjd=@4C8e{W0v<>OFKQ>_hIV3T4m{%58S6$i>52BmofI&mUh-a zF6y775T9{JEVloLVEf=vWdj|GzVjh4~O8xaj}OM6udu<)b))596apg8V4HJN&-8AxMwDU6@{s9}C+_ zZ0+`)``;n{1^!)`{_o7f#r6IViT(FB!D8Zfh!p=Yh<5>>B^)J`*&8oEr>Ephg5>k( zC8Ii9GLFuZj@P*;>ApJj&lvUubA+91SycyrP}YQPRlS_cIybBNQgadCb_R;~Ii<-i zA3A;w;E4zSz9{5DTY< z7D$^{S>cckBD~h`YJYK_5A0s?J;JYd!OEUi*=6{v!Fd84v+~)HnFX_Du+1V{(#~`6 zE!)QM(>~cD>TlUZnxj=l-?Dj%X@VzBwvb}2$(TJ7wx2U+)tqw~V}4(dt*1QhJkciB z03X(#JLepFC)k5vP3<<$JKPcAS6jJ*W_8LA7B6H!sGU03U}>~h=TC%JYb8bp^oS=> z`{DC2=NT5n6YgTMKc({&*o2%-h|VP}Ig_Bh9B5Y^;)&G_e(^=NyLckp3Zh5(;=8`} zuC-42VG(|OoO#)m+!y042Y5MK5bYIlUu@->0`}<*KXu4{Rh_a`Etqc+u5*;WL#wqJ zSm6?E5x;y~@^ywpd+ge0j`q#D)8=!ht@s_K>l}diFWC?Lt-uBqEo%kAiq8QpBewn_ zxfVaTXJ>ol+Ea@HckX=d-1*$OE2i0=Tey#}dQ@LAAd`}xm0=M^Wn?SMF4N$P@N17) z`>Wc|D-GNS^tlhXB#pa)ChOv(;V!|e`j>}Adho?rPeyJvj)#i)tv_aMk5_xt#l2l* zjeCkd_Y{5ZDK6W`4R~oZgl%4qxAa>yMD#Kr%!PZ+LHomYaG#R#7VOcA2mF5>&iVv< zvf5MNPNmVNbnaD>H(HdvA}(7SDV4#1AHuD`_*~$;oAjy81IGUlf51z|^-IX(Gjl$7 zKz;6j`rHB4#O`xH#OEHU?MHGC6#9ZaNcE@2mv|fDDaP8rBTxETxWOmB7w4em_^ln1 zZRCo3s_1_j+w_Px?$ar0Z;6AYXkJ=>nBieM(cl;N%xW$Etf4h9BK*eNVY! zzfo7TUc^0PpL@nW_l#HI7jEM-x=3YJpLiaX4cBYt)@pxokAZOdG{ujpOGAIc8=u(JvDzsjo(;-m1(H&$B2f9o&t zuLQr~OL?HVmp;(?gY2&*Pbq%UY_co-v`KXZ7|G_^k8>Ey6p&YDOLnz`G zPK9v%yZ64K|WP)d!wg$&2tt zeGs;P1%B+VIq@l2*ItQVyw*67o>MH?<@`7N(5`f?r3sgC3ts(a?WaGWYlY1Xy@RA% zS{pH)f@G{7hF;ZY>xamHxb9i!u3C$ty}e>zhCN>>}zUahxF--zN!TXB( zgoDsS7$6K2itC%Db(X&S{(F!4{ssPNt^GS&`~S8V0k}XobNLYc-_SU)4Ftssn^p@K z$iE2edj!Ai;JQF{pF5u4-#WrQQ=hnaR)h2r z%FSqenvP>!M7{~vPZ7=gzRqy30PL<+(@fbC1~P96^R7 zrYk5vraGc|lKaU%_md4Tca)6|+d~WIKJiKX6Hh2-eHfMJ9<+<&$@ z1S1`-b!XnSFHp3(O3QPPdP$r0&An>lne-*&O|r9Od|7$u5^mYxdbp?Ub5Gmnp0>|D zZELf5FMUWI3#D~L<)z!X1MYJN-0I*Ccu|jvXX24yslREN^UBf*Hr+%@;PYwmN` z-1MGs%3c!h1WOphHkrq_*LiZ?aUYOhE;!+k?&Kc3&pmdtkCmo+ML)5|*MhzW9~@xG zF?dL0`~|i(cjb*1(K8(S_+j3t@T&x4fwh#OOYZSA76*Y-AIUE`M_klZyblm&3Cg$r cKeIk0;!;r=iOSy;#`+G!nQK@>?RW0~0uhn`O8@`> literal 0 HcmV?d00001 diff --git a/reactos/dll/shellext/stobject/stobject.rc b/reactos/dll/shellext/stobject/stobject.rc index 81be2e93dcd..b42beb39cd5 100644 --- a/reactos/dll/shellext/stobject/stobject.rc +++ b/reactos/dll/shellext/stobject/stobject.rc @@ -11,6 +11,21 @@ IDI_EXTRACT ICON "resources/2.ico" IDI_VOLUME ICON "resources/3.ico" IDI_VOLMUTE ICON "resources/4.ico" +IDI_BATTCAP0 ICON "resources/battery/0.ico" +IDI_BATTCAP1 ICON "resources/battery/1.ico" +IDI_BATTCAP2 ICON "resources/battery/2.ico" +IDI_BATTCAP3 ICON "resources/battery/3.ico" +IDI_BATTCAP4 ICON "resources/battery/4.ico" +IDI_BATTCAP5 ICON "resources/battery/5.ico" + +IDI_BATTCHA0 ICON "resources/battery/charging0.ico" +IDI_BATTCHA1 ICON "resources/battery/charging1.ico" +IDI_BATTCHA2 ICON "resources/battery/charging2.ico" +IDI_BATTCHA3 ICON "resources/battery/charging3.ico" +IDI_BATTCHA4 ICON "resources/battery/charging4.ico" + +IDI_BATTCAP_ERR ICON "resources/battery/error.ico" + IDR_SYSTRAY REGISTRY "resources/rgs/systray.rgs" #include