[RAPPS] Bulk install!
[reactos.git] / reactos / base / applications / rapps / rapps.h
index 9370549..6192a13 100644 (file)
@@ -101,7 +101,7 @@ typedef struct
     ATL::CStringW szUrlSite;
     ATL::CStringW szUrlDownload;
     ATL::CStringW szCDPath;
-    ATL::CSimpleArray<ATL::CStringW> Languages;
+    ATL::CSimpleArray<LCID> Languages;
 
     /* caching mechanism related entries */
     ATL::CStringW sFileName;
@@ -146,7 +146,7 @@ typedef struct
 class CConfigParser
 {
     // Loacale names cache
-    static ATL::CStringW m_szLocale;
+    static ATL::CStringW m_szLocaleID;
     const static INT m_cchLocaleSize = 5;
     static ATL::CStringW m_szCachedINISectionLocale;
     static ATL::CStringW m_szCachedINISectionLocaleNeutral;
@@ -200,6 +200,7 @@ private:
     VOID RetrieveInstalledVersion();
     VOID RetrieveLanguages();
     VOID RetrieveLicenseType();
+    inline BOOL FindInLanguages(LCID what) const;
 };
 
 class CAvailableApps
@@ -225,7 +226,7 @@ public:
 };
 
 /* installdlg.cpp */
-BOOL InstallApplication(INT Index);
+//BOOL InstallApplication(INT Index);
 
 /* installed.cpp */
 typedef BOOL (CALLBACK *APPENUMPROC)(INT ItemIndex, ATL::CStringW &lpName, PINSTALLED_INFO Info);
@@ -248,8 +249,29 @@ VOID SaveSettings(HWND hwnd);
 VOID FillDefaultSettings(PSETTINGS_INFO pSettingsInfo);
 
 /* loaddlg.cpp */
-BOOL DownloadApplication(INT Index);
-VOID DownloadApplicationsDB(LPCWSTR lpUrl);
+class CDowloadingAppsListView;
+
+class Ă‘DownloadManager
+{
+    static PAPPLICATION_INFO AppInfo;
+    static ATL::CSimpleArray<PAPPLICATION_INFO> AppsToInstallList;
+    static CDowloadingAppsListView DownloadsListView;
+    static INT iCurrentApp;
+public:
+    static INT_PTR CALLBACK DownloadDlgProc(HWND Dlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
+    static LRESULT CALLBACK DownloadProgressProc(HWND hWnd, 
+                                                 UINT uMsg, 
+                                                 WPARAM wParam, 
+                                                 LPARAM lParam, 
+                                                 UINT_PTR uIdSubclass, 
+                                                 DWORD_PTR dwRefData);
+
+    static DWORD WINAPI ThreadFunc(LPVOID Context);
+    static BOOL DownloadListOfApplications(const ATL::CSimpleArray<PAPPLICATION_INFO>& AppsList);
+    static BOOL DownloadApplication(PAPPLICATION_INFO pAppInfo);
+    static VOID DownloadApplicationsDB(LPCWSTR lpUrl);
+    static VOID LaunchDownloadDialog();
+};
 
 /* misc.cpp */
 INT GetSystemColorDepth(VOID);