44#include < atlpath.h>
55#include < atlsimpcoll.h>
66
7-
87enum LicenseType
98{
109 LICENSE_NONE,
@@ -72,18 +71,21 @@ IsInstalledEnum(INT x)
7271
7372enum UninstallCommandFlags
7473{
75- UCF_NONE = 0x00 ,
76- UCF_MODIFY = 0x01 ,
77- UCF_SILENT = 0x02 ,
74+ UCF_NONE = 0x00 ,
75+ UCF_SILENT = 0x01 ,
76+ UCF_MODIFY = 0x02 ,
7877 UCF_SAMEPROCESS = 0x04 ,
7978};
8079DEFINE_ENUM_FLAG_OPERATORS (UninstallCommandFlags);
8180
8281enum InstallerType
8382{
8483 INSTALLER_UNKNOWN,
84+ INSTALLER_EXEINZIP, // setup.exe we extract from a .zip file
8585 INSTALLER_GENERATE, // .zip file automatically converted to installer by rapps
86- INSTALLER_EXEINZIP,
86+ INSTALLER_MSI,
87+ INSTALLER_INNO,
88+ INSTALLER_NSIS,
8789};
8890
8991#define DB_VERSION L" Version"
@@ -95,6 +97,7 @@ enum InstallerType
9597#define DB_INSTALLER_EXEINZIP L" ExeInZip"
9698#define DB_SCOPE L" Scope" // User or Machine
9799#define DB_SAVEAS L" SaveAs"
100+ #define DB_SILENTARGS L" SilentParameters"
98101
99102#define DB_GENINSTSECTION L" Generate"
100103#define GENERATE_ARPSUBKEY L" RApps" // Our uninstall data is stored here
@@ -134,7 +137,9 @@ class CAppInfo
134137 virtual VOID
135138 GetDisplayInfo (CStringW &License, CStringW &Size, CStringW &UrlSite, CStringW &UrlDownload) = 0 ;
136139 virtual InstallerType
137- GetInstallerType () const { return INSTALLER_UNKNOWN; }
140+ GetInstallerType (bool NestedType = false ) const { return INSTALLER_UNKNOWN; }
141+ virtual InstallerType
142+ GetInstallerInfo (CStringW &SilentParameters) const { return GetInstallerType (); }
138143 virtual BOOL
139144 UninstallApplication (UninstallCommandFlags Flags) = 0 ;
140145};
@@ -185,7 +190,9 @@ class CAvailableApplicationInfo : public CAppInfo
185190 virtual VOID
186191 GetDisplayInfo (CStringW &License, CStringW &Size, CStringW &UrlSite, CStringW &UrlDownload) override ;
187192 virtual InstallerType
188- GetInstallerType () const override ;
193+ GetInstallerType (bool NestedType = false ) const override ;
194+ virtual InstallerType
195+ GetInstallerInfo (CStringW &SilentParameters) const override ;
189196 virtual BOOL
190197 UninstallApplication (UninstallCommandFlags Flags) override ;
191198};
@@ -231,14 +238,14 @@ class CInstalledApplicationInfo : public CAppInfo
231238 virtual VOID
232239 GetDisplayInfo (CStringW &License, CStringW &Size, CStringW &UrlSite, CStringW &UrlDownload) override ;
233240 virtual InstallerType
234- GetInstallerType () const override ;
241+ GetInstallerType (bool NestedType = false ) const override ;
235242 virtual BOOL
236243 UninstallApplication (UninstallCommandFlags Flags) override ;
237244};
238245
239246BOOL
240247UninstallGenerated (CInstalledApplicationInfo &AppInfo, UninstallCommandFlags Flags);
241248BOOL
242- ExtractAndRunGeneratedInstaller (const CAvailableApplicationInfo &AppInfo, LPCWSTR Archive);
249+ ExtractAndRunGeneratedInstaller (const CAvailableApplicationInfo &AppInfo, LPCWSTR Archive, bool Silent );
243250HRESULT
244251ExtractArchiveForExecution (PCWSTR pszArchive, const CStringW &PackageName, CStringW &TempDir, CStringW &App);
0 commit comments