ReactOS 0.4.16-dev-819-g75c0dc0
CAvailableApplicationInfo Class Reference

#include <appinfo.h>

Inheritance diagram for CAvailableApplicationInfo:
Collaboration diagram for CAvailableApplicationInfo:

Public Member Functions

 CAvailableApplicationInfo (CConfigParser *Parser, const CStringW &PkgName, AppsCategories Category, const CPathW &BasePath)
 
 ~CAvailableApplicationInfo ()
 
CConfigParserGetConfigParser () const
 
virtual BOOL Valid () const override
 
virtual BOOL CanModify () override
 
virtual BOOL RetrieveIcon (CStringW &Path) const override
 
virtual BOOL RetrieveScreenshot (CStringW &Path) override
 
virtual VOID ShowAppInfo (CAppRichEdit *RichEdit) override
 
virtual VOID GetDownloadInfo (CStringW &Url, CStringW &Sha1, ULONG &SizeInBytes) const override
 
virtual VOID GetDisplayInfo (CStringW &License, CStringW &Size, CStringW &UrlSite, CStringW &UrlDownload) override
 
virtual InstallerType GetInstallerType () const override
 
virtual BOOL UninstallApplication (UninstallCommandFlags Flags) override
 
- Public Member Functions inherited from CAppInfo
 CAppInfo (const CStringW &Identifier, AppsCategories Category)
 
virtual ~CAppInfo ()
 
virtual BOOL Valid () const =0
 
virtual BOOL CanModify ()=0
 
virtual BOOL RetrieveIcon (CStringW &Path) const =0
 
virtual BOOL RetrieveScreenshot (CStringW &Path)=0
 
virtual VOID ShowAppInfo (CAppRichEdit *RichEdit)=0
 
virtual VOID GetDownloadInfo (CStringW &Url, CStringW &Sha1, ULONG &SizeInBytes) const =0
 
virtual VOID GetDisplayInfo (CStringW &License, CStringW &Size, CStringW &UrlSite, CStringW &UrlDownload)=0
 
virtual InstallerType GetInstallerType () const
 
virtual BOOL UninstallApplication (UninstallCommandFlags Flags)=0
 

Private Member Functions

VOID InsertVersionInfo (CAppRichEdit *RichEdit)
 
VOID InsertLanguageInfo (CAppRichEdit *RichEdit)
 
VOID RetrieveLanguages ()
 
CStringW LicenseString ()
 

Private Attributes

CConfigParserm_Parser
 
CSimpleArray< CStringWm_szScrnshotLocation
 
bool m_ScrnshotRetrieved
 
CStringW m_szUrlDownload
 
CStringW m_szSize
 
CStringW m_szUrlSite
 
CSimpleArray< LCIDm_LanguageLCIDs
 
bool m_LanguagesLoaded
 

Additional Inherited Members

- Public Attributes inherited from CAppInfo
const CStringW szIdentifier
 
const AppsCategories iCategory
 
CStringW szDisplayIcon
 
CStringW szDisplayName
 
CStringW szDisplayVersion
 
CStringW szComments
 

Detailed Description

Definition at line 136 of file appinfo.h.

Constructor & Destructor Documentation

◆ CAvailableApplicationInfo()

CAvailableApplicationInfo::CAvailableApplicationInfo ( CConfigParser Parser,
const CStringW PkgName,
AppsCategories  Category,
const CPathW BasePath 
)

Definition at line 30 of file appinfo.cpp.

