-don't show SystemComponents

-added a "Show updates" checkbox 

svn path=/trunk/; revision=21832
This commit is contained in:
Christoph von Wittich 2006-05-07 18:05:51 +00:00
parent caea3e9648
commit eb3ebbddf1
14 changed files with 164 additions and 103 deletions

View file

@ -11,8 +11,9 @@ BEGIN
LTEXT "", -1, PROPSHEETPADDING, 63, PROPSHEETWIDTH-12, 1, NOT WS_GROUP | SS_SUNKEN
ICON IDI_CPLSYSTEM,-1,PROPSHEETPADDING,76,16,16
CONTROL "&Show updates",IDC_SHOWUPDATES,"button",BS_AUTOCHECKBOX | WS_TABSTOP,PROPSHEETPADDING, 105, 119, 18
LTEXT "Následující aplikace mohou být automaticky odstraněny. K odstranění aplikace nebo k nastavení jejích komponent, ji vyberte ze seznamu a klepněte na tlačítko Přidat/Odebrat.",-1,36,72,PROPSHEETWIDTH-48,32
LISTBOX IDC_SOFTWARELIST, PROPSHEETPADDING, 105, PROPSHEETWIDTH-12, 88, LBS_STANDARD | WS_TABSTOP
LISTBOX IDC_SOFTWARELIST, PROPSHEETPADDING, 123, PROPSHEETWIDTH-12, 88, LBS_STANDARD | WS_TABSTOP
PUSHBUTTON "Přidat/&Odebrat", IDC_ADDREMOVE, PROPSHEETWIDTH-72, 198, 60, 14
END

View file

@ -11,9 +11,10 @@ BEGIN
LTEXT "", -1, PROPSHEETPADDING, 63, PROPSHEETWIDTH-12, 1, NOT WS_GROUP | SS_SUNKEN
ICON IDI_CPLSYSTEM,-1,PROPSHEETPADDING,76,16,16
CONTROL "&Updates anzeigen",IDC_SHOWUPDATES,"button",BS_AUTOCHECKBOX | WS_TABSTOP,PROPSHEETPADDING, 105, 119, 18
LTEXT "Die folgende Software kann automatisch entfernt werden. Um ein Programm zu entfernen oder die installierten Programmpakete zu ändern, wählen Sie das Programm in der Liste und klicken auf Ändern/Entfernen.",-1,36,72,PROPSHEETWIDTH-48,32
LISTBOX IDC_SOFTWARELIST, PROPSHEETPADDING, 105, PROPSHEETWIDTH-12, 88, LBS_STANDARD | WS_TABSTOP
PUSHBUTTON "Ändern/Entfe&rnen", IDC_ADDREMOVE, PROPSHEETWIDTH-(82), 198, 70, 14
LISTBOX IDC_SOFTWARELIST, PROPSHEETPADDING, 123, PROPSHEETWIDTH-12, 88, LBS_STANDARD | WS_TABSTOP
PUSHBUTTON "Ändern/Entfe&rnen", IDC_ADDREMOVE, PROPSHEETWIDTH-(82), 205, 70, 14
END
IDD_PROPPAGEROSSETUP DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT

View file

@ -11,8 +11,9 @@ BEGIN
LTEXT "", -1, PROPSHEETPADDING, 63, PROPSHEETWIDTH-12, 1, NOT WS_GROUP | SS_SUNKEN
ICON IDI_CPLSYSTEM,-1,PROPSHEETPADDING,76,16,16
CONTROL "&Show updates",IDC_SHOWUPDATES,"button",BS_AUTOCHECKBOX | WS_TABSTOP,PROPSHEETPADDING, 105, 119, 18
LTEXT "Følgende Software kan automatisk blive Fjernet. For at fjerne programmer eller ændre hvilken typer komponeter der skal være installeret, vælg fra listen og klik på Tilføj/Fjern.",-1,36,72,PROPSHEETWIDTH-48,32
LISTBOX IDC_SOFTWARELIST, PROPSHEETPADDING, 105, PROPSHEETWIDTH-12, 88, LBS_STANDARD | WS_TABSTOP
LISTBOX IDC_SOFTWARELIST, PROPSHEETPADDING, 123, PROPSHEETWIDTH-12, 88, LBS_STANDARD | WS_TABSTOP
PUSHBUTTON "Tilføj/&Fjern", IDC_ADDREMOVE, PROPSHEETWIDTH-72, 198, 60, 14
END

