Index: reactos/base/applications/rapps/CMakeLists.txt =================================================================== --- reactos/base/applications/rapps/CMakeLists.txt (revision 58102) +++ reactos/base/applications/rapps/CMakeLists.txt (working copy) @@ -25,7 +25,7 @@ add_pch(rapps rapps.h) set_module_type(rapps win32gui UNICODE) target_link_libraries(rapps uuid) -add_importlibs(rapps advapi32 comctl32 gdi32 urlmon user32 shell32 shlwapi ole32 msvcrt kernel32 ntdll) +add_importlibs(rapps advapi32 comctl32 gdi32 wininet user32 shell32 shlwapi ole32 msvcrt kernel32 ntdll) add_dependencies(rapps rappsmsg) add_message_headers(ANSI rappsmsg.mc) add_cd_file(TARGET rapps DESTINATION reactos/system32 FOR all) Index: reactos/base/applications/rapps/lang/bg-BG.rc =================================================================== --- reactos/base/applications/rapps/lang/bg-BG.rc (revision 58102) +++ reactos/base/applications/rapps/lang/bg-BG.rc (working copy) @@ -52,7 +52,7 @@ END END -IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 254, 144 +IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 254, 200 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Настройки" FONT 8, "MS Shell Dlg" @@ -68,9 +68,17 @@ PUSHBUTTON "Из&бор", IDC_CHOOSE, 187, 85, 50, 14 AUTOCHECKBOX "След слагане, използваните файлове да се изтриват", IDC_DEL_AFTER_INSTALL, 16, 100, 218, 12 - PUSHBUTTON "Подразбирано", IDC_DEFAULT_SETTINGS, 8, 124, 60, 14 - PUSHBUTTON "Добре", IDOK, 116, 124, 60, 14 - PUSHBUTTON "Отказ", IDCANCEL, 181, 124, 60, 14 + GROUPBOX "Proxy", -1, 4, 116, 240, 61 + CONTROL "System proxy settings", IDC_PROXY_DEFAULT, "Button", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 15, 130, 87, 10 + CONTROL "Direct (No proxy)", IDC_NO_PROXY, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 15, 145, 71, 10 + CONTROL "Proxy", IDC_USE_PROXY, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 15, 160, 35, 10 + EDITTEXT IDC_PROXY_SERVER, 50, 160, 70, 14, ES_AUTOHSCROLL + LTEXT "No proxy for", -1, 122, 160, 42, 8 + EDITTEXT IDC_NO_PROXY_FOR, 165, 160, 70, 14, ES_AUTOHSCROLL + + PUSHBUTTON "Подразбирано", IDC_DEFAULT_SETTINGS, 8, 180, 60, 14 + PUSHBUTTON "Добре", IDOK, 116, 180, 60, 14 + PUSHBUTTON "Отказ", IDCANCEL, 181, 180, 60, 14 END IDD_INSTALL_DIALOG DIALOGEX DISCARDABLE 0, 0, 216, 97 Index: reactos/base/applications/rapps/lang/cs-CZ.rc =================================================================== --- reactos/base/applications/rapps/lang/cs-CZ.rc (revision 58102) +++ reactos/base/applications/rapps/lang/cs-CZ.rc (working copy) @@ -53,7 +53,7 @@ END END -IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 250, 144 +IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 250, 200 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Nastavení" FONT 8, "MS Shell Dlg" @@ -69,9 +69,17 @@ PUSHBUTTON "&Procházet...", IDC_CHOOSE, 187, 85, 50, 14 AUTOCHECKBOX "&Smazat instalátor programu po dokončení instalace", IDC_DEL_AFTER_INSTALL, 16, 100, 218, 12 - PUSHBUTTON "Výchozí", IDC_DEFAULT_SETTINGS, 8, 124, 60, 14 - PUSHBUTTON "OK", IDOK, 116, 124, 60, 14 - PUSHBUTTON "Storno", IDCANCEL, 181, 124, 60, 14 + GROUPBOX "Proxy", -1, 4, 116, 240, 61 + CONTROL "System proxy settings", IDC_PROXY_DEFAULT, "Button", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 15, 130, 87, 10 + CONTROL "Direct (No proxy)", IDC_NO_PROXY, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 15, 145, 71, 10 + CONTROL "Proxy", IDC_USE_PROXY, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 15, 160, 35, 10 + EDITTEXT IDC_PROXY_SERVER, 50, 160, 70, 14, ES_AUTOHSCROLL + LTEXT "No proxy for", -1, 122, 160, 42, 8 + EDITTEXT IDC_NO_PROXY_FOR, 165, 160, 70, 14, ES_AUTOHSCROLL + + PUSHBUTTON "Výchozí", IDC_DEFAULT_SETTINGS, 8, 180, 60, 14 + PUSHBUTTON "OK", IDOK, 116, 180, 60, 14 + PUSHBUTTON "Storno", IDCANCEL, 181, 180, 60, 14 END IDD_INSTALL_DIALOG DIALOGEX DISCARDABLE 0, 0, 216, 97 Index: reactos/base/applications/rapps/lang/de-DE.rc =================================================================== --- reactos/base/applications/rapps/lang/de-DE.rc (revision 58102) +++ reactos/base/applications/rapps/lang/de-DE.rc (working copy) @@ -48,7 +48,7 @@ END END -IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 250, 144 +IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 250, 200 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Einstellungen" FONT 8, "MS Shell Dlg" @@ -64,9 +64,17 @@ PUSHBUTTON "&Wählen", IDC_CHOOSE, 187, 85, 50, 14 AUTOCHECKBOX "&Installer nach Programminstallation löschen", IDC_DEL_AFTER_INSTALL, 16, 100, 218, 12 - PUSHBUTTON "Vorgabe", IDC_DEFAULT_SETTINGS, 8, 124, 60, 14 - PUSHBUTTON "OK", IDOK, 116, 124, 60, 14 - PUSHBUTTON "Abbrechen", IDCANCEL, 181, 124, 60, 14 + GROUPBOX "Proxy", -1, 4, 116, 240, 61 + CONTROL "System proxy settings", IDC_PROXY_DEFAULT, "Button", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 15, 130, 87, 10 + CONTROL "Direct (No proxy)", IDC_NO_PROXY, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 15, 145, 71, 10 + CONTROL "Proxy", IDC_USE_PROXY, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 15, 160, 35, 10 + EDITTEXT IDC_PROXY_SERVER, 50, 160, 70, 14, ES_AUTOHSCROLL + LTEXT "No proxy for", -1, 122, 160, 42, 8 + EDITTEXT IDC_NO_PROXY_FOR, 165, 160, 70, 14, ES_AUTOHSCROLL + + PUSHBUTTON "Vorgabe", IDC_DEFAULT_SETTINGS, 8, 180, 60, 14 + PUSHBUTTON "OK", IDOK, 116, 180, 60, 14 + PUSHBUTTON "Abbrechen", IDCANCEL, 181, 180, 60, 14 END IDD_INSTALL_DIALOG DIALOGEX DISCARDABLE 0, 0, 216, 97 Index: reactos/base/applications/rapps/lang/en-US.rc =================================================================== --- reactos/base/applications/rapps/lang/en-US.rc (revision 58102) +++ reactos/base/applications/rapps/lang/en-US.rc (working copy) @@ -48,7 +48,7 @@ END END -IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 250, 144 +IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 250, 200 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Settings" FONT 8, "MS Shell Dlg" @@ -64,9 +64,17 @@ PUSHBUTTON "&Choose", IDC_CHOOSE, 187, 85, 50, 14 AUTOCHECKBOX "&Delete program installer after installation", IDC_DEL_AFTER_INSTALL, 16, 100, 218, 12 - PUSHBUTTON "Default", IDC_DEFAULT_SETTINGS, 8, 124, 60, 14 - PUSHBUTTON "OK", IDOK, 116, 124, 60, 14 - PUSHBUTTON "Cancel", IDCANCEL, 181, 124, 60, 14 + GROUPBOX "Proxy", -1, 4, 116, 240, 61 + CONTROL "System proxy settings", IDC_PROXY_DEFAULT, "Button", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 15, 130, 87, 10 + CONTROL "Direct (No proxy)", IDC_NO_PROXY, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 15, 145, 71, 10 + CONTROL "Proxy", IDC_USE_PROXY, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 15, 160, 35, 10 + EDITTEXT IDC_PROXY_SERVER, 50, 160, 70, 14, ES_AUTOHSCROLL + LTEXT "No proxy for", -1, 122, 160, 42, 8 + EDITTEXT IDC_NO_PROXY_FOR, 165, 160, 70, 14, ES_AUTOHSCROLL + + PUSHBUTTON "Default", IDC_DEFAULT_SETTINGS, 8, 180, 60, 14 + PUSHBUTTON "OK", IDOK, 116, 180, 60, 14 + PUSHBUTTON "Cancel", IDCANCEL, 181, 180, 60, 14 END IDD_INSTALL_DIALOG DIALOGEX DISCARDABLE 0, 0, 216, 97 Index: reactos/base/applications/rapps/lang/es-ES.rc =================================================================== --- reactos/base/applications/rapps/lang/es-ES.rc (revision 58102) +++ reactos/base/applications/rapps/lang/es-ES.rc (working copy) @@ -48,7 +48,7 @@ END END -IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 250, 144 +IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 250, 200 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Ajustes" FONT 8, "MS Shell Dlg" @@ -64,9 +64,17 @@ PUSHBUTTON "&Seleccionar", IDC_CHOOSE, 187, 85, 50, 14 AUTOCHECKBOX "&Borrar el instalador del programa tras su instalación", IDC_DEL_AFTER_INSTALL, 16, 100, 218, 12 - PUSHBUTTON "Por defecto", IDC_DEFAULT_SETTINGS, 8, 124, 60, 14 - PUSHBUTTON "Aceptar", IDOK, 116, 124, 60, 14 - PUSHBUTTON "Cancelar", IDCANCEL, 181, 124, 60, 14 + GROUPBOX "Proxy", -1, 4, 116, 240, 61 + CONTROL "System proxy settings", IDC_PROXY_DEFAULT, "Button", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 15, 130, 87, 10 + CONTROL "Direct (No proxy)", IDC_NO_PROXY, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 15, 145, 71, 10 + CONTROL "Proxy", IDC_USE_PROXY, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 15, 160, 35, 10 + EDITTEXT IDC_PROXY_SERVER, 50, 160, 70, 14, ES_AUTOHSCROLL + LTEXT "No proxy for", -1, 122, 160, 42, 8 + EDITTEXT IDC_NO_PROXY_FOR, 165, 160, 70, 14, ES_AUTOHSCROLL + + PUSHBUTTON "Por defecto", IDC_DEFAULT_SETTINGS, 8, 180, 60, 14 + PUSHBUTTON "Aceptar", IDOK, 116, 180, 60, 14 + PUSHBUTTON "Cancelar", IDCANCEL, 181, 180, 60, 14 END IDD_INSTALL_DIALOG DIALOGEX DISCARDABLE 0, 0, 216, 97 Index: reactos/base/applications/rapps/lang/fr-FR.rc =================================================================== --- reactos/base/applications/rapps/lang/fr-FR.rc (revision 58102) +++ reactos/base/applications/rapps/lang/fr-FR.rc (working copy) @@ -48,7 +48,7 @@ END END -IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 250, 144 +IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 250, 200 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Configuration" FONT 8, "MS Shell Dlg" @@ -64,9 +64,17 @@ PUSHBUTTON "&Sélectionner", IDC_CHOOSE, 187, 85, 50, 14 AUTOCHECKBOX "&Supprimer l'installateur du programme après l'installation", IDC_DEL_AFTER_INSTALL, 16, 100, 218, 12 - PUSHBUTTON "Par défaut", IDC_DEFAULT_SETTINGS, 8, 124, 60, 14 - PUSHBUTTON "Accepter", IDOK, 116, 124, 60, 14 - PUSHBUTTON "Annuler", IDCANCEL, 181, 124, 60, 14 + GROUPBOX "Proxy", -1, 4, 116, 240, 61 + CONTROL "System proxy settings", IDC_PROXY_DEFAULT, "Button", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 15, 130, 87, 10 + CONTROL "Direct (No proxy)", IDC_NO_PROXY, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 15, 145, 71, 10 + CONTROL "Proxy", IDC_USE_PROXY, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 15, 160, 35, 10 + EDITTEXT IDC_PROXY_SERVER, 50, 160, 70, 14, ES_AUTOHSCROLL + LTEXT "No proxy for", -1, 122, 160, 42, 8 + EDITTEXT IDC_NO_PROXY_FOR, 165, 160, 70, 14, ES_AUTOHSCROLL + + PUSHBUTTON "Par défaut", IDC_DEFAULT_SETTINGS, 8, 180, 60, 14 + PUSHBUTTON "Accepter", IDOK, 116, 180, 60, 14 + PUSHBUTTON "Annuler", IDCANCEL, 181, 180, 60, 14 END IDD_INSTALL_DIALOG DIALOGEX DISCARDABLE 0, 0, 216, 97 Index: reactos/base/applications/rapps/lang/it-IT.rc =================================================================== --- reactos/base/applications/rapps/lang/it-IT.rc (revision 58102) +++ reactos/base/applications/rapps/lang/it-IT.rc (working copy) @@ -48,7 +48,7 @@ END END -IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 250, 144 +IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 250, 200 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Impostazioni" FONT 8, "MS Shell Dlg" @@ -64,9 +64,17 @@ PUSHBUTTON "&Scegli", IDC_CHOOSE, 187, 85, 50, 14 AUTOCHECKBOX "&Rimuovere la procedura di installazione dopo l'uso", IDC_DEL_AFTER_INSTALL, 16, 100, 218, 12 - PUSHBUTTON "Predefiniti", IDC_DEFAULT_SETTINGS, 8, 124, 60, 14 - PUSHBUTTON "OK", IDOK, 116, 124, 60, 14 - PUSHBUTTON "Annulla", IDCANCEL, 181, 124, 60, 14 + GROUPBOX "Proxy", -1, 4, 116, 240, 61 + CONTROL "System proxy settings", IDC_PROXY_DEFAULT, "Button", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 15, 130, 87, 10 + CONTROL "Direct (No proxy)", IDC_NO_PROXY, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 15, 145, 71, 10 + CONTROL "Proxy", IDC_USE_PROXY, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 15, 160, 35, 10 + EDITTEXT IDC_PROXY_SERVER, 50, 160, 70, 14, ES_AUTOHSCROLL + LTEXT "No proxy for", -1, 122, 160, 42, 8 + EDITTEXT IDC_NO_PROXY_FOR, 165, 160, 70, 14, ES_AUTOHSCROLL + + PUSHBUTTON "Predefiniti", IDC_DEFAULT_SETTINGS, 8, 180, 60, 14 + PUSHBUTTON "OK", IDOK, 116, 180, 60, 14 + PUSHBUTTON "Annulla", IDCANCEL, 181, 180, 60, 14 END IDD_INSTALL_DIALOG DIALOGEX DISCARDABLE 0, 0, 216, 97 Index: reactos/base/applications/rapps/lang/ja-JP.rc =================================================================== --- reactos/base/applications/rapps/lang/ja-JP.rc (revision 58102) +++ reactos/base/applications/rapps/lang/ja-JP.rc (working copy) @@ -48,7 +48,7 @@ END END -IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 250, 144 +IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 250, 200 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "設定" FONT 9, "MS UI Gothic" @@ -64,9 +64,17 @@ PUSHBUTTON "選択(&C)", IDC_CHOOSE, 187, 85, 50, 14 AUTOCHECKBOX "インストール後にプログラムのインストーラを削除する(&D)", IDC_DEL_AFTER_INSTALL, 16, 100, 218, 12 - PUSHBUTTON "デフォルト", IDC_DEFAULT_SETTINGS, 8, 124, 60, 14 - PUSHBUTTON "OK", IDOK, 116, 124, 60, 14 - PUSHBUTTON "キャンセル", IDCANCEL, 181, 124, 60, 14 + GROUPBOX "Proxy", -1, 4, 116, 240, 61 + CONTROL "System proxy settings", IDC_PROXY_DEFAULT, "Button", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 15, 130, 87, 10 + CONTROL "Direct (No proxy)", IDC_NO_PROXY, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 15, 145, 71, 10 + CONTROL "Proxy", IDC_USE_PROXY, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 15, 160, 35, 10 + EDITTEXT IDC_PROXY_SERVER, 50, 160, 70, 14, ES_AUTOHSCROLL + LTEXT "No proxy for", -1, 122, 160, 42, 8 + EDITTEXT IDC_NO_PROXY_FOR, 165, 160, 70, 14, ES_AUTOHSCROLL + + PUSHBUTTON "デフォルト", IDC_DEFAULT_SETTINGS, 8, 180, 60, 14 + PUSHBUTTON "OK", IDOK, 116, 180, 60, 14 + PUSHBUTTON "キャンセル", IDCANCEL, 181, 180, 60, 14 END IDD_INSTALL_DIALOG DIALOGEX DISCARDABLE 0, 0, 216, 97 Index: reactos/base/applications/rapps/lang/no-NO.rc =================================================================== --- reactos/base/applications/rapps/lang/no-NO.rc (revision 58102) +++ reactos/base/applications/rapps/lang/no-NO.rc (working copy) @@ -48,7 +48,7 @@ END END -IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 250, 144 +IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 250, 200 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Settings" FONT 8, "MS Shell Dlg" @@ -64,9 +64,17 @@ PUSHBUTTON "&Choose", IDC_CHOOSE, 187, 85, 50, 14 AUTOCHECKBOX "&Delete installers of programs after installation", IDC_DEL_AFTER_INSTALL, 16, 100, 218, 12 - PUSHBUTTON "Default", IDC_DEFAULT_SETTINGS, 8, 124, 60, 14 - PUSHBUTTON "OK", IDOK, 116, 124, 60, 14 - PUSHBUTTON "Cancel", IDCANCEL, 181, 124, 60, 14 + GROUPBOX "Proxy", -1, 4, 116, 240, 61 + CONTROL "System proxy settings", IDC_PROXY_DEFAULT, "Button", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 15, 130, 87, 10 + CONTROL "Direct (No proxy)", IDC_NO_PROXY, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 15, 145, 71, 10 + CONTROL "Proxy", IDC_USE_PROXY, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 15, 160, 35, 10 + EDITTEXT IDC_PROXY_SERVER, 50, 160, 70, 14, ES_AUTOHSCROLL + LTEXT "No proxy for", -1, 122, 160, 42, 8 + EDITTEXT IDC_NO_PROXY_FOR, 165, 160, 70, 14, ES_AUTOHSCROLL + + PUSHBUTTON "Default", IDC_DEFAULT_SETTINGS, 8, 180, 60, 14 + PUSHBUTTON "OK", IDOK, 116, 180, 60, 14 + PUSHBUTTON "Cancel", IDCANCEL, 181, 180, 60, 14 END IDD_INSTALL_DIALOG DIALOGEX DISCARDABLE 0, 0, 216, 97 Index: reactos/base/applications/rapps/lang/pl-PL.rc =================================================================== --- reactos/base/applications/rapps/lang/pl-PL.rc (revision 58102) +++ reactos/base/applications/rapps/lang/pl-PL.rc (working copy) @@ -56,7 +56,7 @@ END END -IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 250, 144 +IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 250, 200 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Ustawienia" FONT 8, "MS Shell Dlg" @@ -72,9 +72,17 @@ PUSHBUTTON "&Wybierz", IDC_CHOOSE, 187, 85, 50, 14 AUTOCHECKBOX "&Usuń instalatory programów po ich zainstalowaniu", IDC_DEL_AFTER_INSTALL, 16, 100, 218, 12 - PUSHBUTTON "Domyślne", IDC_DEFAULT_SETTINGS, 8, 124, 60, 14 - PUSHBUTTON "OK", IDOK, 116, 124, 60, 14 - PUSHBUTTON "Anuluj", IDCANCEL, 181, 124, 60, 14 + GROUPBOX "Proxy", -1, 4, 116, 240, 61 + CONTROL "System proxy settings", IDC_PROXY_DEFAULT, "Button", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 15, 130, 87, 10 + CONTROL "Direct (No proxy)", IDC_NO_PROXY, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 15, 145, 71, 10 + CONTROL "Proxy", IDC_USE_PROXY, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 15, 160, 35, 10 + EDITTEXT IDC_PROXY_SERVER, 50, 160, 70, 14, ES_AUTOHSCROLL + LTEXT "No proxy for", -1, 122, 160, 42, 8 + EDITTEXT IDC_NO_PROXY_FOR, 165, 160, 70, 14, ES_AUTOHSCROLL + + PUSHBUTTON "Domyślne", IDC_DEFAULT_SETTINGS, 8, 180, 60, 14 + PUSHBUTTON "OK", IDOK, 116, 180, 60, 14 + PUSHBUTTON "Anuluj", IDCANCEL, 181, 180, 60, 14 END IDD_INSTALL_DIALOG DIALOGEX DISCARDABLE 0, 0, 216, 97 Index: reactos/base/applications/rapps/lang/pt-BR.rc =================================================================== --- reactos/base/applications/rapps/lang/pt-BR.rc (revision 58102) +++ reactos/base/applications/rapps/lang/pt-BR.rc (working copy) @@ -50,7 +50,7 @@ END END -IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 250, 144 +IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 250, 200 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Configurações" FONT 8, "MS Shell Dlg" @@ -66,9 +66,17 @@ PUSHBUTTON "&Escolher", IDC_CHOOSE, 187, 85, 50, 14 AUTOCHECKBOX "&Deletar instalador após a instalação do programa", IDC_DEL_AFTER_INSTALL, 16, 100, 218, 12 - PUSHBUTTON "Padrão", IDC_DEFAULT_SETTINGS, 8, 124, 60, 14 - PUSHBUTTON "OK", IDOK, 116, 124, 60, 14 - PUSHBUTTON "Cancelar", IDCANCEL, 181, 124, 60, 14 + GROUPBOX "Proxy", -1, 4, 116, 240, 61 + CONTROL "System proxy settings", IDC_PROXY_DEFAULT, "Button", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 15, 130, 87, 10 + CONTROL "Direct (No proxy)", IDC_NO_PROXY, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 15, 145, 71, 10 + CONTROL "Proxy", IDC_USE_PROXY, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 15, 160, 35, 10 + EDITTEXT IDC_PROXY_SERVER, 50, 160, 70, 14, ES_AUTOHSCROLL + LTEXT "No proxy for", -1, 122, 160, 42, 8 + EDITTEXT IDC_NO_PROXY_FOR, 165, 160, 70, 14, ES_AUTOHSCROLL + + PUSHBUTTON "Padrão", IDC_DEFAULT_SETTINGS, 8, 180, 60, 14 + PUSHBUTTON "OK", IDOK, 116, 180, 60, 14 + PUSHBUTTON "Cancelar", IDCANCEL, 181, 180, 60, 14 END IDD_INSTALL_DIALOG DIALOGEX DISCARDABLE 0, 0, 216, 97 Index: reactos/base/applications/rapps/lang/ro-RO.rc =================================================================== --- reactos/base/applications/rapps/lang/ro-RO.rc (revision 58102) +++ reactos/base/applications/rapps/lang/ro-RO.rc (working copy) @@ -55,7 +55,7 @@ END END -IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 250, 144 +IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 250, 200 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Preferințe" FONT 8, "MS Shell Dlg" @@ -71,9 +71,17 @@ PUSHBUTTON "Spe&cificare…", IDC_CHOOSE, 187, 85, 50, 14 AUTOCHECKBOX "Șt&erge instalatorul aplicației după instalare", IDC_DEL_AFTER_INSTALL, 16, 100, 218, 12 - PUSHBUTTON "&Implicite", IDC_DEFAULT_SETTINGS, 8, 124, 60, 14 - PUSHBUTTON "Con&firmă", IDOK, 116, 124, 60, 14 - PUSHBUTTON "A&nulează", IDCANCEL, 181, 124, 60, 14 + GROUPBOX "Proxy", -1, 4, 116, 240, 61 + CONTROL "System proxy settings", IDC_PROXY_DEFAULT, "Button", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 15, 130, 87, 10 + CONTROL "Direct (No proxy)", IDC_NO_PROXY, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 15, 145, 71, 10 + CONTROL "Proxy", IDC_USE_PROXY, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 15, 160, 35, 10 + EDITTEXT IDC_PROXY_SERVER, 50, 160, 70, 14, ES_AUTOHSCROLL + LTEXT "No proxy for", -1, 122, 160, 42, 8 + EDITTEXT IDC_NO_PROXY_FOR, 165, 160, 70, 14, ES_AUTOHSCROLL + + PUSHBUTTON "&Implicite", IDC_DEFAULT_SETTINGS, 8, 180, 60, 14 + PUSHBUTTON "Con&firmă", IDOK, 116, 180, 60, 14 + PUSHBUTTON "A&nulează", IDCANCEL, 181, 180, 60, 14 END IDD_INSTALL_DIALOG DIALOGEX DISCARDABLE 0, 0, 216, 97 Index: reactos/base/applications/rapps/lang/ru-RU.rc =================================================================== --- reactos/base/applications/rapps/lang/ru-RU.rc (revision 58102) +++ reactos/base/applications/rapps/lang/ru-RU.rc (working copy) @@ -48,7 +48,7 @@ END END -IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 250, 144 +IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 250, 200 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Параметры" FONT 8, "MS Shell Dlg" @@ -64,9 +64,17 @@ PUSHBUTTON "В&ыбрать", IDC_CHOOSE, 187, 85, 50, 14 AUTOCHECKBOX "&Удалять инсталляторы программ после установки", IDC_DEL_AFTER_INSTALL, 16, 100, 218, 12 - PUSHBUTTON "По умолчанию", IDC_DEFAULT_SETTINGS, 8, 124, 60, 14 - PUSHBUTTON "OK", IDOK, 116, 124, 60, 14 - PUSHBUTTON "Отмена", IDCANCEL, 181, 124, 60, 14 + GROUPBOX "Proxy", -1, 4, 116, 240, 61 + CONTROL "System proxy settings", IDC_PROXY_DEFAULT, "Button", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 15, 130, 87, 10 + CONTROL "Direct (No proxy)", IDC_NO_PROXY, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 15, 145, 71, 10 + CONTROL "Proxy", IDC_USE_PROXY, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 15, 160, 35, 10 + EDITTEXT IDC_PROXY_SERVER, 50, 160, 70, 14, ES_AUTOHSCROLL + LTEXT "No proxy for", -1, 122, 160, 42, 8 + EDITTEXT IDC_NO_PROXY_FOR, 165, 160, 70, 14, ES_AUTOHSCROLL + + PUSHBUTTON "По умолчанию", IDC_DEFAULT_SETTINGS, 8, 180, 60, 14 + PUSHBUTTON "OK", IDOK, 116, 180, 60, 14 + PUSHBUTTON "Отмена", IDCANCEL, 181, 180, 60, 14 END IDD_INSTALL_DIALOG DIALOGEX DISCARDABLE 0, 0, 216, 97 Index: reactos/base/applications/rapps/lang/sk-SK.rc =================================================================== --- reactos/base/applications/rapps/lang/sk-SK.rc (revision 58102) +++ reactos/base/applications/rapps/lang/sk-SK.rc (working copy) @@ -53,7 +53,7 @@ END END -IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 250, 144 +IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 250, 200 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Nastavenia" FONT 8, "MS Shell Dlg" @@ -69,9 +69,17 @@ PUSHBUTTON "&Vybrať", IDC_CHOOSE, 187, 85, 50, 14 AUTOCHECKBOX "&Zmazať inštalačné programy po nainštalovaní", IDC_DEL_AFTER_INSTALL, 16, 100, 218, 12 - PUSHBUTTON "Predvolené", IDC_DEFAULT_SETTINGS, 8, 124, 60, 14 - PUSHBUTTON "OK", IDOK, 116, 124, 60, 14 - PUSHBUTTON "Zrušiť", IDCANCEL, 181, 124, 60, 14 + GROUPBOX "Proxy", -1, 4, 116, 240, 61 + CONTROL "System proxy settings", IDC_PROXY_DEFAULT, "Button", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 15, 130, 87, 10 + CONTROL "Direct (No proxy)", IDC_NO_PROXY, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 15, 145, 71, 10 + CONTROL "Proxy", IDC_USE_PROXY, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 15, 160, 35, 10 + EDITTEXT IDC_PROXY_SERVER, 50, 160, 70, 14, ES_AUTOHSCROLL + LTEXT "No proxy for", -1, 122, 160, 42, 8 + EDITTEXT IDC_NO_PROXY_FOR, 165, 160, 70, 14, ES_AUTOHSCROLL + + PUSHBUTTON "Predvolené", IDC_DEFAULT_SETTINGS, 8, 180, 60, 14 + PUSHBUTTON "OK", IDOK, 116, 180, 60, 14 + PUSHBUTTON "Zrušiť", IDCANCEL, 181, 180, 60, 14 END IDD_INSTALL_DIALOG DIALOGEX DISCARDABLE 0, 0, 216, 97 Index: reactos/base/applications/rapps/lang/sv-SE.rc =================================================================== --- reactos/base/applications/rapps/lang/sv-SE.rc (revision 58102) +++ reactos/base/applications/rapps/lang/sv-SE.rc (working copy) @@ -55,7 +55,7 @@ END END -IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 250, 144 +IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 250, 200 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Inställningar" FONT 8, "MS Shell Dlg" @@ -71,9 +71,17 @@ PUSHBUTTON "&Välj", IDC_CHOOSE, 187, 85, 50, 14 AUTOCHECKBOX "&Ta bort programinstallerare efter installation", IDC_DEL_AFTER_INSTALL, 16, 100, 218, 12 - PUSHBUTTON "Standard", IDC_DEFAULT_SETTINGS, 8, 124, 60, 14 - PUSHBUTTON "OK", IDOK, 116, 124, 60, 14 - PUSHBUTTON "Avbryt", IDCANCEL, 181, 124, 60, 14 + GROUPBOX "Proxy", -1, 4, 116, 240, 61 + CONTROL "System proxy settings", IDC_PROXY_DEFAULT, "Button", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 15, 130, 87, 10 + CONTROL "Direct (No proxy)", IDC_NO_PROXY, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 15, 145, 71, 10 + CONTROL "Proxy", IDC_USE_PROXY, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 15, 160, 35, 10 + EDITTEXT IDC_PROXY_SERVER, 50, 160, 70, 14, ES_AUTOHSCROLL + LTEXT "No proxy for", -1, 122, 160, 42, 8 + EDITTEXT IDC_NO_PROXY_FOR, 165, 160, 70, 14, ES_AUTOHSCROLL + + PUSHBUTTON "Standard", IDC_DEFAULT_SETTINGS, 8, 180, 60, 14 + PUSHBUTTON "OK", IDOK, 116, 180, 60, 14 + PUSHBUTTON "Avbryt", IDCANCEL, 181, 180, 60, 14 END IDD_INSTALL_DIALOG DIALOGEX DISCARDABLE 0, 0, 216, 97 Index: reactos/base/applications/rapps/lang/uk-UA.rc =================================================================== --- reactos/base/applications/rapps/lang/uk-UA.rc (revision 58102) +++ reactos/base/applications/rapps/lang/uk-UA.rc (working copy) @@ -56,7 +56,7 @@ END END -IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 250, 144 +IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 250, 200 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Налаштування" FONT 8, "MS Shell Dlg" @@ -72,9 +72,17 @@ PUSHBUTTON "&Обрати", IDC_CHOOSE, 187, 85, 50, 14 AUTOCHECKBOX "&Видаляти інсталятори програм після встановлення", IDC_DEL_AFTER_INSTALL, 16, 100, 218, 12 - PUSHBUTTON "Стандартно", IDC_DEFAULT_SETTINGS, 8, 124, 60, 14 - PUSHBUTTON "OK", IDOK, 116, 124, 60, 14 - PUSHBUTTON "Скасувати", IDCANCEL, 181, 124, 60, 14 + GROUPBOX "Proxy", -1, 4, 116, 240, 61 + CONTROL "System proxy settings", IDC_PROXY_DEFAULT, "Button", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 15, 130, 87, 10 + CONTROL "Direct (No proxy)", IDC_NO_PROXY, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 15, 145, 71, 10 + CONTROL "Proxy", IDC_USE_PROXY, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 15, 160, 35, 10 + EDITTEXT IDC_PROXY_SERVER, 50, 160, 70, 14, ES_AUTOHSCROLL + LTEXT "No proxy for", -1, 122, 160, 42, 8 + EDITTEXT IDC_NO_PROXY_FOR, 165, 160, 70, 14, ES_AUTOHSCROLL + + PUSHBUTTON "Стандартно", IDC_DEFAULT_SETTINGS, 8, 180, 60, 14 + PUSHBUTTON "OK", IDOK, 116, 180, 60, 14 + PUSHBUTTON "Скасувати", IDCANCEL, 181, 180, 60, 14 END IDD_INSTALL_DIALOG DIALOGEX DISCARDABLE 0, 0, 216, 97 Index: reactos/base/applications/rapps/lang/zh-CN.rc =================================================================== --- reactos/base/applications/rapps/lang/zh-CN.rc (revision 58102) +++ reactos/base/applications/rapps/lang/zh-CN.rc (working copy) @@ -52,7 +52,7 @@ END END -IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 250, 144 +IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 250, 200 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "设置" FONT 8, "MS Shell Dlg" @@ -68,9 +68,17 @@ PUSHBUTTON "选择(&C)", IDC_CHOOSE, 187, 85, 50, 14 AUTOCHECKBOX "在安装完程序后删除安装程序(&D)", IDC_DEL_AFTER_INSTALL, 16, 100, 218, 12 - PUSHBUTTON "缺省", IDC_DEFAULT_SETTINGS, 8, 124, 60, 14 - PUSHBUTTON "确定", IDOK, 116, 124, 60, 14 - PUSHBUTTON "取消", IDCANCEL, 181, 124, 60, 14 + GROUPBOX "Proxy", -1, 4, 116, 240, 61 + CONTROL "System proxy settings", IDC_PROXY_DEFAULT, "Button", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 15, 130, 87, 10 + CONTROL "Direct (No proxy)", IDC_NO_PROXY, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 15, 145, 71, 10 + CONTROL "Proxy", IDC_USE_PROXY, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 15, 160, 35, 10 + EDITTEXT IDC_PROXY_SERVER, 50, 160, 70, 14, ES_AUTOHSCROLL + LTEXT "No proxy for", -1, 122, 160, 42, 8 + EDITTEXT IDC_NO_PROXY_FOR, 165, 160, 70, 14, ES_AUTOHSCROLL + + PUSHBUTTON "缺省", IDC_DEFAULT_SETTINGS, 8, 180, 60, 14 + PUSHBUTTON "确定", IDOK, 116, 180, 60, 14 + PUSHBUTTON "取消", IDCANCEL, 181, 180, 60, 14 END IDD_INSTALL_DIALOG DIALOGEX DISCARDABLE 0, 0, 216, 97 Index: reactos/base/applications/rapps/loaddlg.c =================================================================== --- reactos/base/applications/rapps/loaddlg.c (revision 58102) +++ reactos/base/applications/rapps/loaddlg.c (working copy) @@ -33,189 +33,30 @@ static PAPPLICATION_INFO AppInfo; static HICON hIcon = NULL; -typedef struct _IBindStatusCallbackImpl -{ - const IBindStatusCallbackVtbl *vtbl; - LONG ref; - HWND hDialog; - BOOL *pbCancelled; -} IBindStatusCallbackImpl; - static -HRESULT WINAPI -dlQueryInterface(IBindStatusCallback* This, REFIID riid, void** ppvObject) -{ - if (!ppvObject) return E_POINTER; - - if (IsEqualIID(riid, &IID_IUnknown) || IsEqualIID(riid, &IID_IBindStatusCallback)) - { - IBindStatusCallback_AddRef(This); - *ppvObject = This; - return S_OK; - } - - return E_NOINTERFACE; -} - -static -ULONG WINAPI -dlAddRef(IBindStatusCallback* iface) -{ - IBindStatusCallbackImpl *This = (IBindStatusCallbackImpl*) iface; - return InterlockedIncrement(&This->ref); -} - -static -ULONG WINAPI -dlRelease(IBindStatusCallback* iface) -{ - IBindStatusCallbackImpl *This = (IBindStatusCallbackImpl*) iface; - DWORD ref = InterlockedDecrement(&This->ref); - - if (!ref) - { - DestroyWindow(This->hDialog); - HeapFree(GetProcessHeap(), 0, This); - } - - return ref; -} - -static -HRESULT WINAPI -dlOnStartBinding(IBindStatusCallback* iface, DWORD dwReserved, IBinding* pib) -{ - return S_OK; -} - -static -HRESULT WINAPI -dlGetPriority(IBindStatusCallback* iface, LONG* pnPriority) -{ - return S_OK; -} - -static -HRESULT WINAPI -dlOnLowResource( IBindStatusCallback* iface, DWORD reserved) -{ - return S_OK; -} - -static -HRESULT WINAPI -dlOnProgress(IBindStatusCallback* iface, - ULONG ulProgress, - ULONG ulProgressMax, - ULONG ulStatusCode, - LPCWSTR szStatusText) -{ - IBindStatusCallbackImpl *This = (IBindStatusCallbackImpl *) iface; - HWND Item; - LONG r; - WCHAR OldText[100]; - - Item = GetDlgItem(This->hDialog, IDC_DOWNLOAD_PROGRESS); - if (Item && ulProgressMax) - { - SendMessageW(Item, PBM_SETPOS, ((ULONGLONG)ulProgress * 100) / ulProgressMax, 0); - } - - Item = GetDlgItem(This->hDialog, IDC_DOWNLOAD_STATUS); - if (Item && szStatusText) - { - SendMessageW(Item, WM_GETTEXT, sizeof(OldText) / sizeof(OldText[0]), (LPARAM) OldText); - if (sizeof(OldText) / sizeof(OldText[0]) - 1 <= wcslen(OldText) || 0 != wcscmp(OldText, szStatusText)) - { - SendMessageW(Item, WM_SETTEXT, 0, (LPARAM) szStatusText); - } - } - - SetLastError(0); - r = GetWindowLongPtrW(This->hDialog, GWLP_USERDATA); - if (0 != r || 0 != GetLastError()) - { - *This->pbCancelled = TRUE; - return E_ABORT; - } - - return S_OK; -} - -static -HRESULT WINAPI -dlOnStopBinding(IBindStatusCallback* iface, HRESULT hresult, LPCWSTR szError) -{ - return S_OK; -} - -static -HRESULT WINAPI -dlGetBindInfo(IBindStatusCallback* iface, DWORD* grfBINDF, BINDINFO* pbindinfo) -{ - return S_OK; -} - -static -HRESULT WINAPI -dlOnDataAvailable(IBindStatusCallback* iface, DWORD grfBSCF, - DWORD dwSize, FORMATETC* pformatetc, STGMEDIUM* pstgmed) -{ - return S_OK; -} - -static -HRESULT WINAPI -dlOnObjectAvailable(IBindStatusCallback* iface, REFIID riid, IUnknown* punk) -{ - return S_OK; -} - -static const IBindStatusCallbackVtbl dlVtbl = -{ - dlQueryInterface, - dlAddRef, - dlRelease, - dlOnStartBinding, - dlGetPriority, - dlOnLowResource, - dlOnProgress, - dlOnStopBinding, - dlGetBindInfo, - dlOnDataAvailable, - dlOnObjectAvailable -}; - -static IBindStatusCallback* -CreateDl(HWND Dlg, BOOL *pbCancelled) -{ - IBindStatusCallbackImpl *This; - - This = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IBindStatusCallbackImpl)); - if (!This) return NULL; - - This->vtbl = &dlVtbl; - This->ref = 1; - This->hDialog = Dlg; - This->pbCancelled = pbCancelled; - - return (IBindStatusCallback*) This; -} - -static DWORD WINAPI ThreadFunc(LPVOID Context) { - IBindStatusCallback *dl; WCHAR path[MAX_PATH]; LPWSTR p; STARTUPINFOW si; PROCESS_INFORMATION pi; HWND Dlg = (HWND) Context; - DWORD r, len; + DWORD len; BOOL bCancelled = FALSE; BOOL bTempfile = FALSE; BOOL bCab = FALSE; + HINTERNET hInternet = NULL; + HINTERNET hURL = NULL; + HANDLE hFile = INVALID_HANDLE_VALUE; + DWORD dwRead = 1; + DWORD dwWritten; + DWORD ulProgress = 0; + DWORD ulProgressMax = 0; + DWORD dwIndex = 0; + URL_COMPONENTS urlComponents; + BYTE buf[1024]; + DWORD dwSize = sizeof(buf); /* built the path for the download */ p = wcsrchr(AppInfo->szUrlDownload, L'/'); @@ -251,30 +92,99 @@ /* download it */ bTempfile = TRUE; - dl = CreateDl(Context, &bCancelled); - r = URLDownloadToFileW(NULL, AppInfo->szUrlDownload, path, 0, dl); - if (dl) IBindStatusCallback_Release(dl); - if (S_OK != r) goto end; - else if (bCancelled) goto end; + switch(SettingsInfo.Proxy) + { + case 0: /* preconfig */ + hInternet = InternetOpenW(L"rapps", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0); + break; + case 1: /* direct (no proxy) */ + hInternet = InternetOpenW(L"rapps", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0); + break; + case 2: /* use proxy */ + hInternet = InternetOpenW(L"rapps", INTERNET_OPEN_TYPE_PROXY, SettingsInfo.szProxyServer, SettingsInfo.szNoProxyFor, 0); + break; + default: + break; + } + if(hInternet == NULL) + goto end; + hURL = InternetOpenUrlW(hInternet, AppInfo->szUrlDownload, NULL, 0, INTERNET_FLAG_NO_CACHE_WRITE, 0); + if(hURL == NULL) { + DWORD dwErr=GetLastError(), dwSize=0; + WCHAR *pMsg=NULL; + InternetGetLastResponseInfoW(&dwErr, pMsg, &dwSize); + pMsg = malloc(dwSize*sizeof(WCHAR)); + InternetGetLastResponseInfoW(&dwErr, pMsg, &dwSize); + free(pMsg); + goto end; + } + memset(&urlComponents, 0, sizeof(urlComponents)); + urlComponents.dwStructSize = sizeof(urlComponents); + urlComponents.dwSchemeLength = 1024*sizeof(WCHAR); + urlComponents.lpszScheme = malloc(1024*sizeof(WCHAR)); + if(InternetCrackUrlW(AppInfo->szUrlDownload, wcslen(AppInfo->szUrlDownload)+1, ICU_DECODE | ICU_ESCAPE, &urlComponents)) + { + if((urlComponents.nScheme == INTERNET_SCHEME_HTTP || urlComponents.nScheme == INTERNET_SCHEME_HTTPS) && + HttpQueryInfo(hURL, HTTP_QUERY_CONTENT_LENGTH, buf, &dwSize, &dwIndex)) + ulProgressMax = wcstoul((const wchar_t *)buf, &p, 10); + if(urlComponents.nScheme == INTERNET_SCHEME_FTP) + ulProgressMax = FtpGetFileSize(hURL, &dwSize); + } + else + { + DWORD dwErr=GetLastError(), dwSize=0; + WCHAR *pMsg=NULL; + InternetGetLastResponseInfoW(&dwErr, pMsg, &dwSize); + pMsg = malloc(dwSize*sizeof(WCHAR)); + InternetGetLastResponseInfoW(&dwErr, pMsg, &dwSize); + free(pMsg); + } + free(urlComponents.lpszScheme); + hFile = CreateFileW(path, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); + if(hFile == INVALID_HANDLE_VALUE) + goto end; + while(InternetReadFile(hURL, buf, sizeof(buf), &dwRead)) + { + HWND Item; + if(bCancelled || dwRead <= 0) + break; + if(!WriteFile(hFile, buf, dwRead, &dwWritten, NULL)) + { + bCancelled = TRUE; + break; + } + if(ulProgressMax) + { + ulProgress += dwRead; + Item = GetDlgItem(Dlg, IDC_DOWNLOAD_PROGRESS); + if(Item) + SendMessageW(Item, PBM_SETPOS, ((ULONGLONG)ulProgress * 100) / ulProgressMax, 0); + } + } + if(hFile != INVALID_HANDLE_VALUE) + CloseHandle(hFile); + if (bCancelled) + goto end; ShowWindow(Dlg, SW_HIDE); /* run it */ ZeroMemory(&si, sizeof(si)); si.cb = sizeof(si); - r = CreateProcessW(path, NULL, NULL, NULL, 0, 0, NULL, NULL, &si, &pi); - if (0 == r) goto end; + if(!CreateProcessW(path, NULL, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)) + goto end; CloseHandle(pi.hThread); WaitForSingleObject(pi.hProcess, INFINITE); CloseHandle(pi.hProcess); end: - if (bTempfile) - { - if (bCancelled || (SettingsInfo.bDelInstaller && !bCab)) - DeleteFileW(path); - } + if(hURL != NULL) + InternetCloseHandle(hURL); + if(hInternet != NULL) + InternetCloseHandle(hInternet); + if (bTempfile && (bCancelled || (SettingsInfo.bDelInstaller && !bCab))) + DeleteFileW(path); EndDialog(Dlg, 0); Index: reactos/base/applications/rapps/rapps.h =================================================================== --- reactos/base/applications/rapps/rapps.h (revision 58102) +++ reactos/base/applications/rapps/rapps.h (working copy) @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include @@ -88,6 +88,10 @@ INT Top; INT Right; INT Bottom; + /* proxy */ + INT Proxy; + WCHAR szProxyServer[MAX_PATH]; + WCHAR szNoProxyFor[MAX_PATH]; } SETTINGS_INFO, *PSETTINGS_INFO; Index: reactos/base/applications/rapps/resource.h =================================================================== --- reactos/base/applications/rapps/resource.h (revision 58102) +++ reactos/base/applications/rapps/resource.h (working copy) @@ -45,6 +45,11 @@ #define IDC_INSTALL_TEXT 1010 #define IDC_CD_INSTALL 1011 #define IDC_DOWNLOAD_INSTALL 1012 +#define IDC_PROXY_DEFAULT 1013 +#define IDC_NO_PROXY 1014 +#define IDC_USE_PROXY 1015 +#define IDC_PROXY_SERVER 1016 +#define IDC_NO_PROXY_FOR 1017 /* Dialogs */ #define IDD_SETTINGS_DIALOG 300 Index: reactos/base/applications/rapps/settingsdlg.c =================================================================== --- reactos/base/applications/rapps/settingsdlg.c (revision 58102) +++ reactos/base/applications/rapps/settingsdlg.c (working copy) @@ -58,6 +58,13 @@ SetWindowTextW(GetDlgItem(hDlg, IDC_DOWNLOAD_DIR_EDIT), Info.szDownloadDir); + + CheckRadioButton(hDlg, IDC_PROXY_DEFAULT, IDC_USE_PROXY, IDC_PROXY_DEFAULT+Info.Proxy); + + SetWindowTextW(GetDlgItem(hDlg, IDC_PROXY_SERVER), + Info.szProxyServer); + SetWindowTextW(GetDlgItem(hDlg, IDC_NO_PROXY_FOR), + Info.szNoProxyFor); } static @@ -97,6 +104,18 @@ IS_CHECKED(NewSettingsInfo.bDelInstaller, IDC_DEL_AFTER_INSTALL); break; + case IDC_PROXY_DEFAULT: + NewSettingsInfo.Proxy = 0; + break; + + case IDC_NO_PROXY: + NewSettingsInfo.Proxy = 1; + break; + + case IDC_USE_PROXY: + NewSettingsInfo.Proxy = 2; + break; + case IDC_DEFAULT_SETTINGS: FillDefaultSettings(&NewSettingsInfo); InitSettingsControls(hDlg, NewSettingsInfo); @@ -105,11 +124,21 @@ case IDOK: { WCHAR szDir[MAX_PATH]; + WCHAR szProxy[MAX_PATH]; + WCHAR szNoProxy[MAX_PATH]; DWORD dwAttr; GetWindowTextW(GetDlgItem(hDlg, IDC_DOWNLOAD_DIR_EDIT), szDir, MAX_PATH); + GetWindowTextW(GetDlgItem(hDlg, IDC_PROXY_SERVER), + szProxy, MAX_PATH); + wcscpy(NewSettingsInfo.szProxyServer, szProxy); + + GetWindowTextW(GetDlgItem(hDlg, IDC_NO_PROXY_FOR), + szNoProxy, MAX_PATH); + wcscpy(NewSettingsInfo.szNoProxyFor, szNoProxy); + dwAttr = GetFileAttributesW(szDir); if (dwAttr != INVALID_FILE_ATTRIBUTES && (dwAttr & FILE_ATTRIBUTE_DIRECTORY)) @@ -131,9 +160,11 @@ EndDialog(hDlg, LOWORD(wParam)); } } - - SetFocus(GetDlgItem(hDlg, IDC_DOWNLOAD_DIR_EDIT)); - break; + else + { + SetFocus(GetDlgItem(hDlg, IDC_DOWNLOAD_DIR_EDIT)); + break; + } } SettingsInfo = NewSettingsInfo; Index: reactos/base/applications/rapps/winmain.c =================================================================== --- reactos/base/applications/rapps/winmain.c (revision 58102) +++ reactos/base/applications/rapps/winmain.c (working copy) @@ -29,6 +29,10 @@ pSettingsInfo->Top = 0; pSettingsInfo->Right = 680; pSettingsInfo->Bottom = 450; + + pSettingsInfo->Proxy = 0; + wcscpy(pSettingsInfo->szProxyServer, L""); + wcscpy(pSettingsInfo->szNoProxyFor, L""); } static BOOL