35 : CAppInfo(PkgName, ClampAvailableCategory(Category)), m_Parser(Parser), m_ScrnshotRetrieved(false), m_LanguagesLoaded(false)
36{
39 m_Parser->GetString(L"URLDownload", m_szUrlDownload);
40 m_Parser->GetString(L"Description", szComments);
41
42 CPathW IconPath = BasePath;
43 IconPath += L"icons";
44
46 if (m_Parser->GetString(L"Icon", IconName))
47 {
49 }
50 else
51 {
52 // inifile.ico
53 IconPath += (szIdentifier + L".ico");
54 }
55
57 {
59 }
60
61 INT iSizeBytes;
62
63 if (m_Parser->GetInt(L"SizeBytes", iSizeBytes))
64 {
67 }
68
69 m_Parser->GetString(L"URLSite", m_szUrlSite);
70}
static AppsCategories ClampAvailableCategory(AppsCategories Category)
Definition: appinfo.cpp:14
void ReleaseBuffer(_In_ int nNewLength=-1)
Definition: atlsimpstr.h:387
CStringW szComments
Definition: appinfo.h:114
CStringW szDisplayIcon
Definition: appinfo.h:111
CStringW szDisplayName
Definition: appinfo.h:112
CStringW szDisplayVersion
Definition: appinfo.h:113
const CStringW szIdentifier
Definition: appinfo.h:108
CConfigParser * m_Parser
Definition: appinfo.h:138
BOOL GetString(const CStringW &KeyName, CStringW &ResultString)
BOOL GetInt(const CStringW &KeyName, INT &iResult)
LPCTSTR IconName
Definition: desktop.c:53
#define MAX_PATH
Definition: compat.h:34
static const WCHAR IconPath[]
Definition: install.c:51
BOOL WINAPI PathFileExistsW(LPCWSTR lpszPath)
Definition: path.c:1783
LPWSTR WINAPI StrFormatByteSizeW(LONGLONG llBytes, LPWSTR lpszDest, UINT cchMax)
Definition: string.c:2394
#define L(x)
Definition: ntvdm.h:50
int32_t INT
Definition: typedefs.h:58
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185

◆ ~CAvailableApplicationInfo()

CAvailableApplicationInfo::~CAvailableApplicationInfo ( )

Definition at line 72 of file appinfo.cpp.

73{
74 delete m_Parser;
75}

Member Function Documentation

◆ CanModify()

BOOL CAvailableApplicationInfo::CanModify ( )
overridevirtual

Implements CAppInfo.

Definition at line 305 of file appinfo.cpp.

306{
307 return FALSE;
308}
#define FALSE
Definition: types.h:117

◆ GetConfigParser()

CConfigParser * CAvailableApplicationInfo::GetConfigParser ( ) const
inline

Definition at line 165 of file appinfo.h.

165{ return m_Parser; }

Referenced by ExtractAndRunGeneratedInstaller().

◆ GetDisplayInfo()

VOID CAvailableApplicationInfo::GetDisplayInfo ( CStringW License,
CStringW Size,
CStringW UrlSite,
CStringW UrlDownload 
)
overridevirtual

Implements CAppInfo.

Definition at line 370 of file appinfo.cpp.

371{
372 License = LicenseString();
373 Size = m_szSize;
374 UrlSite = m_szUrlSite;
375 UrlDownload = m_szUrlDownload;
376}
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
Definition: wdfdevice.h:4533

◆ GetDownloadInfo()

VOID CAvailableApplicationInfo::GetDownloadInfo ( CStringW Url,
CStringW Sha1,
ULONG SizeInBytes 
) const
overridevirtual

Implements CAppInfo.

Definition at line 353 of file appinfo.cpp.

354{
355 Url = m_szUrlDownload;
356 m_Parser->GetString(L"SHA1", Sha1);
357 INT iSizeBytes;
358
359 if (m_Parser->GetInt(L"SizeBytes", iSizeBytes))
360 {
361 SizeInBytes = (ULONG)iSizeBytes;
362 }
363 else
364 {
365 SizeInBytes = 0;
366 }
367}
uint32_t ULONG
Definition: typedefs.h:59

◆ GetInstallerType()

InstallerType CAvailableApplicationInfo::GetInstallerType ( ) const
overridevirtual

Reimplemented from CAppInfo.