View file

@ -11,8 +11,9 @@ BEGIN
LTEXT "", -1, PROPSHEETPADDING, 63, PROPSHEETWIDTH-12, 1, NOT WS_GROUP | SS_SUNKEN
ICON IDI_CPLSYSTEM,-1,PROPSHEETPADDING,76,16,16
CONTROL "&Show updates",IDC_SHOWUPDATES,"button",BS_AUTOCHECKBOX | WS_TABSTOP,PROPSHEETPADDING, 105, 119, 18
LTEXT "The following Software can be automatically removed. To remove a program or to modify its installed components, select it from the list and click Add/Remove.",-1,36,72,PROPSHEETWIDTH-48,32
LISTBOX IDC_SOFTWARELIST, PROPSHEETPADDING, 105, PROPSHEETWIDTH-12, 88, LBS_STANDARD | WS_TABSTOP
LISTBOX IDC_SOFTWARELIST, PROPSHEETPADDING, 123, PROPSHEETWIDTH-12, 88, LBS_STANDARD | WS_TABSTOP
PUSHBUTTON "Modify/&Remove", IDC_ADDREMOVE, PROPSHEETWIDTH-72, 198, 60, 14
END

View file

@ -17,8 +17,9 @@ BEGIN
LTEXT "", -1, PROPSHEETPADDING, 63, PROPSHEETWIDTH-12, 1, NOT WS_GROUP | SS_SUNKEN
ICON IDI_CPLSYSTEM,-1,PROPSHEETPADDING,76,16,16
CONTROL "&Show updates",IDC_SHOWUPDATES,"button",BS_AUTOCHECKBOX | WS_TABSTOP,PROPSHEETPADDING, 105, 119, 18
LTEXT "El siguiente software puede ser removido automaticamente. Para remover un programa o modificar sus componentes instalados, seleccionalo en la lista y pulsa Añadir/Remover.",-1,36,72,PROPSHEETWIDTH-48,32
LISTBOX IDC_SOFTWARELIST, PROPSHEETPADDING, 105, PROPSHEETWIDTH-12, 88, LBS_STANDARD | WS_TABSTOP
LISTBOX IDC_SOFTWARELIST, PROPSHEETPADDING, 123, PROPSHEETWIDTH-12, 88, LBS_STANDARD | WS_TABSTOP
PUSHBUTTON "Añadir/&Remover", IDC_ADDREMOVE, PROPSHEETWIDTH-72, 198, 60, 14
END

View file

