[POWERCFG]
authorDaniel Reimer <reimer.daniel@freenet.de>
Thu, 29 Sep 2016 20:54:58 +0000 (20:54 +0000)
committerDaniel Reimer <reimer.daniel@freenet.de>
Thu, 29 Sep 2016 20:54:58 +0000 (20:54 +0000)
Bug fix and improvements to PowerCfg applet by Carlo Bramini
CORE-11801 #resolve #comment Committed, thx ^^

svn path=/trunk/; revision=72860

27 files changed:
reactos/dll/cpl/powercfg/CMakeLists.txt
reactos/dll/cpl/powercfg/hibernate.c
reactos/dll/cpl/powercfg/lang/bg-BG.rc
reactos/dll/cpl/powercfg/lang/cs-CZ.rc
reactos/dll/cpl/powercfg/lang/de-DE.rc
reactos/dll/cpl/powercfg/lang/el-GR.rc
reactos/dll/cpl/powercfg/lang/en-US.rc
reactos/dll/cpl/powercfg/lang/es-ES.rc
reactos/dll/cpl/powercfg/lang/fr-FR.rc
reactos/dll/cpl/powercfg/lang/he-IL.rc
reactos/dll/cpl/powercfg/lang/id-ID.rc
reactos/dll/cpl/powercfg/lang/it-IT.rc
reactos/dll/cpl/powercfg/lang/ja-JP.rc
reactos/dll/cpl/powercfg/lang/nl-NL.rc
reactos/dll/cpl/powercfg/lang/no-NO.rc
reactos/dll/cpl/powercfg/lang/pl-PL.rc
reactos/dll/cpl/powercfg/lang/ro-RO.rc
reactos/dll/cpl/powercfg/lang/ru-RU.rc
reactos/dll/cpl/powercfg/lang/sk-SK.rc
reactos/dll/cpl/powercfg/lang/sq-AL.rc
reactos/dll/cpl/powercfg/lang/th-TH.rc
reactos/dll/cpl/powercfg/lang/tr-TR.rc
reactos/dll/cpl/powercfg/lang/uk-UA.rc
reactos/dll/cpl/powercfg/lang/zh-CN.rc
reactos/dll/cpl/powercfg/lang/zh-TW.rc
reactos/dll/cpl/powercfg/powercfg.h
reactos/dll/cpl/powercfg/resource.h

index 689cd3f..665905f 100644 (file)
@@ -18,6 +18,6 @@ add_library(powercfg SHARED
     ${CMAKE_CURRENT_BINARY_DIR}/powercfg.def)
 
 set_module_type(powercfg cpl UNICODE)
-add_importlibs(powercfg user32 powrprof comctl32 shell32 advapi32 msvcrt kernel32 ntdll)
+add_importlibs(powercfg user32 powrprof comctl32 shell32 advapi32 msvcrt kernel32 ntdll shlwapi)
 add_pch(powercfg powercfg.h SOURCE)
 add_cd_file(TARGET powercfg DESTINATION reactos/system32 FOR all)
index 221b9b9..1310cc8 100644 (file)
@@ -20,8 +20,8 @@ Hib_InitDialog(HWND hwndDlg)
 {
     SYSTEM_POWER_CAPABILITIES PowerCaps;
     MEMORYSTATUSEX msex;
-    TCHAR szSize[MAX_PATH];
     TCHAR szTemp[MAX_PATH];
+    LPTSTR lpRoot;
     ULARGE_INTEGER FreeBytesAvailable, TotalNumberOfBytes, TotalNumberOfFreeBytes;
 
     if (GetPwrCapabilities(&PowerCaps))
@@ -37,49 +37,21 @@ Hib_InitDialog(HWND hwndDlg)
         }
 
         if (GetWindowsDirectory(szTemp,MAX_PATH))
-        {
-            if (!GetDiskFreeSpaceEx(szTemp,&FreeBytesAvailable, &TotalNumberOfBytes, &TotalNumberOfFreeBytes))
-                TotalNumberOfFreeBytes.QuadPart = 0;
-        }
+            lpRoot = szTemp;
         else