Definition at line 379 of file appinfo.cpp.

380{
383 if (str.CompareNoCase(DB_GENINSTSECTION) == 0)
384 return INSTALLER_GENERATE;
385 else
386 return INSTALLER_UNKNOWN;
387}
#define DB_GENINSTSECTION
Definition: appinfo.h:96
#define DB_INSTALLER
Definition: appinfo.h:92
@ INSTALLER_UNKNOWN
Definition: appinfo.h:84
@ INSTALLER_GENERATE
Definition: appinfo.h:85
const WCHAR * str

◆ InsertLanguageInfo()

VOID CAvailableApplicationInfo::InsertLanguageInfo ( CAppRichEdit RichEdit)
private

Definition at line 209 of file appinfo.cpp.

210{
212 {
214 }
215
216 if (m_LanguageLCIDs.GetSize() == 0)
217 {
218 return;
219 }
220
221 const INT nTranslations = m_LanguageLCIDs.GetSize();
222 CStringW szLangInfo;
223 CStringW szLoadedTextAvailability;
224 CStringW szLoadedAInfoText;
225
226 szLoadedAInfoText.LoadStringW(IDS_AINFO_LANGUAGES);
227
230 {
231 szLoadedTextAvailability.LoadStringW(IDS_LANGUAGE_AVAILABLE_TRANSLATION);
232 if (nTranslations > 1)
233 {
236 szLangInfo.Format(buf, nTranslations - 1);
237 }
238 else
239 {
240 szLangInfo.LoadStringW(IDS_LANGUAGE_SINGLE);
241 szLangInfo = L" (" + szLangInfo + L")";
242 }
243 }
244 else if (m_LanguageLCIDs.Find(lcEnglish) >= 0)
245 {
246 szLoadedTextAvailability.LoadStringW(IDS_LANGUAGE_ENGLISH_TRANSLATION);
247 if (nTranslations > 1)
248 {
251 szLangInfo.Format(buf, nTranslations - 1);
252 }
253 else
254 {
255 szLangInfo.LoadStringW(IDS_LANGUAGE_SINGLE);
256 szLangInfo = L" (" + szLangInfo + L")";
257 }
258 }
259 else
260 {
261 szLoadedTextAvailability.LoadStringW(IDS_LANGUAGE_NO_TRANSLATION);
262 }
263
264 RichEdit->InsertText(szLoadedAInfoText, CFE_BOLD);
265 RichEdit->InsertText(szLoadedTextAvailability, NULL);
266 RichEdit->InsertText(szLangInfo, CFE_ITALIC);
267}
#define IDS_LANGUAGE_MORE_PLACEHOLDER
Definition: resource.h:223
#define IDS_LANGUAGE_SINGLE
Definition: resource.h:222
#define IDS_LANGUAGE_NO_TRANSLATION
Definition: resource.h:220
#define IDS_AINFO_LANGUAGES
Definition: resource.h:178
#define IDS_LANGUAGE_AVAILABLE_PLACEHOLDER
Definition: resource.h:224
#define IDS_LANGUAGE_AVAILABLE_TRANSLATION
Definition: resource.h:219
#define IDS_LANGUAGE_ENGLISH_TRANSLATION
Definition: resource.h:221
int GetSize() const
Definition: atlsimpcoll.h:104
int Find(const T &t) const
Definition: atlsimpcoll.h:82
void __cdecl Format(UINT nFormatID,...)
Definition: cstringt.h:818
CSimpleArray< LCID > m_LanguageLCIDs
Definition: appinfo.h:144
VOID InsertText(LPCWSTR lpszText, DWORD dwEffects)
Definition: crichedit.h:77
#define NULL
Definition: types.h:112
LCID WINAPI GetUserDefaultLCID(void)
Definition: locale.c:1211
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
#define SORT_DEFAULT
#define MAKELCID(lgid, srtid)
#define CFE_BOLD
Definition: richedit.h:406
#define CFE_ITALIC
Definition: richedit.h:407
#define MAKELANGID(p, s)
Definition: nls.h:15
#define LANG_ENGLISH
Definition: nls.h:52
#define SUBLANG_DEFAULT
Definition: nls.h:168
DWORD LCID
Definition: nls.h:13