@ -1,52 +1,53 @@
/* French translation by Benoit Plante 2005 (cmoibenlepro AT hotmail DOT com) */
LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
IDD_PROPPAGEINSTALL DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Ajout/Supression de programmes"
FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN
ICON IDI_CPLSYSTEM,-1,PROPSHEETPADDING,18,16,16
LTEXT "Pour installer un nouveau programme, cliquez sur Installer",-1,36,18,PROPSHEETWIDTH-48,8
PUSHBUTTON "&Installer...", IDC_INSTALL, PROPSHEETWIDTH-(72), 36, 60, 14
LTEXT "", -1, PROPSHEETPADDING, 63, PROPSHEETWIDTH-12, 1, NOT WS_GROUP | SS_SUNKEN
ICON IDI_CPLSYSTEM,-1,PROPSHEETPADDING,76,16,16
LTEXT "Les logiciels suivant peuvent être supprimés automatiquement. Pour supprimer un programme ou modifier ses composantes installées, sélectionnez-le dans la liste et cliquez sur Ajouter/Supprimer.",-1,36,72,PROPSHEETWIDTH-48,32
LISTBOX IDC_SOFTWARELIST, PROPSHEETPADDING, 105, PROPSHEETWIDTH-12, 88, LBS_STANDARD | WS_TABSTOP
PUSHBUTTON "Ajouter/Supp&rimer", IDC_ADDREMOVE, PROPSHEETWIDTH-72, 198, 60, 14
END
IDD_PROPPAGEROSSETUP DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Configuration de ReactOS"
FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN
END
IDD_FIRSTPAGE DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Créer un raccourci"
FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN
LTEXT "Texte 1", -1, 115, 15, 160, 24
LTEXT "Texte 2", -1, 115, 35, 160, 17
END
IDD_SUBMIT_REPORT DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Créer un raccourci"
FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN
LTEXT "Texte 1",-1,10,0,225,40
LTEXT "Texte 2",-1,10,40,120,20
LTEXT "Texte 3",-1,10,55,120,20
END
STRINGTABLE
BEGIN
IDS_CPLSYSTEMNAME "Ajout/Supression de programmes"
IDS_CPLSYSTEMDESCRIPTION "Installe et supprime les programmes et les composantes de ReactOS, ainsi que les raccourcis."
END
LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
IDD_PROPPAGEINSTALL DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Ajout/Supression de programmes"
FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN
ICON IDI_CPLSYSTEM,-1,PROPSHEETPADDING,18,16,16
LTEXT "Pour installer un nouveau programme, cliquez sur Installer",-1,36,18,PROPSHEETWIDTH-48,8
PUSHBUTTON "&Installer...", IDC_INSTALL, PROPSHEETWIDTH-(72), 36, 60, 14
LTEXT "", -1, PROPSHEETPADDING, 63, PROPSHEETWIDTH-12, 1, NOT WS_GROUP | SS_SUNKEN
ICON IDI_CPLSYSTEM,-1,PROPSHEETPADDING,76,16,16
CONTROL "&Show updates",IDC_SHOWUPDATES,"button",BS_AUTOCHECKBOX | WS_TABSTOP,PROPSHEETPADDING, 105, 119, 18
LTEXT "Les logiciels suivant peuvent être supprimés automatiquement. Pour supprimer un programme ou modifier ses composantes installées, sélectionnez-le dans la liste et cliquez sur Ajouter/Supprimer.",-1,36,72,PROPSHEETWIDTH-48,32
LISTBOX IDC_SOFTWARELIST, PROPSHEETPADDING, 123, PROPSHEETWIDTH-12, 88, LBS_STANDARD | WS_TABSTOP
PUSHBUTTON "Ajouter/Supp&rimer", IDC_ADDREMOVE, PROPSHEETWIDTH-72, 198, 60, 14
END
IDD_PROPPAGEROSSETUP DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Configuration de ReactOS"
FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN
END
IDD_FIRSTPAGE DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Créer un raccourci"
FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN
LTEXT "Texte 1", -1, 115, 15, 160, 24
LTEXT "Texte 2", -1, 115, 35, 160, 17
END
IDD_SUBMIT_REPORT DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Créer un raccourci"
FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN
LTEXT "Texte 1",-1,10,0,225,40
LTEXT "Texte 2",-1,10,40,120,20
LTEXT "Texte 3",-1,10,55,120,20
END
STRINGTABLE
BEGIN
IDS_CPLSYSTEMNAME "Ajout/Supression de programmes"
IDS_CPLSYSTEMDESCRIPTION "Installe et supprime les programmes et les composantes de ReactOS, ainsi que les raccourcis."
END

View file

@ -11,8 +11,9 @@ BEGIN
LTEXT "", -1, PROPSHEETPADDING, 63, PROPSHEETWIDTH-12, 1, NOT WS_GROUP | SS_SUNKEN
ICON IDI_CPLSYSTEM,-1,PROPSHEETPADDING,76,16,16
CONTROL "&Show updates",IDC_SHOWUPDATES,"button",BS_AUTOCHECKBOX | WS_TABSTOP,PROPSHEETPADDING, 105, 119, 18
LTEXT "Το ακόλουθο λογισμικό μπορεί να απεγκατασταθεί αυτομάτως. Για να απεγκαταστήσετε ένα πρόγραμμα ή να αλλάξετε τα εγκατεστημένα του αρχεία, επιλέξτε το από τη λίστα και κάντε κλικ στο Προσθήκη/Αφαίρεση.",-1,36,72,PROPSHEETWIDTH-48,32
LISTBOX IDC_SOFTWARELIST, PROPSHEETPADDING, 105, PROPSHEETWIDTH-12, 88, LBS_STANDARD | WS_TABSTOP
LISTBOX IDC_SOFTWARELIST, PROPSHEETPADDING, 123, PROPSHEETWIDTH-12, 88, LBS_STANDARD | WS_TABSTOP
PUSHBUTTON "Προσθήκη/&Αφαίρεση", IDC_ADDREMOVE, PROPSHEETWIDTH-72, 198, 60, 14
END