-        {
-            if (!GetDiskFreeSpaceEx(NULL,&FreeBytesAvailable, &TotalNumberOfBytes, &TotalNumberOfFreeBytes))
-                TotalNumberOfFreeBytes.QuadPart = 0;
-        }
+            lpRoot = NULL;
 
-        if (TotalNumberOfFreeBytes.QuadPart > 0x100000)
-        {
-            if (LoadString(hApplet, IDS_SIZEMB, szTemp, MAX_PATH))
-            {
-                _stprintf(szSize,szTemp,TotalNumberOfFreeBytes.QuadPart / 0x100000);
-                SetDlgItemText(hwndDlg, IDC_FREESPACE, szSize);
-            }
-        }
-        else
-        {
-            if (LoadString(hApplet, IDS_SIZEBYTS, szTemp, MAX_PATH))
-            {
-                _stprintf(szSize,szTemp,TotalNumberOfFreeBytes.QuadPart);
-                SetDlgItemText(hwndDlg, IDC_FREESPACE, szSize);
-            }
-        }
+        // Get available space and size of selected volume.
+        if (!GetDiskFreeSpaceEx(lpRoot, &FreeBytesAvailable, &TotalNumberOfBytes, &TotalNumberOfFreeBytes))
+            TotalNumberOfFreeBytes.QuadPart = 0;
 