Referenced by ShowAppInfo().

◆ InsertVersionInfo()

VOID CAvailableApplicationInfo::InsertVersionInfo ( CAppRichEdit RichEdit)
private

Definition at line 124 of file appinfo.cpp.

125{
126 CStringW szRegName;
127 m_Parser->GetString(DB_REGNAME, szRegName);
128
130 if (bIsInstalled)
131 {
132 CStringW szInstalledVersion;
133 CStringW szNameVersion = szDisplayName + L" " + szDisplayVersion;
134 BOOL bHasInstalledVersion = ::GetInstalledVersion(&szInstalledVersion, szRegName) ||
135 ::GetInstalledVersion(&szInstalledVersion, szDisplayName) ||
136 ::GetInstalledVersion(&szInstalledVersion, szNameVersion);
137
138 if (bHasInstalledVersion)
139 {
140 BOOL bHasUpdate = CompareVersion(szInstalledVersion, szDisplayVersion) < 0;
141 if (bHasUpdate)
142 {
144 RichEdit->LoadAndInsertText(IDS_AINFO_VERSION, szInstalledVersion, 0);
145 }
146 else
147 {
149 }
150 }
151 else
152 {
154 }
155 }
156 else
157 {
159 }
160
162}
int CompareVersion(const CStringW &left, const CStringW &right)
Definition: appinfo.cpp:93
#define DB_REGNAME
Definition: appinfo.h:91
BOOL GetInstalledVersion(CStringW *pszVersion, const CStringW &szRegName)
Definition: misc.cpp:307
#define IDS_AINFO_AVAILABLEVERSION
Definition: resource.h:177
#define IDS_STATUS_NOTINSTALLED
Definition: resource.h:205
#define IDS_AINFO_VERSION
Definition: resource.h:171
#define IDS_STATUS_UPDATE_AVAILABLE
Definition: resource.h:207
#define IDS_STATUS_INSTALLED
Definition: resource.h:204
VOID LoadAndInsertText(UINT uStringID, const CStringW &szText, DWORD TextFlags)
Definition: appview.cpp:286
unsigned int BOOL
Definition: ntddk_ex.h:94

Referenced by ShowAppInfo().

◆ LicenseString()

CStringW CAvailableApplicationInfo::LicenseString ( )
private

Definition at line 165 of file appinfo.cpp.

166{
167 INT IntBuffer;
168 m_Parser->GetInt(L"LicenseType", IntBuffer);
169 CStringW szLicenseString;
170 m_Parser->GetString(L"License", szLicenseString);
171 LicenseType licenseType;
172
173 if (IsKnownLicenseType(IntBuffer))
174 licenseType = static_cast<LicenseType>(IntBuffer);
175 else
176 licenseType = LICENSE_NONE;
177
178 if (licenseType == LICENSE_NONE || licenseType == LICENSE_FREEWARE)
179 {
180 if (szLicenseString.CompareNoCase(L"Freeware") == 0)
181 {
182 licenseType = LICENSE_FREEWARE;
183 szLicenseString = L""; // Don't display as "Freeware (Freeware)"
184 }
185 }
186
187 CStringW szLicense;
188 switch (licenseType)
189 {
191 szLicense.LoadStringW(IDS_LICENSE_OPENSOURCE);
192 break;
193 case LICENSE_FREEWARE:
194 szLicense.LoadStringW(IDS_LICENSE_FREEWARE);
195 break;
196 case LICENSE_TRIAL:
197 szLicense.LoadStringW(IDS_LICENSE_TRIAL);
198 break;
199 default:
200 return szLicenseString;
201 }
202
203 if (!szLicenseString.IsEmpty())
204 szLicense += L" (" + szLicenseString + L")";
205 return szLicense;
206}
LicenseType
Definition: appinfo.h:9
@ LICENSE_NONE
Definition: appinfo.h:10
@ LICENSE_OPENSOURCE
Definition: appinfo.h:11
@ LICENSE_TRIAL
Definition: appinfo.h:13
@ LICENSE_FREEWARE
Definition: appinfo.h:12
BOOL IsKnownLicenseType(INT x)
Definition: appinfo.h:19
#define IDS_LICENSE_TRIAL
Definition: resource.h:216
#define IDS_LICENSE_FREEWARE
Definition: resource.h:215
#define IDS_LICENSE_OPENSOURCE
Definition: resource.h:214
bool IsEmpty() const noexcept
Definition: atlsimpstr.h:394
int CompareNoCase(_In_z_ PCXSTR psz) const
Definition: cstringt.h:743