View file

@ -12,8 +12,9 @@ BEGIN
LTEXT "", -1, PROPSHEETPADDING, 63, PROPSHEETWIDTH-12, 1, NOT WS_GROUP | SS_SUNKEN
ICON IDI_CPLSYSTEM,-1,PROPSHEETPADDING,76,16,16
CONTROL "&Show updates",IDC_SHOWUPDATES,"button",BS_AUTOCHECKBOX | WS_TABSTOP,PROPSHEETPADDING, 105, 119, 18
LTEXT "A következő szoftvereket lehet eltávolítani. A szoftver törléséhez vagy összetevőinek modosításához kattints a szoftverre a listában, majd kattints a Hozzáadás/eltávolítás gombra.",-1,36,72,PROPSHEETWIDTH-48,32
LISTBOX IDC_SOFTWARELIST, PROPSHEETPADDING, 105, PROPSHEETWIDTH-12, 88, LBS_STANDARD | WS_TABSTOP
LISTBOX IDC_SOFTWARELIST, PROPSHEETPADDING, 123, PROPSHEETWIDTH-12, 88, LBS_STANDARD | WS_TABSTOP
PUSHBUTTON "Hozzáadás/eltávolítás", IDC_ADDREMOVE, PROPSHEETWIDTH-72, 198, 60, 14
END

View file

@ -11,8 +11,9 @@ BEGIN
LTEXT "", -1, PROPSHEETPADDING, 63, PROPSHEETWIDTH-12, 1, NOT WS_GROUP | SS_SUNKEN
ICON IDI_CPLSYSTEM,-1,PROPSHEETPADDING,76,16,16
CONTROL "&Show updates",IDC_SHOWUPDATES,"button",BS_AUTOCHECKBOX | WS_TABSTOP,PROPSHEETPADDING, 105, 119, 18
LTEXT "これらのプログラムは自動で削除することができます。プログラムを変更したり、コンピュータから削除したりするには、一覧から目的のプログラムを選択し、[変更と削除] をクリックしてください。",-1,36,72,PROPSHEETWIDTH-48,32
LISTBOX IDC_SOFTWARELIST, PROPSHEETPADDING, 105, PROPSHEETWIDTH-12, 88, LBS_STANDARD | WS_TABSTOP
LISTBOX IDC_SOFTWARELIST, PROPSHEETPADDING, 123, PROPSHEETWIDTH-12, 88, LBS_STANDARD | WS_TABSTOP
PUSHBUTTON "変更と削除(&R)", IDC_ADDREMOVE, PROPSHEETWIDTH-72, 198, 60, 14
END

View file

@ -11,8 +11,9 @@ BEGIN
LTEXT "", -1, PROPSHEETPADDING, 63, PROPSHEETWIDTH-12, 1, NOT WS_GROUP | SS_SUNKEN
ICON IDI_CPLSYSTEM,-1,PROPSHEETPADDING,76,16,16
CONTROL "&Show updates",IDC_SHOWUPDATES,"button",BS_AUTOCHECKBOX | WS_TABSTOP,PROPSHEETPADDING, 105, 119, 18
LTEXT "&De volgende software kan automatisch worden verwijderd. U verwijdert een programma of wijzigt de geïnstalleerde onderdelen door het programma te selecteren en op Toevoegen/verwijderen te klikken.",-1,36,72,PROPSHEETWIDTH-48,32
LISTBOX IDC_SOFTWARELIST, PROPSHEETPADDING, 105, PROPSHEETWIDTH-12, 88, LBS_STANDARD | WS_TABSTOP
LISTBOX IDC_SOFTWARELIST, PROPSHEETPADDING, 123, PROPSHEETWIDTH-12, 88, LBS_STANDARD | WS_TABSTOP
PUSHBUTTON "Toe&voegen/verwijderen", IDC_ADDREMOVE, PROPSHEETWIDTH-72, 198, 60, 14
END