-        if (msex.ullTotalPhys>0x100000)
-        {
-            if (LoadString(hApplet, IDS_SIZEMB, szTemp, MAX_PATH))
-            {
-                _stprintf(szSize,szTemp,msex.ullTotalPhys/0x100000);
-                SetDlgItemText(hwndDlg, IDC_SPACEFORHIBERNATEFILE,szSize);
-            }
-        }
-        else
-        {
-            if (LoadString(hApplet, IDS_SIZEBYTS, szTemp, MAX_PATH))
-            {
-                _stprintf(szSize,szTemp,msex.ullTotalPhys);
-                SetDlgItemText(hwndDlg, IDC_SPACEFORHIBERNATEFILE, szSize);
-            }
-        }
+        // Print the free available space into selected volume.
+        StrFormatByteSize(TotalNumberOfFreeBytes.QuadPart, szTemp, _countof(szTemp));
+        SetDlgItemText(hwndDlg, IDC_FREESPACE, szTemp);
+
+        // Print the amount of space required for hibernation.
+        StrFormatByteSize(msex.ullTotalPhys, szTemp, _countof(szTemp));
+        SetDlgItemText(hwndDlg, IDC_SPACEFORHIBERNATEFILE, szTemp);
 
         if (TotalNumberOfFreeBytes.QuadPart < msex.ullTotalPhys && !PowerCaps.HiberFilePresent)
         {
index 1808138..dddf3da 100644 (file)
@@ -110,8 +110,6 @@ BEGIN
     IDS_TEXT "Текст"
     IDS_CONFIG1 "Настройки за захранваща наредба %1"
     IDS_CONFIG2 "Разширени настройки за %1"
-    IDS_SIZEBYTS "%i байта"
-    IDS_SIZEMB "%i МБ"
     IDS_NOACTION "Не прави нищо"
     IDS_PowerActionNone1 "Бездействие"
     IDS_PowerActionUnknown "Неизвестно"
index 5c12636..0c57d0c 100644 (file)
@@ -110,8 +110,6 @@ BEGIN
     IDS_TEXT "Text"
     IDS_CONFIG1 "Nastavení pro schéma napájení %1"
     IDS_CONFIG2 "Pokročilá nastavení pro %1"
-    IDS_SIZEBYTS "%i bytů"
-    IDS_SIZEMB "%i MB"
     IDS_NOACTION "Nedělat nic"
     IDS_PowerActionNone1 "Žádná akce"
     IDS_PowerActionUnknown "Neznámý"
index bf79178..cf2fccb 100644 (file)
@@ -112,8 +112,6 @@ BEGIN
     IDS_TEXT "Text"
     IDS_CONFIG1 "Einstellungen für Energieschema %s."
     IDS_CONFIG2 "Erweiterte Einstellungen für %s."
-    IDS_SIZEBYTS "%i Bytes"
-    IDS_SIZEMB "%i MB"
     IDS_NOACTION "Nichts unternehmen"
     IDS_PowerActionNone1 "Keine Aktion"
     IDS_PowerActionUnknown "Unbekannt"
index f140048..f58ee9a 100644 (file)
@@ -112,8 +112,6 @@ BEGIN
     IDS_TEXT "Κείμενο"
     IDS_CONFIG1 "Ρυθμίσεις του συνδιασμού τροφοδοσίας %1"
     IDS_CONFIG2 "Ειδικές ρυθμίσεις του συνδιασμού %1"
-    IDS_SIZEBYTS "%i bytes"
-    IDS_SIZEMB "%i MB"
     IDS_NOACTION "Καμία ενέργεια"
     IDS_PowerActionNone1 "Να μη γίνεται καμία ενέργεια"
     IDS_PowerActionUnknown "Unknown"
index bd6e68a..baf781d 100644 (file)
@@ -110,8 +110,6 @@ BEGIN
     IDS_TEXT "Text"
     IDS_CONFIG1 "Settings for %1 power scheme"
     IDS_CONFIG2 "Advanced settings for %1"
-    IDS_SIZEBYTS "%i bytes"
-    IDS_SIZEMB "%i MB"
     IDS_NOACTION "Do nothing"
     IDS_PowerActionNone1 "No action"
     IDS_PowerActionUnknown "Unknown"
index 3ab48d1..4c86a41 100644 (file)
@@ -112,8 +112,6 @@ BEGIN
     IDS_TEXT "Texto"
     IDS_CONFIG1 "Configuración para la combinación de energía %1"
     IDS_CONFIG2 "Opciones avanzadas para %1"
-    IDS_SIZEBYTS "%i bytes"
-    IDS_SIZEMB "%i MB"
     IDS_NOACTION "No hacer nada"
     IDS_PowerActionNone1 "No hacer nada"
     IDS_PowerActionUnknown "desconocido"
index 4357790..f305443 100644 (file)
@@ -112,8 +112,6 @@ BEGIN
     IDS_TEXT "Texte"
     IDS_CONFIG1 "Réglages pour le profil d'alimentation %1"
     IDS_CONFIG2 "Réglages avancés pour %1"
-    IDS_SIZEBYTS "%i octets"
-    IDS_SIZEMB "%i Mo"
     IDS_NOACTION "Ne rien faire"
     IDS_PowerActionNone1 "Pas d'action"
     IDS_PowerActionUnknown "Inconnue"
index f7ade1f..0d52f75 100644 (file)
@@ -112,8 +112,6 @@ BEGIN
     IDS_TEXT "טקסט"
     IDS_CONFIG1 "Settings for %1 power scheme"
     IDS_CONFIG2 "אפשרויות מתקדמות ל %1"
-    IDS_SIZEBYTS "%i בית"
-    IDS_SIZEMB "%i MB"
     IDS_NOACTION "אל תעשה דבר"
     IDS_PowerActionNone1 "שום פעולה"
     IDS_PowerActionUnknown "לא ידוע"
index 208f0ae..dbdc292 100644 (file)
@@ -112,8 +112,6 @@ BEGIN
     IDS_TEXT "Teks"
     IDS_CONFIG1 "Menyetel untuk %1 skema tenaga"
     IDS_CONFIG2 "Setelan Lanjutan untuk %1"
-    IDS_SIZEBYTS "%i byte"
-    IDS_SIZEMB "%i MB"
     IDS_NOACTION "Tidak melakukan apapun"
     IDS_PowerActionNone1 "Tidak ada aksi"
     IDS_PowerActionUnknown "Tidak dikenal"
index 7f483c9..624608a 100644 (file)
@@ -110,8 +110,6 @@ BEGIN
     IDS_TEXT "Testo"
     IDS_CONFIG1 "Impostazioni per lo schema %1 "
     IDS_CONFIG2 "Impostazioni avanzate per %1"
-    IDS_SIZEBYTS "%i bytes"
-    IDS_SIZEMB "%i MB"
     IDS_NOACTION "Nessuna azione"
     IDS_PowerActionNone1 "Nessuna azione"
     IDS_PowerActionUnknown "Sconosciuto"
index 4ae28cf..5941dd8 100644 (file)
@@ -112,8 +112,6 @@ BEGIN
     IDS_TEXT "テキスト"
     IDS_CONFIG1 "[%1] の電源設定"
     IDS_CONFIG2 "%1の詳細設定"
-    IDS_SIZEBYTS "%i バイト"
-    IDS_SIZEMB "%i MB"
     IDS_NOACTION "何もしない"
     IDS_PowerActionNone1 "何もしない"
     IDS_PowerActionUnknown "不明"
index a0d123f..695f721 100644 (file)
@@ -110,8 +110,6 @@ BEGIN
     IDS_TEXT "Text"
     IDS_CONFIG1 "Settings for %1 power scheme"
     IDS_CONFIG2 "Advanced settings for %1"
-    IDS_SIZEBYTS "%i bytes"
-    IDS_SIZEMB "%i MB"
     IDS_NOACTION "Doe niets"
     IDS_PowerActionNone1 "Geen actie"
     IDS_PowerActionUnknown "Onbekend"
index fdec722..bec680d 100644 (file)
@@ -112,8 +112,6 @@ BEGIN
     IDS_TEXT "Tekst"
     IDS_CONFIG1 "Innstillinger for %1 strømplan"
     IDS_CONFIG2 "Avanserte innstillinger for %1"
-    IDS_SIZEBYTS "%i byte"
-    IDS_SIZEMB "%i MB"
     IDS_NOACTION "Ikke gjør noe"
     IDS_PowerActionNone1 "Ingen handling"
     IDS_PowerActionUnknown "Ukjent"
index 7b7d523..021ebd5 100644 (file)
@@ -118,8 +118,6 @@ BEGIN
     IDS_TEXT "Tekst"
     IDS_CONFIG1 "Ustawienia dla schematu %1"
     IDS_CONFIG2 "Zaawansowane ustawienia dla %1"
-    IDS_SIZEBYTS "%i bajtów"
-    IDS_SIZEMB "%i MB"
     IDS_NOACTION "Nie rób nic"
     IDS_PowerActionNone1 "Brak akcji"
     IDS_PowerActionUnknown "Nieznana"
index 66ddefd..70a5693 100644 (file)
@@ -115,8 +115,6 @@ BEGIN
     IDS_TEXT "text"
     IDS_CONFIG1 "Configurare regim %1"
     IDS_CONFIG2 "Opțiuni avansate pentru %1"
-    IDS_SIZEBYTS "%i octeți"
-    IDS_SIZEMB "%i Mo"
     IDS_NOACTION "nespecificată"
     IDS_PowerActionNone1 "acțiune nespecificată"
     IDS_PowerActionUnknown "acțiune necunoscută"
index 6275ad0..f4b2fc3 100644 (file)
@@ -112,8 +112,6 @@ BEGIN
     IDS_TEXT "Текст"
     IDS_CONFIG1 "Параметры схемы %1"
     IDS_CONFIG2 "Дополнительные параметры схемы %1"
-    IDS_SIZEBYTS "%i байт"
-    IDS_SIZEMB "%i МБ"
     IDS_NOACTION "Не делать ничего"
     IDS_PowerActionNone1 "Действие не требуется"
     IDS_PowerActionUnknown "Нет данных"
index bc4f660..bfa0836 100644 (file)
@@ -118,8 +118,6 @@ BEGIN
     IDS_TEXT "Text"
     IDS_CONFIG1 "Nastavenie pre schému napájania %1"
     IDS_CONFIG2 "Rozšírené nastavenie pre %1"
-    IDS_SIZEBYTS "%i bajtov"
-    IDS_SIZEMB "%i MB"
     IDS_NOACTION "Do nothing"
     IDS_PowerActionNone1 "No action"
     IDS_PowerActionUnknown "Neznáme"
index 7245d9b..f325416 100644 (file)
@@ -115,8 +115,6 @@ BEGIN
     IDS_TEXT "Teksti"
     IDS_CONFIG1 "Konfigurimet për %1 skema energjise"
     IDS_CONFIG2 "Konfigurimet Avancuara për %1"
-    IDS_SIZEBYTS "%i bytes"
-    IDS_SIZEMB "%i MB"
     IDS_NOACTION "Mos bëj gjë"
     IDS_PowerActionNone1 "Asnjë veprim"
     IDS_PowerActionUnknown "i panjohur"
index 287c1a3..86676b2 100644 (file)
@@ -110,8 +110,6 @@ BEGIN
     IDS_TEXT "ข้อความ"
     IDS_CONFIG1 "ตั้งค่าให้กับ %1 ค่าพลังงาน"
     IDS_CONFIG2 "การตั้งค่าแบบขั้นสูงเป็น %1"
-    IDS_SIZEBYTS "%i bytes"
-    IDS_SIZEMB "%i MB"
     IDS_NOACTION "ไม่เปลี่ยนค่า"
     IDS_PowerActionNone1 "ไม่เปลี่ยนค่า"
     IDS_PowerActionUnknown "ไม่ทราบ"
index a674bd6..62197a6 100644 (file)
@@ -112,8 +112,6 @@ BEGIN
     IDS_TEXT "Metin"
     IDS_CONFIG1 "%1 Güç Düzeni İçin Ayarlar"
     IDS_CONFIG2 "%1 İçin Gelişmiş Ayarlar"
-    IDS_SIZEBYTS "%i Çoklu"
-    IDS_SIZEMB "%i MB"
     IDS_NOACTION "Bir Şey Yapma"
     IDS_PowerActionNone1 "Eylem Yok"
     IDS_PowerActionUnknown "Bilinmiyor"
index 999152c..a2f3a9d 100644 (file)
@@ -118,8 +118,6 @@ BEGIN
     IDS_TEXT "Текст"
     IDS_CONFIG1 "Налаштування схеми живлення %1"
     IDS_CONFIG2 "Додаткові налаштування для %1"
-    IDS_SIZEBYTS "%i байт"
-    IDS_SIZEMB "%i МБ"
     IDS_NOACTION "Не робити нічого"
     IDS_PowerActionNone1 "Дія не потрібна"
     IDS_PowerActionUnknown "Немає даних"
index 33fe4e3..d079339 100644 (file)
@@ -112,8 +112,6 @@ BEGIN
     IDS_TEXT "文本"
     IDS_CONFIG1 "为 %i 设置电源使用方案"
     IDS_CONFIG2 "%i 的高级设置"
-    IDS_SIZEBYTS "%i 字节"
-    IDS_SIZEMB "%i MB"
     IDS_NOACTION "无操作"
     IDS_PowerActionNone1 "无动作"
     IDS_PowerActionUnknown "未知"
index a0ea599..51590e7 100644 (file)
@@ -112,8 +112,6 @@ BEGIN
     IDS_TEXT "文本"
     IDS_CONFIG1 "爲 %i 設置電源使用方案"
     IDS_CONFIG2 "%i 的高級設置"
-    IDS_SIZEBYTS "%i 字節"
-    IDS_SIZEMB "%i MB"
     IDS_NOACTION "無操作"
     IDS_PowerActionNone1 "無動作"
     IDS_PowerActionUnknown "未知"
index f084963..16e0e18 100644 (file)
 #define WIN32_NO_STATUS
 #include <windef.h>
 #include <winbase.h>
+#include <winreg.h>
 #include <cpl.h>
 #include <tchar.h>
 #include <shlobj.h>
+#include <shlwapi.h>
 #include <powrprof.h>
 
 #include "resource.h"
index 614dde2..27146fe 100644 (file)
@@ -9,15 +9,15 @@
 #define ICONSIZE         16
 
 /* IDs */
-#define IDC_CPLICON_1 1
+
+/* Set default to IDI_AC */
+#define IDC_CPLICON_1 IDI_AC
 
 #define IDS_PROCENT  49
 #define IDS_SOUND    50
 #define IDS_TEXT     51
 #define IDS_CONFIG1  53
 #define IDS_CONFIG2  54
-#define IDS_SIZEBYTS 55
-#define IDS_SIZEMB   56
 
 #define IDD_PROPPAGEPOWERSHEMES 70
 #define IDD_PROPPAGEALARMS      71