Referenced by GetDisplayInfo(), and ShowAppInfo().

◆ RetrieveIcon()

BOOL CAvailableApplicationInfo::RetrieveIcon ( CStringW Path) const
overridevirtual

Implements CAppInfo.

Definition at line 311 of file appinfo.cpp.

312{
314 return !Path.IsEmpty();
315}
PRTL_UNICODE_STRING_BUFFER Path

◆ RetrieveLanguages()

VOID CAvailableApplicationInfo::RetrieveLanguages ( )
private

Definition at line 270 of file appinfo.cpp.

271{
272 m_LanguagesLoaded = true;
273
274 CStringW szBuffer;
275 if (!m_Parser->GetString(L"Languages", szBuffer))
276 {
277 return;
278 }
279
280 // Parse parameter string
281 int iIndex = 0;
282 while (true)
283 {
284 CStringW szLocale = szBuffer.Tokenize(L"|", iIndex);
285 if (szLocale.IsEmpty())
286 break;
287
288 szLocale = L"0x" + szLocale;
289
290 INT iLCID;
291 if (StrToIntExW(szLocale, STIF_SUPPORT_HEX, &iLCID))
292 {
293 m_LanguageLCIDs.Add(static_cast<LCID>(iLCID));
294 }
295 }
296}
BOOL Add(const T &t)
Definition: atlsimpcoll.h:58
CStringT Tokenize(_In_z_ PCXSTR pszTokens, _Inout_ int &iStart) const
Definition: cstringt.h:947
BOOL WINAPI StrToIntExW(LPCWSTR lpszStr, DWORD dwFlags, int *lpiRet)
Definition: string.c:970
#define STIF_SUPPORT_HEX
Definition: shlwapi.h:1478

Referenced by InsertLanguageInfo().

◆ RetrieveScreenshot()

BOOL CAvailableApplicationInfo::RetrieveScreenshot ( CStringW Path)
overridevirtual

Implements CAppInfo.

Definition at line 319 of file appinfo.cpp.

320{
322 {
323 static_assert(MAX_SCRNSHOT_NUM < 10000, "MAX_SCRNSHOT_NUM is too big");
324 for (int i = 0; i < MAX_SCRNSHOT_NUM; i++)
325 {
326 CStringW ScrnshotField;
327 ScrnshotField.Format(L"Screenshot%d", i + 1);
328 CStringW ScrnshotLocation;
329 if (!m_Parser->GetString(ScrnshotField, ScrnshotLocation))
330 {
331 // We stop at the first screenshot not found,
332 // so screenshots _have_ to be consecutive
333 break;
334 }
335
336 if (PathIsURLW(ScrnshotLocation.GetString()))
337 {
338 m_szScrnshotLocation.Add(ScrnshotLocation);
339 }
340 }
341 m_ScrnshotRetrieved = true;
342 }
343
344 if (m_szScrnshotLocation.GetSize() > 0)
345 {
347 }
348
349 return !Path.IsEmpty();
350}
#define MAX_SCRNSHOT_NUM
Definition: appinfo.cpp:317
PXSTR GetString() noexcept
Definition: atlsimpstr.h:367
CSimpleArray< CStringW > m_szScrnshotLocation
Definition: appinfo.h:139
BOOL WINAPI PathIsURLW(LPCWSTR lpstrPath)
Definition: url.c:2432
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248