View file

@ -13,8 +13,9 @@ BEGIN
LTEXT "", -1, PROPSHEETPADDING, 63, PROPSHEETWIDTH-12, 1, NOT WS_GROUP | SS_SUNKEN
ICON IDI_CPLSYSTEM,-1,PROPSHEETPADDING,76,16,16
CONTROL "&Show updates",IDC_SHOWUPDATES,"button",BS_AUTOCHECKBOX | WS_TABSTOP,PROPSHEETPADDING, 105, 119, 18
LTEXT "Następujšce oprogramowanie może być automatycznie usunięte. Żeby usunšc program, albo zmodyfikować zainstalowane komponenty, wybierz program z listy i kliknij Dodaj/Usuń.",-1,36,72,PROPSHEETWIDTH-48,32
LISTBOX IDC_SOFTWARELIST, PROPSHEETPADDING, 105, PROPSHEETWIDTH-12, 88, LBS_STANDARD | WS_TABSTOP
LISTBOX IDC_SOFTWARELIST, PROPSHEETPADDING, 123, PROPSHEETWIDTH-12, 88, LBS_STANDARD | WS_TABSTOP
PUSHBUTTON "Dodaj/&Usuń", IDC_ADDREMOVE, PROPSHEETWIDTH-72, 198, 60, 14
END

View file

@ -11,8 +11,9 @@ BEGIN
LTEXT "", -1, PROPSHEETPADDING, 63, PROPSHEETWIDTH-12, 1, NOT WS_GROUP | SS_SUNKEN
ICON IDI_CPLSYSTEM,-1,PROPSHEETPADDING,76,16,16
CONTROL "&Show updates",IDC_SHOWUPDATES,"button",BS_AUTOCHECKBOX | WS_TABSTOP,PROPSHEETPADDING, 105, 119, 18
LTEXT "Чтобы установить программу или изменить её установленные компоненты, выделите её в списке и нажмите ""Заменить/Удалить"".",-1,36,72,PROPSHEETWIDTH-48,32
LISTBOX IDC_SOFTWARELIST, PROPSHEETPADDING, 105, PROPSHEETWIDTH-12, 88, LBS_STANDARD | WS_TABSTOP
LISTBOX IDC_SOFTWARELIST, PROPSHEETPADDING, 123, PROPSHEETWIDTH-12, 88, LBS_STANDARD | WS_TABSTOP
PUSHBUTTON "&Заменить/Удалить", IDC_ADDREMOVE, PROPSHEETWIDTH-98, 198, 85, 14
END

View file

