5 #include <atlsimpcoll.h>
16 LICENSE_MIN
= LICENSE_NONE
,
17 LICENSE_MAX
= LICENSE_TRIAL
20 inline BOOL
IsLicenseType(INT x
)
22 return (x
>= LICENSE_MIN
&& x
<= LICENSE_MAX
);
25 struct CAvailableApplicationInfo
28 LicenseType m_LicenseType
;
29 ATL::CStringW m_szName
;
30 ATL::CStringW m_szRegName
;
31 ATL::CStringW m_szVersion
;
32 ATL::CStringW m_szLicense
;
33 ATL::CStringW m_szDesc
;
34 ATL::CStringW m_szSize
;
35 ATL::CStringW m_szUrlSite
;
36 ATL::CStringW m_szUrlDownload
;
37 ATL::CStringW m_szCDPath
;
38 ATL::CSimpleArray
<LCID
> m_LanguageLCIDs
;
40 // Caching mechanism related entries
41 ATL::CStringW m_sFileName
;
42 FILETIME m_ftCacheStamp
;
44 // Optional integrity checks (SHA-1 digests are 160 bit = 40 characters in hex string form)
45 ATL::CStringW m_szSHA1
;
46 ATL::CStringW m_szInstalledVersion
;
48 // Create an object from file
49 CAvailableApplicationInfo(const ATL::CStringW
& sFileNameParam
);
51 // Load all info from the file
52 VOID
RefreshAppInfo();
53 BOOL
HasLanguageInfo() const;
54 BOOL
HasNativeLanguage() const;
55 BOOL
HasEnglishLanguage() const;
56 BOOL
IsInstalled() const;
57 BOOL
HasInstalledVersion() const;
58 BOOL
HasUpdate() const;
61 VOID
SetLastWriteTime(FILETIME
* ftTime
);
65 BOOL m_HasLanguageInfo
;
66 BOOL m_HasInstalledVersion
;
67 CConfigParser
* m_Parser
;
69 inline BOOL
GetString(LPCWSTR lpKeyName
, ATL::CStringW
& ReturnedString
);
71 // Lazily load general info from the file
72 VOID
RetrieveGeneralInfo();
73 VOID
RetrieveInstalledStatus();
74 VOID
RetrieveInstalledVersion();
75 VOID
RetrieveLanguages();
76 VOID
RetrieveLicenseType();
77 inline BOOL
FindInLanguages(LCID what
) const;
80 typedef BOOL(CALLBACK
*AVAILENUMPROC
)(CAvailableApplicationInfo
*Info
, LPCWSTR szFolderPath
);
82 struct AvailableStrings
85 ATL::CStringW szCabPath
;
86 ATL::CStringW szAppsPath
;
87 ATL::CStringW szSearchPath
;
94 static AvailableStrings m_Strings
;
95 ATL::CAtlList
<CAvailableApplicationInfo
*> m_InfoList
;
100 static BOOL
UpdateAppsDB();
101 static BOOL
ForceUpdateAppsDB();
102 static VOID
DeleteCurrentAppsDB();
104 VOID
FreeCachedEntries();
105 BOOL
Enum(INT EnumType
, AVAILENUMPROC lpEnumProc
);
107 CAvailableApplicationInfo
* FindInfo(const ATL::CStringW
& szAppName
) const;
108 ATL::CSimpleArray
<CAvailableApplicationInfo
> FindInfoList(const ATL::CSimpleArray
<ATL::CStringW
> &arrAppsNames
) const;
110 const ATL::CStringW
& GetFolderPath() const;
111 const ATL::CStringW
& GetAppPath() const;
112 const ATL::CStringW
& GetCabPath() const;