https://git.reactos.org/?p=reactos.git;a=commitdiff;h=1f2b7e5a5628c9c1a34bfc2dab172f538a5cd9ce

commit 1f2b7e5a5628c9c1a34bfc2dab172f538a5cd9ce
Author:     Thamatip Chitpong <tangaming123...@outlook.com>
AuthorDate: Sun Sep 25 20:46:30 2022 +0700
Commit:     GitHub <nore...@github.com>
CommitDate: Sun Sep 25 16:46:30 2022 +0300

    [MMSYS] Fix "Speaker settings" image transparency (#4716)
    
    - Use 72x72 icon instead of a bitmap
    - Use correct control position and size for IDC_SPEAKIMG
    - VolumeDlgProc: Add NULL check for DestroyIcon and fix cleanup order
    
    Addendum to 781c247b.
---
 dll/cpl/mmsys/lang/bg-BG.rc         |   2 +-
 dll/cpl/mmsys/lang/cs-CZ.rc         |   2 +-
 dll/cpl/mmsys/lang/de-DE.rc         |   2 +-
 dll/cpl/mmsys/lang/el-GR.rc         |   2 +-
 dll/cpl/mmsys/lang/en-US.rc         |   2 +-
 dll/cpl/mmsys/lang/es-ES.rc         |   2 +-
 dll/cpl/mmsys/lang/fr-FR.rc         |   2 +-
 dll/cpl/mmsys/lang/he-IL.rc         |   2 +-
 dll/cpl/mmsys/lang/id-ID.rc         |   2 +-
 dll/cpl/mmsys/lang/it-IT.rc         |   2 +-
 dll/cpl/mmsys/lang/ja-JP.rc         |   2 +-
 dll/cpl/mmsys/lang/nl-NL.rc         |   2 +-
 dll/cpl/mmsys/lang/no-NO.rc         |   2 +-
 dll/cpl/mmsys/lang/pl-PL.rc         |   2 +-
 dll/cpl/mmsys/lang/pt-BR.rc         |   2 +-
 dll/cpl/mmsys/lang/pt-PT.rc         |   2 +-
 dll/cpl/mmsys/lang/ro-RO.rc         |   2 +-
 dll/cpl/mmsys/lang/ru-RU.rc         |   2 +-
 dll/cpl/mmsys/lang/sk-SK.rc         |   2 +-
 dll/cpl/mmsys/lang/sq-AL.rc         |   2 +-
 dll/cpl/mmsys/lang/tr-TR.rc         |   2 +-
 dll/cpl/mmsys/lang/uk-UA.rc         |   2 +-
 dll/cpl/mmsys/lang/zh-CN.rc         |   2 +-
 dll/cpl/mmsys/lang/zh-HK.rc         |   2 +-
 dll/cpl/mmsys/lang/zh-TW.rc         |   2 +-
 dll/cpl/mmsys/mmsys.rc              |   3 +-
 dll/cpl/mmsys/resource.h            |   2 +-
 dll/cpl/mmsys/resources/speaker.bmp | Bin 14896 -> 0 bytes
 dll/cpl/mmsys/resources/speaker.ico | Bin 0 -> 32366 bytes
 dll/cpl/mmsys/volume.c              |  87 ++++++++++++------------------------
 30 files changed, 56 insertions(+), 86 deletions(-)

diff --git a/dll/cpl/mmsys/lang/bg-BG.rc b/dll/cpl/mmsys/lang/bg-BG.rc
index 93d04883c84..b9a00488a61 100644
--- a/dll/cpl/mmsys/lang/bg-BG.rc
+++ b/dll/cpl/mmsys/lang/bg-BG.rc
@@ -16,7 +16,7 @@ BEGIN
     AUTOCHECKBOX "Поставяне на &значе за звука в задачната лента", 
IDC_ICON_IN_TASKBAR, 50, 92, 180, 10
     PUSHBUTTON "Разш&ирени...", IDC_ADVANCED_BTN, 154, 105, 80, 15
     GROUPBOX "Настройки на говорителя", IDC_SPEAKER_SET_BTN, 7, 140, 230, 80, 
WS_GROUP
-    CONTROL "", IDC_SPEAKIMG, "Static", SS_OWNERDRAW, 4, 155, 70, 70
+    CONTROL "", IDC_SPEAKIMG, "Static", SS_OWNERDRAW, 15, 155, 48, 45
     LTEXT "Чрез долните настройки можете да укажете силата и други свойства на 
всеки говорител поотделно.", -1, 70, 155, 150, 36
     PUSHBUTTON "Сила на &говорителя...", IDC_SPEAKER_VOL_BTN, 72, 195, 80, 15
     PUSHBUTTON "Раз&ширени...", IDC_ADVANCED2_BTN, 154, 195, 80, 15
diff --git a/dll/cpl/mmsys/lang/cs-CZ.rc b/dll/cpl/mmsys/lang/cs-CZ.rc
index c6e132ace81..4267f92b072 100644
--- a/dll/cpl/mmsys/lang/cs-CZ.rc
+++ b/dll/cpl/mmsys/lang/cs-CZ.rc
@@ -21,7 +21,7 @@ BEGIN
     AUTOCHECKBOX "Umístit &ikonu hlasitosti na panel úloh", 
IDC_ICON_IN_TASKBAR, 50, 92, 140, 10
     PUSHBUTTON "&Upřesnit...", IDC_ADVANCED_BTN, 150, 105, 75, 15
     GROUPBOX "Nastavení reproduktorů", IDC_SPEAKER_SET_BTN, 7, 140, 230, 80, 
WS_GROUP
-    CONTROL "", IDC_SPEAKIMG, "Static", SS_OWNERDRAW, 4, 155, 70, 70
+    CONTROL "", IDC_SPEAKIMG, "Static", SS_OWNERDRAW, 15, 155, 48, 45
     LTEXT "Nastavení níže lze použít ke změnění hlasitosti jednotlivých 
reproduktorů a dalších nastavení.", -1, 70, 155, 150, 36
     PUSHBUTTON "&Hlasitost reproduktorů...", IDC_SPEAKER_VOL_BTN, 70, 195, 75, 
15
     PUSHBUTTON "U&přesnit...", IDC_ADVANCED2_BTN, 150, 195, 75, 15
diff --git a/dll/cpl/mmsys/lang/de-DE.rc b/dll/cpl/mmsys/lang/de-DE.rc
index 95a2492daac..5de5457beb2 100644
--- a/dll/cpl/mmsys/lang/de-DE.rc
+++ b/dll/cpl/mmsys/lang/de-DE.rc
@@ -16,7 +16,7 @@ BEGIN
     AUTOCHECKBOX "Lautstärkeregelungs-&Icon in der Taskleiste zeigen", 
IDC_ICON_IN_TASKBAR, 50, 92, 170, 10
     PUSHBUTTON "Er&weitert", IDC_ADVANCED_BTN, 150, 105, 75, 15
     GROUPBOX "Lautsprechereinstellungen", IDC_SPEAKER_SET_BTN, 7, 140, 230, 
80, WS_GROUP
-    CONTROL "", IDC_SPEAKIMG, "Static", SS_OWNERDRAW, 4, 155, 70, 70
+    CONTROL "", IDC_SPEAKIMG, "Static", SS_OWNERDRAW, 15, 155, 48, 45
     LTEXT "Verwenden Sie die unteren Einstellungen um die Lautstärke einzelner 
Geräte und andere Einstellungen zu verändern.", -1, 70, 155, 150, 36
     PUSHBUTTON "&Lautstärke...", IDC_SPEAKER_VOL_BTN, 70, 195, 75, 15
     PUSHBUTTON "E&rweitert...", IDC_ADVANCED2_BTN, 150, 195, 75, 15
diff --git a/dll/cpl/mmsys/lang/el-GR.rc b/dll/cpl/mmsys/lang/el-GR.rc
index 3976d3c4365..0d13de812dc 100644
--- a/dll/cpl/mmsys/lang/el-GR.rc
+++ b/dll/cpl/mmsys/lang/el-GR.rc
@@ -16,7 +16,7 @@ BEGIN
     AUTOCHECKBOX "Place volume &icon in the taskbar", IDC_ICON_IN_TASKBAR, 50, 
92, 140, 10
     PUSHBUTTON "Ad&vanced...", IDC_ADVANCED_BTN, 150, 105, 75, 15
     GROUPBOX "Speaker settings", IDC_SPEAKER_SET_BTN, 7, 140, 230, 80, WS_GROUP
-    CONTROL "", IDC_SPEAKIMG, "Static", SS_OWNERDRAW, 4, 155, 70, 70
+    CONTROL "", IDC_SPEAKIMG, "Static", SS_OWNERDRAW, 15, 155, 48, 45
     LTEXT "Use the settings below to change individual speaker volume and 
other settings.", -1, 70, 155, 150, 36
     PUSHBUTTON "&Speaker Volume...", IDC_SPEAKER_VOL_BTN, 70, 195, 75, 15
     PUSHBUTTON "A&dvanced...", IDC_ADVANCED2_BTN, 150, 195, 75, 15
diff --git a/dll/cpl/mmsys/lang/en-US.rc b/dll/cpl/mmsys/lang/en-US.rc
index 4f0742b0d26..338eb6a7843 100644
--- a/dll/cpl/mmsys/lang/en-US.rc
+++ b/dll/cpl/mmsys/lang/en-US.rc
@@ -16,7 +16,7 @@ BEGIN
     AUTOCHECKBOX "Place volume &icon in the taskbar", IDC_ICON_IN_TASKBAR, 50, 
92, 140, 10
     PUSHBUTTON "Ad&vanced...", IDC_ADVANCED_BTN, 150, 105, 75, 15
     GROUPBOX "Speaker settings", IDC_SPEAKER_SET_BTN, 7, 140, 230, 80, WS_GROUP
-    CONTROL "", IDC_SPEAKIMG, "Static", SS_OWNERDRAW, 4, 155, 70, 70
+    CONTROL "", IDC_SPEAKIMG, "Static", SS_OWNERDRAW, 15, 155, 48, 45
     LTEXT "Use the settings below to change individual speaker volume and 
other settings.", -1, 70, 155, 150, 36
     PUSHBUTTON "&Speaker Volume...", IDC_SPEAKER_VOL_BTN, 70, 195, 75, 15
     PUSHBUTTON "A&dvanced...", IDC_ADVANCED2_BTN, 150, 195, 75, 15
diff --git a/dll/cpl/mmsys/lang/es-ES.rc b/dll/cpl/mmsys/lang/es-ES.rc
index 9f93c3cfaec..04f50ba4545 100644
--- a/dll/cpl/mmsys/lang/es-ES.rc
+++ b/dll/cpl/mmsys/lang/es-ES.rc
@@ -16,7 +16,7 @@ BEGIN
     AUTOCHECKBOX "Colocar un icono de volumen en la &barra de tareas", 
IDC_ICON_IN_TASKBAR, 30, 92, 180, 10
     PUSHBUTTON "Propiedades avan&zadas...", IDC_ADVANCED_BTN, 140, 105, 88, 15
     GROUPBOX "Configuración del altavoz ", IDC_SPEAKER_SET_BTN, 7, 140, 230, 
80, WS_GROUP
-    CONTROL "", IDC_SPEAKIMG, "Static", SS_OWNERDRAW, 4, 155, 70, 70
+    CONTROL "", IDC_SPEAKIMG, "Static", SS_OWNERDRAW, 15, 155, 48, 45
     LTEXT "Utilice esta configuración para cambiar el volumen del altavoz y 
otras configuraciones.", -1, 70, 155, 150, 36
     PUSHBUTTON "Vol&umen de altavoz...", IDC_SPEAKER_VOL_BTN, 60, 195, 75, 15
     PUSHBUTTON "Propiedades &avanzadas...", IDC_ADVANCED2_BTN, 140, 195, 88, 15
diff --git a/dll/cpl/mmsys/lang/fr-FR.rc b/dll/cpl/mmsys/lang/fr-FR.rc
index 7180c2a6615..8bdb742709f 100644
--- a/dll/cpl/mmsys/lang/fr-FR.rc
+++ b/dll/cpl/mmsys/lang/fr-FR.rc
@@ -16,7 +16,7 @@ BEGIN
     AUTOCHECKBOX "Placer une icône du volume dans la barre de tâches", 
IDC_ICON_IN_TASKBAR, 50, 92, 175, 10
     PUSHBUTTON "A&vancé...", IDC_ADVANCED_BTN, 150, 105, 75, 15
     GROUPBOX "Paramètres des enceintes", IDC_SPEAKER_SET_BTN, 7, 140, 230, 80, 
WS_GROUP
-    CONTROL "", IDC_SPEAKIMG, "Static", SS_OWNERDRAW, 4, 155, 70, 70
+    CONTROL "", IDC_SPEAKIMG, "Static", SS_OWNERDRAW, 15, 155, 48, 45
     LTEXT "Utilisez les paramètres ci-dessous pour changer le volume de chaque 
enceinte et modifier d'autres réglagles.", -1, 70, 155, 150, 36
     PUSHBUTTON "Volume des enceinte&s...", IDC_SPEAKER_VOL_BTN, 60, 195, 85, 15
     PUSHBUTTON "A&vancé...", IDC_ADVANCED2_BTN, 150, 195, 75, 15
diff --git a/dll/cpl/mmsys/lang/he-IL.rc b/dll/cpl/mmsys/lang/he-IL.rc
index c98f19992e4..0c5b8059048 100644
--- a/dll/cpl/mmsys/lang/he-IL.rc
+++ b/dll/cpl/mmsys/lang/he-IL.rc
@@ -18,7 +18,7 @@ BEGIN
     AUTOCHECKBOX "שים סמל עוצמה בשורת המשימות", IDC_ICON_IN_TASKBAR, 50, 92, 
140, 10
     PUSHBUTTON "מתקדם...", IDC_ADVANCED_BTN, 150, 105, 75, 15
     GROUPBOX "הגדרות רמקולים", IDC_SPEAKER_SET_BTN, 7, 140, 230, 80, WS_GROUP
-    CONTROL "", IDC_SPEAKIMG, "Static", SS_OWNERDRAW, 4, 155, 70, 70
+    CONTROL "", IDC_SPEAKIMG, "Static", SS_OWNERDRAW, 15, 155, 48, 45
     LTEXT "Use the settings below to change individual speaker volume and 
other settings.", -1, 70, 155, 150, 36
     PUSHBUTTON "עוצמת רמקולים...", IDC_SPEAKER_VOL_BTN, 70, 195, 75, 15
     PUSHBUTTON "מתקדם...", IDC_ADVANCED2_BTN, 150, 195, 75, 15
diff --git a/dll/cpl/mmsys/lang/id-ID.rc b/dll/cpl/mmsys/lang/id-ID.rc
index 2035718dd68..7737bb9942e 100644
--- a/dll/cpl/mmsys/lang/id-ID.rc
+++ b/dll/cpl/mmsys/lang/id-ID.rc
@@ -16,7 +16,7 @@ BEGIN
     AUTOCHECKBOX "Tempatkan i&kon volume pada bilah tugas", 
IDC_ICON_IN_TASKBAR, 50, 92, 140, 10
     PUSHBUTTON "&Tingkat Lanjut...", IDC_ADVANCED_BTN, 150, 105, 75, 15
     GROUPBOX "Pengaturan pengeras suara", IDC_SPEAKER_SET_BTN, 7, 140, 230, 
80, WS_GROUP
-    CONTROL "", IDC_SPEAKIMG, "Static", SS_OWNERDRAW, 4, 155, 70, 70
+    CONTROL "", IDC_SPEAKIMG, "Static", SS_OWNERDRAW, 15, 155, 48, 45
     LTEXT "Gunakan pengaturan di bawah untuk mengubah volume masing-masing 
pengeras suara dan pengaturan lainnya.", -1, 70, 155, 150, 36
     PUSHBUTTON "Volume &Pengeras Suara...", IDC_SPEAKER_VOL_BTN, 70, 195, 75, 
15
     PUSHBUTTON "Tingkat La&njut...", IDC_ADVANCED2_BTN, 150, 195, 75, 15
diff --git a/dll/cpl/mmsys/lang/it-IT.rc b/dll/cpl/mmsys/lang/it-IT.rc
index 36e8890675f..fe60d3b85e6 100644
--- a/dll/cpl/mmsys/lang/it-IT.rc
+++ b/dll/cpl/mmsys/lang/it-IT.rc
@@ -16,7 +16,7 @@ BEGIN
     AUTOCHECKBOX "Mettere l'icona del &volume nella barra dei task", 
IDC_ICON_IN_TASKBAR, 50, 92, 140, 10
     PUSHBUTTON "&Avanzate...", IDC_ADVANCED_BTN, 150, 105, 75, 15
     GROUPBOX "Impostazione altoparlanti", IDC_SPEAKER_SET_BTN, 7, 140, 230, 
80, WS_GROUP
-    CONTROL "", IDC_SPEAKIMG, "Static", SS_OWNERDRAW, 4, 155, 70, 70
+    CONTROL "", IDC_SPEAKIMG, "Static", SS_OWNERDRAW, 15, 155, 48, 45
     LTEXT "Usare le impostazioni seguenti per modificare per i singoli 
altoparlanti il volume ed altre impostazioni.", -1, 70, 155, 150, 36
     PUSHBUTTON "Volume...", IDC_SPEAKER_VOL_BTN, 70, 195, 75, 15
     PUSHBUTTON "A&vanzate...", IDC_ADVANCED2_BTN, 150, 195, 75, 15
diff --git a/dll/cpl/mmsys/lang/ja-JP.rc b/dll/cpl/mmsys/lang/ja-JP.rc
index 55b6bbea673..a29e91705e7 100644
--- a/dll/cpl/mmsys/lang/ja-JP.rc
+++ b/dll/cpl/mmsys/lang/ja-JP.rc
@@ -16,7 +16,7 @@ BEGIN
     AUTOCHECKBOX "タスクバーに音量アイコンを置く(&I)", IDC_ICON_IN_TASKBAR, 50, 92, 140, 10
     PUSHBUTTON "上級者向け(&V)...", IDC_ADVANCED_BTN, 150, 105, 75, 15
     GROUPBOX "スピーカーの設定", IDC_SPEAKER_SET_BTN, 7, 140, 230, 80, WS_GROUP
-    CONTROL "", IDC_SPEAKIMG, "Static", SS_OWNERDRAW, 4, 155, 70, 70
+    CONTROL "", IDC_SPEAKIMG, "Static", SS_OWNERDRAW, 15, 155, 48, 45
     LTEXT "個別のスピーカーの音量やその他の設定を変更するために下の設定をお使い下さい。", -1, 70, 155, 150, 36
     PUSHBUTTON "スピーカー音量(&S)...", IDC_SPEAKER_VOL_BTN, 70, 195, 75, 15
     PUSHBUTTON "上級者向け(&D)...", IDC_ADVANCED2_BTN, 150, 195, 75, 15
diff --git a/dll/cpl/mmsys/lang/nl-NL.rc b/dll/cpl/mmsys/lang/nl-NL.rc
index b63fa6cef3f..78c058ff078 100644
--- a/dll/cpl/mmsys/lang/nl-NL.rc
+++ b/dll/cpl/mmsys/lang/nl-NL.rc
@@ -16,7 +16,7 @@ BEGIN
     AUTOCHECKBOX "P&ictogram voor het volume in het systeemvak plaatsen", 
IDC_ICON_IN_TASKBAR, 25, 92, 190, 10
     PUSHBUTTON "Ge&avanceerd...", IDC_ADVANCED_BTN, 150, 105, 75, 15
     GROUPBOX "Luidsprekerinstellingen", IDC_SPEAKER_SET_BTN, 7, 140, 230, 80, 
WS_GROUP
-    CONTROL "", IDC_SPEAKIMG, "Static", SS_OWNERDRAW, 4, 155, 70, 70
+    CONTROL "", IDC_SPEAKIMG, "Static", SS_OWNERDRAW, 15, 155, 48, 45
     LTEXT "Met de onderstaande knoppen kunt u het\nvolume en andere 
instellingen van de\nluidsprekers wijzigen.", -1, 70, 155, 150, 36
     PUSHBUTTON "&Luidsprekervolume..", IDC_SPEAKER_VOL_BTN, 70, 195, 75, 15
     PUSHBUTTON "&Geavanceerd...", IDC_ADVANCED2_BTN, 150, 195, 75, 15
diff --git a/dll/cpl/mmsys/lang/no-NO.rc b/dll/cpl/mmsys/lang/no-NO.rc
index 89e32235c9e..b18371eed6c 100644
--- a/dll/cpl/mmsys/lang/no-NO.rc
+++ b/dll/cpl/mmsys/lang/no-NO.rc
@@ -16,7 +16,7 @@ BEGIN
     AUTOCHECKBOX "Plasser volum &ikon i oppgavelinjen", IDC_ICON_IN_TASKBAR, 
50, 92, 140, 10
     PUSHBUTTON "A&vansert...", IDC_ADVANCED_BTN, 150, 105, 75, 15
     GROUPBOX "Høytaller innstilling", IDC_SPEAKER_SET_BTN, 7, 140, 230, 80, 
WS_GROUP
-    CONTROL "", IDC_SPEAKIMG, "Static", SS_OWNERDRAW, 4, 155, 70, 70
+    CONTROL "", IDC_SPEAKIMG, "Static", SS_OWNERDRAW, 15, 155, 48, 45
     LTEXT "Bruk innstillingen under for å endre individuell høytaller volum og 
andre innstillinger.", -1, 70, 155, 150, 36
     PUSHBUTTON "&Høytallervolum...", IDC_SPEAKER_VOL_BTN, 70, 195, 75, 15
     PUSHBUTTON "A&vansert...", IDC_ADVANCED2_BTN, 150, 195, 75, 15
diff --git a/dll/cpl/mmsys/lang/pl-PL.rc b/dll/cpl/mmsys/lang/pl-PL.rc
index 6b0d0af62e3..478e36848bb 100644
--- a/dll/cpl/mmsys/lang/pl-PL.rc
+++ b/dll/cpl/mmsys/lang/pl-PL.rc
@@ -30,7 +30,7 @@ BEGIN
     AUTOCHECKBOX "Umieść &ikonę głośności w zasobniku systemowym", 
IDC_ICON_IN_TASKBAR, 50, 92, 180, 10
     PUSHBUTTON "&Zaawansowane...", IDC_ADVANCED_BTN, 150, 105, 75, 15
     GROUPBOX "Ustawienia głośników", IDC_SPEAKER_SET_BTN, 7, 140, 230, 80, 
WS_GROUP
-    CONTROL "", IDC_SPEAKIMG, "Static", SS_OWNERDRAW, 4, 155, 70, 70
+    CONTROL "", IDC_SPEAKIMG, "Static", SS_OWNERDRAW, 15, 155, 48, 45
     LTEXT "Użyj ustawień poniżej aby zmienić indywidualny poziom głośności i 
dostosować ustawienia zaawansowane.", -1, 70, 155, 150, 36
     PUSHBUTTON "&Głośniki...", IDC_SPEAKER_VOL_BTN, 70, 195, 75, 15
     PUSHBUTTON "Z&aawansowane...", IDC_ADVANCED2_BTN, 150, 195, 75, 15
diff --git a/dll/cpl/mmsys/lang/pt-BR.rc b/dll/cpl/mmsys/lang/pt-BR.rc
index ea0a8781bde..35229b943e7 100644
--- a/dll/cpl/mmsys/lang/pt-BR.rc
+++ b/dll/cpl/mmsys/lang/pt-BR.rc
@@ -16,7 +16,7 @@ BEGIN
     AUTOCHECKBOX "Place volume &icon in the taskbar", IDC_ICON_IN_TASKBAR, 50, 
92, 140, 10
     PUSHBUTTON "Ad&vanced...", IDC_ADVANCED_BTN, 150, 105, 75, 15
     GROUPBOX "Speaker settings", IDC_SPEAKER_SET_BTN, 7, 140, 230, 80, WS_GROUP
-    CONTROL "", IDC_SPEAKIMG, "Static", SS_OWNERDRAW, 4, 155, 70, 70
+    CONTROL "", IDC_SPEAKIMG, "Static", SS_OWNERDRAW, 15, 155, 48, 45
     LTEXT "Use the settings below to change individual speaker volume and 
other settings.", -1, 70, 155, 150, 36
     PUSHBUTTON "&Speaker Volume...", IDC_SPEAKER_VOL_BTN, 70, 195, 75, 15
     PUSHBUTTON "A&dvanced...", IDC_ADVANCED2_BTN, 150, 195, 75, 15
diff --git a/dll/cpl/mmsys/lang/pt-PT.rc b/dll/cpl/mmsys/lang/pt-PT.rc
index ef6cb15598b..6e5bc2d1b1e 100644
--- a/dll/cpl/mmsys/lang/pt-PT.rc
+++ b/dll/cpl/mmsys/lang/pt-PT.rc
@@ -16,7 +16,7 @@ BEGIN
     AUTOCHECKBOX "Colocar um &icone de volume na barra de tarefas", 
IDC_ICON_IN_TASKBAR, 50, 92, 190, 10
     PUSHBUTTON "A&vançadas...", IDC_ADVANCED_BTN, 150, 105, 75, 15
     GROUPBOX "Definições dos altifalantes", IDC_SPEAKER_SET_BTN, 7, 140, 230, 
80, WS_GROUP
-    CONTROL "", IDC_SPEAKIMG, "Static", SS_OWNERDRAW, 4, 155, 70, 70
+    CONTROL "", IDC_SPEAKIMG, "Static", SS_OWNERDRAW, 15, 155, 48, 45
     LTEXT "Utilize as definições abaixo, para modificar o volume dos 
altifalantas individualmente e outras definições.", -1, 70, 155, 150, 36
     PUSHBUTTON "&Volume dos altifalantes...", IDC_SPEAKER_VOL_BTN, 60, 195, 
85, 15
     PUSHBUTTON "Ava&nçadas...", IDC_ADVANCED2_BTN, 150, 195, 75, 15
diff --git a/dll/cpl/mmsys/lang/ro-RO.rc b/dll/cpl/mmsys/lang/ro-RO.rc
index 3b4de2876d7..5dbf907fd0a 100644
--- a/dll/cpl/mmsys/lang/ro-RO.rc
+++ b/dll/cpl/mmsys/lang/ro-RO.rc
@@ -21,7 +21,7 @@ BEGIN
     AUTOCHECKBOX "Afișează pictogramă în &zona de notificare", 
IDC_ICON_IN_TASKBAR, 50, 92, 170, 10
     PUSHBUTTON "A&vansate…", IDC_ADVANCED_BTN, 150, 105, 75, 15
     GROUPBOX "Opțiuni difuzoare", IDC_SPEAKER_SET_BTN, 7, 140, 230, 80, 
WS_GROUP
-    CONTROL "", IDC_SPEAKIMG, "Static", SS_OWNERDRAW, 4, 155, 70, 70
+    CONTROL "", IDC_SPEAKIMG, "Static", SS_OWNERDRAW, 15, 155, 48, 45
     LTEXT "Folosiți opțiunile de mai jos pentru a ajusta volumul fiecărui 
difuzor în parte sau pentru alte modificări în configurația difuzoarelor.", -1, 
70, 155, 150, 36
     PUSHBUTTON "V&olum difuzoare…", IDC_SPEAKER_VOL_BTN, 70, 195, 75, 15
     PUSHBUTTON "Avansat&e…", IDC_ADVANCED2_BTN, 150, 195, 75, 15
diff --git a/dll/cpl/mmsys/lang/ru-RU.rc b/dll/cpl/mmsys/lang/ru-RU.rc
index 504bdeee0a3..16fb46e4152 100644
--- a/dll/cpl/mmsys/lang/ru-RU.rc
+++ b/dll/cpl/mmsys/lang/ru-RU.rc
@@ -16,7 +16,7 @@ BEGIN
     AUTOCHECKBOX "Отображать &значок на панели задач", IDC_ICON_IN_TASKBAR, 
50, 92, 140, 10
     PUSHBUTTON "&Дополнительно...", IDC_ADVANCED_BTN, 155, 110, 75, 15
     GROUPBOX "Настройки динамиков", IDC_SPEAKER_SET_BTN, 7, 140, 230, 80, 
WS_GROUP
-    CONTROL "", IDC_SPEAKIMG, "Static", SS_OWNERDRAW, 4, 155, 70, 70
+    CONTROL "", IDC_SPEAKIMG, "Static", SS_OWNERDRAW, 15, 155, 48, 45
     LTEXT "Расположенные ниже кнопки позволяют выполнить индивидуальную 
настройку громкости динамиков и других параметров.", -1, 70, 155, 150, 36
     PUSHBUTTON "Гром&кость...", IDC_SPEAKER_VOL_BTN, 70, 200, 80, 15
     PUSHBUTTON "Д&ополнительно...", IDC_ADVANCED2_BTN, 155, 200, 75, 15
diff --git a/dll/cpl/mmsys/lang/sk-SK.rc b/dll/cpl/mmsys/lang/sk-SK.rc
index 34541343e58..56ca747f641 100644
--- a/dll/cpl/mmsys/lang/sk-SK.rc
+++ b/dll/cpl/mmsys/lang/sk-SK.rc
@@ -21,7 +21,7 @@ BEGIN
     AUTOCHECKBOX "Umiestniť &ikonu hlasitosti na panel úloh", 
IDC_ICON_IN_TASKBAR, 50, 92, 140, 10
     PUSHBUTTON "&Spresniť...", IDC_ADVANCED_BTN, 150, 105, 75, 15
     GROUPBOX "Nastavenie reproduktorov", IDC_SPEAKER_SET_BTN, 7, 140, 230, 80, 
WS_GROUP
-    CONTROL "", IDC_SPEAKIMG, "Static", SS_OWNERDRAW, 4, 155, 70, 70
+    CONTROL "", IDC_SPEAKIMG, "Static", SS_OWNERDRAW, 15, 155, 48, 45
     LTEXT "Tieto možnosti použite na zmenu hlasitosti jednotlivých 
reproduktorov a iných nastavení.", -1, 70, 155, 150, 36
     PUSHBUTTON "&Hlasitosť reproduktorov...", IDC_SPEAKER_VOL_BTN, 70, 195, 
75, 15
     PUSHBUTTON "Spr&esniť...", IDC_ADVANCED2_BTN, 150, 195, 75, 15
diff --git a/dll/cpl/mmsys/lang/sq-AL.rc b/dll/cpl/mmsys/lang/sq-AL.rc
index c32fd998635..ce222aa16ab 100644
--- a/dll/cpl/mmsys/lang/sq-AL.rc
+++ b/dll/cpl/mmsys/lang/sq-AL.rc
@@ -20,7 +20,7 @@ BEGIN
     AUTOCHECKBOX "Vendos &ikonen volumit në tabele", IDC_ICON_IN_TASKBAR, 50, 
92, 140, 10
     PUSHBUTTON "A&vancuar...", IDC_ADVANCED_BTN, 150, 105, 75, 15
     GROUPBOX "Konfigurimi Boxeve", IDC_SPEAKER_SET_BTN, 7, 140, 230, 80, 
WS_GROUP
-    CONTROL "", IDC_SPEAKIMG, "Static", SS_OWNERDRAW, 4, 155, 70, 70
+    CONTROL "", IDC_SPEAKIMG, "Static", SS_OWNERDRAW, 15, 155, 48, 45
     LTEXT "Përdor konfigurimet e mëposhtme për të ndryshuar volumin individual 
to boxeve dhe konfigurimet të tjera.", -1, 70, 155, 150, 36
     PUSHBUTTON "&Volumi boxeve...", IDC_SPEAKER_VOL_BTN, 70, 195, 75, 15
     PUSHBUTTON "A&dvanced...", IDC_ADVANCED2_BTN, 150, 195, 75, 15
diff --git a/dll/cpl/mmsys/lang/tr-TR.rc b/dll/cpl/mmsys/lang/tr-TR.rc
index 33dcf5402df..c862b417c9f 100644
--- a/dll/cpl/mmsys/lang/tr-TR.rc
+++ b/dll/cpl/mmsys/lang/tr-TR.rc
@@ -18,7 +18,7 @@ BEGIN
     AUTOCHECKBOX "&Görev çubuğunda ses düzeyi simgesini yerleştir", 
IDC_ICON_IN_TASKBAR, 50, 92, 140, 10
     PUSHBUTTON "G&elişmiş...", IDC_ADVANCED_BTN, 150, 105, 75, 15
     GROUPBOX "Hoparlör Ayarları", IDC_SPEAKER_SET_BTN, 7, 140, 230, 80, 
WS_GROUP
-    CONTROL "", IDC_SPEAKIMG, "Static", SS_OWNERDRAW, 4, 155, 70, 70
+    CONTROL "", IDC_SPEAKIMG, "Static", SS_OWNERDRAW, 15, 155, 48, 45
     LTEXT "Tek hoparlörün, ses düzeyini ve diğer ayarlarını değiştirmek için 
aşağıdaki ayarları kullanınız.", -1, 70, 155, 150, 36
     PUSHBUTTON "&Hoparlör Ses Düzeyi...", IDC_SPEAKER_VOL_BTN, 70, 195, 75, 15
     PUSHBUTTON "Ge&lişmiş...", IDC_ADVANCED2_BTN, 150, 195, 75, 15
diff --git a/dll/cpl/mmsys/lang/uk-UA.rc b/dll/cpl/mmsys/lang/uk-UA.rc
index 3a646df7a48..5deffb13d41 100644
--- a/dll/cpl/mmsys/lang/uk-UA.rc
+++ b/dll/cpl/mmsys/lang/uk-UA.rc
@@ -24,7 +24,7 @@ BEGIN
     AUTOCHECKBOX "Пока&зувати значок гучності на панелі завдань", 
IDC_ICON_IN_TASKBAR, 50, 92, 140, 10
     PUSHBUTTON "&Додатково...", IDC_ADVANCED_BTN, 150, 105, 75, 15
     GROUPBOX "Налаштування динаміків", IDC_SPEAKER_SET_BTN, 7, 140, 230, 80, 
WS_GROUP
-    CONTROL "", IDC_SPEAKIMG, "Static", SS_OWNERDRAW, 4, 155, 70, 70
+    CONTROL "", IDC_SPEAKIMG, "Static", SS_OWNERDRAW, 15, 155, 48, 45
     LTEXT "За допомогою розташованих нижче кнопок можна виконати індивідуальну 
настройку гучності динаміків та інших параметрів.", -1, 70, 155, 150, 36
     PUSHBUTTON "&Гучність динаміків...", IDC_SPEAKER_VOL_BTN, 70, 195, 75, 15
     PUSHBUTTON "Дод&атково...", IDC_ADVANCED2_BTN, 150, 195, 75, 15
diff --git a/dll/cpl/mmsys/lang/zh-CN.rc b/dll/cpl/mmsys/lang/zh-CN.rc
index e9c0e9248b1..55d256453a8 100644
--- a/dll/cpl/mmsys/lang/zh-CN.rc
+++ b/dll/cpl/mmsys/lang/zh-CN.rc
@@ -26,7 +26,7 @@ BEGIN
     AUTOCHECKBOX "将音量图标放入任务栏(&I)", IDC_ICON_IN_TASKBAR, 50, 92, 140, 10
     PUSHBUTTON "高级(&V)...", IDC_ADVANCED_BTN, 150, 105, 75, 15
     GROUPBOX "扬声器设置", IDC_SPEAKER_SET_BTN, 7, 140, 230, 80, WS_GROUP
-    CONTROL "", IDC_SPEAKIMG, "Static", SS_OWNERDRAW, 4, 155, 70, 70
+    CONTROL "", IDC_SPEAKIMG, "Static", SS_OWNERDRAW, 15, 155, 48, 45
     LTEXT "用下列设置更改每个扬声器音量和其他设置。", -1, 70, 155, 150, 36
     PUSHBUTTON "扬声器音量(&S)...", IDC_SPEAKER_VOL_BTN, 70, 195, 75, 15
     PUSHBUTTON "高级(&D)...", IDC_ADVANCED2_BTN, 150, 195, 75, 15
diff --git a/dll/cpl/mmsys/lang/zh-HK.rc b/dll/cpl/mmsys/lang/zh-HK.rc
index 7e92d9c3390..df94ee6d62b 100644
--- a/dll/cpl/mmsys/lang/zh-HK.rc
+++ b/dll/cpl/mmsys/lang/zh-HK.rc
@@ -24,7 +24,7 @@ BEGIN
     AUTOCHECKBOX "將音量圖示放入工作列(&I)", IDC_ICON_IN_TASKBAR, 50, 92, 140, 10
     PUSHBUTTON "進階(&V)...", IDC_ADVANCED_BTN, 150, 105, 75, 15
     GROUPBOX "揚聲器設定", IDC_SPEAKER_SET_BTN, 7, 140, 230, 80, WS_GROUP
-    CONTROL "", IDC_SPEAKIMG, "Static", SS_OWNERDRAW, 4, 155, 70, 70
+    CONTROL "", IDC_SPEAKIMG, "Static", SS_OWNERDRAW, 15, 155, 48, 45
     LTEXT "用下列設定更改每個揚聲器音量和其他設定。", -1, 70, 155, 150, 36
     PUSHBUTTON "揚聲器音量(&S)...", IDC_SPEAKER_VOL_BTN, 70, 195, 75, 15
     PUSHBUTTON "進階(&D)...", IDC_ADVANCED2_BTN, 150, 195, 75, 15
diff --git a/dll/cpl/mmsys/lang/zh-TW.rc b/dll/cpl/mmsys/lang/zh-TW.rc
index 60995e92ab4..e91c51ef099 100644
--- a/dll/cpl/mmsys/lang/zh-TW.rc
+++ b/dll/cpl/mmsys/lang/zh-TW.rc
@@ -24,7 +24,7 @@ BEGIN
     AUTOCHECKBOX "將音量圖示放入工作列(&I)", IDC_ICON_IN_TASKBAR, 50, 92, 140, 10
     PUSHBUTTON "進階(&V)...", IDC_ADVANCED_BTN, 150, 105, 75, 15
     GROUPBOX "揚聲器設定", IDC_SPEAKER_SET_BTN, 7, 140, 230, 80, WS_GROUP
-    CONTROL "", IDC_SPEAKIMG, "Static", SS_OWNERDRAW, 4, 155, 70, 70
+    CONTROL "", IDC_SPEAKIMG, "Static", SS_OWNERDRAW, 15, 155, 48, 45
     LTEXT "用下列設定更改每個揚聲器音量和其他設定。", -1, 70, 155, 150, 36
     PUSHBUTTON "揚聲器音量(&S)...", IDC_SPEAKER_VOL_BTN, 70, 195, 75, 15
     PUSHBUTTON "進階(&D)...", IDC_ADVANCED2_BTN, 150, 195, 75, 15
diff --git a/dll/cpl/mmsys/mmsys.rc b/dll/cpl/mmsys/mmsys.rc
index 82e7997848c..83714428136 100644
--- a/dll/cpl/mmsys/mmsys.rc
+++ b/dll/cpl/mmsys/mmsys.rc
@@ -57,8 +57,7 @@ IDI_SHUTDOWN_ICON ICON "resources/4394.ico"
 IDI_PLAY_ICON ICON "resources/play.ico"
 IDI_STOP_ICON ICON "resources/stop.ico"
 
-/* Bitmaps */
-IDB_SPEAKIMG BITMAP "resources/speaker.bmp"
+IDI_SPEAKIMG ICON "resources/speaker.ico"
 
 #include <reactos/manifest_hosted.rc>
 
diff --git a/dll/cpl/mmsys/resource.h b/dll/cpl/mmsys/resource.h
index bdd843f65c4..8c7a3d919ce 100644
--- a/dll/cpl/mmsys/resource.h
+++ b/dll/cpl/mmsys/resource.h
@@ -66,7 +66,7 @@
 #define IDC_SAVEAS_BTN            5033
 #define IDC_DELETE_BTN            5034
 
-#define IDB_SPEAKIMG  4624
+#define IDI_SPEAKIMG  4624
 #define IDC_SPEAKIMG  4625
 #define IDC_MUTE_ICON 4626
 
diff --git a/dll/cpl/mmsys/resources/speaker.bmp 
b/dll/cpl/mmsys/resources/speaker.bmp
deleted file mode 100644
index 98ed0f06584..00000000000
Binary files a/dll/cpl/mmsys/resources/speaker.bmp and /dev/null differ
diff --git a/dll/cpl/mmsys/resources/speaker.ico 
b/dll/cpl/mmsys/resources/speaker.ico
new file mode 100644
index 00000000000..548e5d1d44f
Binary files /dev/null and b/dll/cpl/mmsys/resources/speaker.ico differ
diff --git a/dll/cpl/mmsys/volume.c b/dll/cpl/mmsys/volume.c
index f18a9f57b7e..7f4040fcf8b 100644
--- a/dll/cpl/mmsys/volume.c
+++ b/dll/cpl/mmsys/volume.c
@@ -12,20 +12,13 @@
 #include <shellapi.h>
 
 
-typedef struct _IMGINFO
-{
-    HBITMAP hBitmap;
-    INT cxSource;
-    INT cySource;
-} IMGINFO, *PIMGINFO;
-
-
 typedef struct _GLOBAL_DATA
 {
     HMIXER hMixer;
     HICON hIconMuted;
     HICON hIconUnMuted;
     HICON hIconNoHW;
+    HICON hIconSpeakImg;
 
     LONG muteVal;
     DWORD muteControlID;
@@ -44,30 +37,6 @@ typedef struct _GLOBAL_DATA
 } GLOBAL_DATA, *PGLOBAL_DATA;
 
 
-static VOID
-InitImageInfo(PIMGINFO ImgInfo)
-{
-    BITMAP bitmap;
-
-    ZeroMemory(ImgInfo, sizeof(*ImgInfo));
-
-    ImgInfo->hBitmap = LoadImageW(hApplet,
-                                  MAKEINTRESOURCEW(IDB_SPEAKIMG),
-                                  IMAGE_BITMAP,
-                                  0,
-                                  0,
-                                  LR_DEFAULTCOLOR);
-
-    if (ImgInfo->hBitmap != NULL)
-    {
-        GetObjectW(ImgInfo->hBitmap, sizeof(BITMAP), &bitmap);
-
-        ImgInfo->cxSource = bitmap.bmWidth;
-        ImgInfo->cySource = bitmap.bmHeight;
-    }
-}
-
-
 VOID
 GetMuteControl(PGLOBAL_DATA pGlobalData)
 {
@@ -421,7 +390,7 @@ VolumeDlgProc(HWND hwndDlg,
               WPARAM wParam,
               LPARAM lParam)
 {
-    static IMGINFO ImgInfo;
+    static const INT speakImgSize[] = {72, 72};
     PGLOBAL_DATA pGlobalData;
 
     pGlobalData = (PGLOBAL_DATA)GetWindowLongPtrW(hwndDlg, DWLP_USER);
@@ -457,8 +426,13 @@ VolumeDlgProc(HWND hwndDlg,
             pGlobalData->hIconUnMuted = LoadImageW(hApplet, 
MAKEINTRESOURCEW(IDI_CPLICON), IMAGE_ICON, 32, 32, LR_DEFAULTCOLOR);
             pGlobalData->hIconMuted = LoadImageW(hApplet, 
MAKEINTRESOURCEW(IDI_MUTED_ICON), IMAGE_ICON, 32, 32, LR_DEFAULTCOLOR);
             pGlobalData->hIconNoHW = LoadImageW(hApplet, 
MAKEINTRESOURCEW(IDI_NO_HW), IMAGE_ICON, 32, 32, LR_DEFAULTCOLOR);
+            pGlobalData->hIconSpeakImg = LoadImageW(hApplet,
+                                                    
MAKEINTRESOURCEW(IDI_SPEAKIMG),
+                                                    IMAGE_ICON,
+                                                    speakImgSize[0],
+                                                    speakImgSize[1],
+                                                    LR_DEFAULTCOLOR);
 
-            InitImageInfo(&ImgInfo);
             InitVolumeControls(hwndDlg, pGlobalData);
             break;
         }
@@ -469,27 +443,20 @@ VolumeDlgProc(HWND hwndDlg,
             lpDrawItem = (LPDRAWITEMSTRUCT)lParam;
             if (lpDrawItem->CtlID == IDC_SPEAKIMG)
             {
-                HDC hdcMem;
                 LONG left;
 
                 /* Position image in centre of dialog */
-                left = (lpDrawItem->rcItem.right - ImgInfo.cxSource) / 2;
+                left = (lpDrawItem->rcItem.right - speakImgSize[0]) / 2;
 
-                hdcMem = CreateCompatibleDC(lpDrawItem->hDC);
-                if (hdcMem != NULL)
-                {
-                    SelectObject(hdcMem, ImgInfo.hBitmap);
-                    BitBlt(lpDrawItem->hDC,
+                DrawIconEx(lpDrawItem->hDC,
                            left,
                            lpDrawItem->rcItem.top,
-                           lpDrawItem->rcItem.right - lpDrawItem->rcItem.left,
-                           lpDrawItem->rcItem.bottom - lpDrawItem->rcItem.top,
-                           hdcMem,
-                           0,
+                           pGlobalData->hIconSpeakImg,
+                           speakImgSize[0],
+                           speakImgSize[1],
                            0,
-                           SRCCOPY);
-                    DeleteDC(hdcMem);
-                }
+                           NULL,
+                           DI_NORMAL);
             }
             break;
         }
@@ -559,19 +526,23 @@ VolumeDlgProc(HWND hwndDlg,
         case WM_DESTROY:
             if (pGlobalData)
             {
-                if (pGlobalData->volumeCurrentValues)
-                    HeapFree(GetProcessHeap(), 0, 
pGlobalData->volumeCurrentValues);
+                HeapFree(GetProcessHeap(), 0, 
pGlobalData->volumeCurrentValues);
+                HeapFree(GetProcessHeap(), 0, 
pGlobalData->volumePreviousValues);
+                HeapFree(GetProcessHeap(), 0, 
pGlobalData->volumeInitialValues);
+                mixerClose(pGlobalData->hMixer);
 
-                if (pGlobalData->volumePreviousValues)
-                    HeapFree(GetProcessHeap(), 0, 
pGlobalData->volumePreviousValues);
+                if (pGlobalData->hIconSpeakImg)
+                    DestroyIcon(pGlobalData->hIconSpeakImg);
 
-                if (pGlobalData->volumeInitialValues)
-                    HeapFree(GetProcessHeap(), 0, 
pGlobalData->volumeInitialValues);
+                if (pGlobalData->hIconNoHW)
+                    DestroyIcon(pGlobalData->hIconNoHW);
+
+                if (pGlobalData->hIconMuted)
+                    DestroyIcon(pGlobalData->hIconMuted);
+
+                if (pGlobalData->hIconUnMuted)
+                    DestroyIcon(pGlobalData->hIconUnMuted);
 
-                mixerClose(pGlobalData->hMixer);
-                DestroyIcon(pGlobalData->hIconMuted);
-                DestroyIcon(pGlobalData->hIconUnMuted);
-                DestroyIcon(pGlobalData->hIconNoHW);
                 HeapFree(GetProcessHeap(), 0, pGlobalData);
             }
             break;

Reply via email to