@ -105,65 +105,113 @@ CallUninstall(HWND hwndDlg)
}
/* Property page dialog callback */
static INT_PTR CALLBACK
InstallPageProc(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM lParam)
static void FillSoftwareList(HWND hwndDlg)
{
TCHAR pszName[MAX_PATH];
TCHAR pszDisplayName[MAX_PATH];
TCHAR pszParentKeyName[MAX_PATH];
FILETIME FileTime;
HKEY hKey;
HKEY hSubKey;
DWORD dwType;
DWORD dwSize;
DWORD dwValue = 0;
BOOL bIsUpdate = FALSE;
BOOL bIsSystemComponent = FALSE;
BOOL bShowUpdates = FALSE;
int i;
ULONG index;
bShowUpdates = (SendMessage(GetDlgItem(hwndDlg, IDC_SHOWUPDATES), BM_GETCHECK, 0, 0) == BST_CHECKED);
if (RegOpenKey(HKEY_LOCAL_MACHINE,
_TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall"),
&hKey) != ERROR_SUCCESS)
{
MessageBox(hwndDlg,
_TEXT("Unable to open Uninstall Key"),
_TEXT("Error"),
MB_ICONSTOP);
return;
}
i = 0;
dwSize = MAX_PATH;
while (RegEnumKeyEx (hKey, i, pszName, &dwSize, NULL, NULL, NULL, &FileTime) == ERROR_SUCCESS)
{
if (RegOpenKey(hKey,pszName,&hSubKey)==ERROR_SUCCESS)
{
dwType = REG_DWORD;
dwSize = sizeof(DWORD);
if (RegQueryValueEx(hSubKey,
_TEXT("SystemComponent"),
NULL,
&dwType,
(LPBYTE)&dwValue,
&dwSize) == ERROR_SUCCESS)
{
bIsSystemComponent = (dwValue == 0x1);
}
else {
bIsSystemComponent = FALSE;
}
dwType = REG_SZ;
dwSize = MAX_PATH;
bIsUpdate = (RegQueryValueEx(hSubKey,
_TEXT("ParentKeyName"),
NULL,
&dwType,
(LPBYTE)pszParentKeyName,
&dwSize) == ERROR_SUCCESS);
dwSize = MAX_PATH;
if (RegQueryValueEx(hSubKey,
_TEXT("DisplayName"),
NULL,
&dwType,
(LPBYTE)pszDisplayName,
&dwSize) == ERROR_SUCCESS)
{
if ((!bIsUpdate) && (!bIsSystemComponent))
{
index = SendDlgItemMessage(hwndDlg,IDC_SOFTWARELIST,LB_ADDSTRING,0,(LPARAM)pszDisplayName);
SendDlgItemMessage(hwndDlg,IDC_SOFTWARELIST,LB_SETITEMDATA,index,(LPARAM)hSubKey);
}
else if (bIsUpdate && bShowUpdates)
{
index = SendDlgItemMessage(hwndDlg,IDC_SOFTWARELIST,LB_ADDSTRING,0,(LPARAM)pszDisplayName);
SendDlgItemMessage(hwndDlg,IDC_SOFTWARELIST,LB_SETITEMDATA,index,(LPARAM)hSubKey);
}
}
}
dwSize = MAX_PATH;
i++;
}
RegCloseKey(hKey);
}
/* Property page dialog callback */
static INT_PTR CALLBACK
InstallPageProc(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
switch (uMsg)
{
case WM_INITDIALOG:
EnableWindow(GetDlgItem(hwndDlg,IDC_INSTALL), FALSE);
if (RegOpenKey(HKEY_LOCAL_MACHINE,
_TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall"),
&hKey) != ERROR_SUCCESS)
{
MessageBox(hwndDlg,
_TEXT("Unable to open Uninstall Key"),
_TEXT("Error"),
MB_ICONSTOP);
return FALSE;
}
i = 0;
dwSize = MAX_PATH;
while (RegEnumKeyEx (hKey, i, pszName, &dwSize, NULL, NULL, NULL, &FileTime) == ERROR_SUCCESS)
{
if (RegOpenKey(hKey,pszName,&hSubKey)==ERROR_SUCCESS)
{
dwType = REG_SZ;
dwSize = MAX_PATH;
if (RegQueryValueEx(hSubKey,
_TEXT("DisplayName"),
NULL,
&dwType,
(LPBYTE)pszDisplayName,
&dwSize) == ERROR_SUCCESS)
{
index = SendDlgItemMessage(hwndDlg,IDC_SOFTWARELIST,LB_ADDSTRING,0,(LPARAM)pszDisplayName);
SendDlgItemMessage(hwndDlg,IDC_SOFTWARELIST,LB_SETITEMDATA,index,(LPARAM)hSubKey);
}
}
dwSize = MAX_PATH;
i++;
}
RegCloseKey(hKey);
FillSoftwareList(hwndDlg);
break;
case WM_COMMAND:
switch (LOWORD(wParam))
{
case IDC_SHOWUPDATES:
if (HIWORD(wParam) == BN_CLICKED)
{
SendDlgItemMessage(hwndDlg, IDC_SOFTWARELIST, LB_RESETCONTENT, 0, 0);
FillSoftwareList(hwndDlg);
}
break;
case IDC_SOFTWARELIST:
if (HIWORD(wParam) == LBN_DBLCLK)
{

View file

@ -23,8 +23,9 @@
/* controls */
#define IDC_INSTALL 101
#define IDC_SOFTWARELIST 102
#define IDC_ADDREMOVE 103
#define IDC_SOFTWARELIST 102
#define IDC_ADDREMOVE 103
#define IDC_SHOWUPDATES 104
#endif /* __CPL_RESOURCE_H */