◆ ShowAppInfo()

VOID CAvailableApplicationInfo::ShowAppInfo ( CAppRichEdit RichEdit)
overridevirtual

Implements CAppInfo.

Definition at line 78 of file appinfo.cpp.

79{
80 RichEdit->SetText(szDisplayName, CFE_BOLD);
81 InsertVersionInfo(RichEdit);
83 InsertLanguageInfo(RichEdit);
84
90}
#define IDS_AINFO_SIZE
Definition: resource.h:173
#define IDS_AINFO_PACKAGE_NAME
Definition: resource.h:182
#define IDS_AINFO_LICENSE
Definition: resource.h:175
#define IDS_AINFO_DESCRIPTION
Definition: resource.h:172
#define IDS_AINFO_URLSITE
Definition: resource.h:174
#define IDS_AINFO_URLDOWNLOAD
Definition: resource.h:176
VOID InsertLanguageInfo(CAppRichEdit *RichEdit)
Definition: appinfo.cpp:209
VOID InsertVersionInfo(CAppRichEdit *RichEdit)
Definition: appinfo.cpp:124
VOID SetText(LPCWSTR lpszText, DWORD dwEffects)
Definition: crichedit.h:91
#define CFE_LINK
Definition: richedit.h:411

◆ UninstallApplication()

BOOL CAvailableApplicationInfo::UninstallApplication ( UninstallCommandFlags  Flags)
overridevirtual

Implements CAppInfo.

Definition at line 390 of file appinfo.cpp.

391{
392 ATLASSERT(FALSE && "Should not be called");
393 return FALSE;
394}
#define ATLASSERT(x)
Definition: CComVariant.cpp:10

◆ Valid()

BOOL CAvailableApplicationInfo::Valid ( ) const
overridevirtual

Implements CAppInfo.

Definition at line 299 of file appinfo.cpp.

300{
302}

Member Data Documentation

◆ m_LanguageLCIDs

CSimpleArray<LCID> CAvailableApplicationInfo::m_LanguageLCIDs
private

Definition at line 144 of file appinfo.h.

Referenced by InsertLanguageInfo(), and RetrieveLanguages().

◆ m_LanguagesLoaded

bool CAvailableApplicationInfo::m_LanguagesLoaded
private

Definition at line 145 of file appinfo.h.

Referenced by InsertLanguageInfo(), and RetrieveLanguages().

◆ m_Parser

◆ m_ScrnshotRetrieved

bool CAvailableApplicationInfo::m_ScrnshotRetrieved
private

Definition at line 140 of file appinfo.h.

Referenced by RetrieveScreenshot().

◆ m_szScrnshotLocation

CSimpleArray<CStringW> CAvailableApplicationInfo::m_szScrnshotLocation
private

Definition at line 139 of file appinfo.h.

Referenced by RetrieveScreenshot().

◆ m_szSize

CStringW CAvailableApplicationInfo::m_szSize
private

Definition at line 142 of file appinfo.h.

Referenced by CAvailableApplicationInfo(), GetDisplayInfo(), and ShowAppInfo().

◆ m_szUrlDownload

CStringW CAvailableApplicationInfo::m_szUrlDownload
private

◆ m_szUrlSite

CStringW CAvailableApplicationInfo::m_szUrlSite
private

Definition at line 143 of file appinfo.h.

Referenced by CAvailableApplicationInfo(), GetDisplayInfo(), and ShowAppInfo().


The documentation for this class was generated from the following files: