ReactOS 0.4.16-dev-125-g798ea90
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 126 of file appinfo.h.

Constructor & Destructor Documentation

◆ CAvailableApplicationInfo()

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

Definition at line 22 of file appinfo.cpp.

27 : CAppInfo(PkgName, Category), m_Parser(Parser), m_ScrnshotRetrieved(false), m_LanguagesLoaded(false)
28{
31 m_Parser->GetString(L"URLDownload", m_szUrlDownload);
32 m_Parser->GetString(L"Description", szComments);
33
34 CPathW IconPath = BasePath;
35 IconPath += L"icons";
36
38 if (m_Parser->GetString(L"Icon", IconName))
39 {
41 }
42 else
43 {
44 // inifile.ico
45 IconPath += (szIdentifier + L".ico");
46 }
47
49 {
51 }
52
53 INT iSizeBytes;
54
55 if (m_Parser->GetInt(L"SizeBytes", iSizeBytes))
56 {
59 }
60
61 m_Parser->GetString(L"URLSite", m_szUrlSite);
62}
void ReleaseBuffer(_In_ int nNewLength=-1)
Definition: atlsimpstr.h:387
CStringW szComments
Definition: appinfo.h:104
CStringW szDisplayIcon
Definition: appinfo.h:101
CStringW szDisplayName
Definition: appinfo.h:102
CStringW szDisplayVersion
Definition: appinfo.h:103
const CStringW szIdentifier
Definition: appinfo.h:98
CConfigParser * m_Parser
Definition: appinfo.h:128
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:1777
LPWSTR WINAPI StrFormatByteSizeW(LONGLONG llBytes, LPWSTR lpszDest, UINT cchMax)
Definition: string.c:2388
#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 64 of file appinfo.cpp.

65{
66 delete m_Parser;
67}

Member Function Documentation

◆ CanModify()

BOOL CAvailableApplicationInfo::CanModify ( )
overridevirtual

Implements CAppInfo.

Definition at line 297 of file appinfo.cpp.

298{
299 return FALSE;
300}
#define FALSE
Definition: types.h:117

◆ GetConfigParser()

CConfigParser * CAvailableApplicationInfo::GetConfigParser ( ) const
inline

Definition at line 155 of file appinfo.h.

155{ return m_Parser; }

Referenced by ExtractAndRunGeneratedInstaller().

◆ GetDisplayInfo()

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

Implements CAppInfo.

Definition at line 362 of file appinfo.cpp.

363{
364 License = LicenseString();
365 Size = m_szSize;
366 UrlSite = m_szUrlSite;
367 UrlDownload = m_szUrlDownload;
368}
_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 345 of file appinfo.cpp.

346{
347 Url = m_szUrlDownload;
348 m_Parser->GetString(L"SHA1", Sha1);
349 INT iSizeBytes;
350
351 if (m_Parser->GetInt(L"SizeBytes", iSizeBytes))
352 {
353 SizeInBytes = (ULONG)iSizeBytes;
354 }
355 else
356 {
357 SizeInBytes = 0;
358 }
359}
uint32_t ULONG
Definition: typedefs.h:59

◆ GetInstallerType()

InstallerType CAvailableApplicationInfo::GetInstallerType ( ) const
overridevirtual

Reimplemented from CAppInfo.

Definition at line 371 of file appinfo.cpp.

372{
375 if (str.CompareNoCase(DB_GENINSTSECTION) == 0)
376 return INSTALLER_GENERATE;
377 else
378 return INSTALLER_UNKNOWN;
379}
#define DB_GENINSTSECTION
Definition: appinfo.h:86
#define DB_INSTALLER
Definition: appinfo.h:83
@ INSTALLER_UNKNOWN
Definition: appinfo.h:75
@ INSTALLER_GENERATE
Definition: appinfo.h:76
const WCHAR * str

◆ InsertLanguageInfo()

VOID CAvailableApplicationInfo::InsertLanguageInfo ( CAppRichEdit RichEdit)
private

Definition at line 201 of file appinfo.cpp.

202{
204 {
206 }
207
208 if (m_LanguageLCIDs.GetSize() == 0)
209 {
210 return;
211 }
212
213 const INT nTranslations = m_LanguageLCIDs.GetSize();
214 CStringW szLangInfo;
215 CStringW szLoadedTextAvailability;
216 CStringW szLoadedAInfoText;
217
218 szLoadedAInfoText.LoadStringW(IDS_AINFO_LANGUAGES);
219
222 {
223 szLoadedTextAvailability.LoadStringW(IDS_LANGUAGE_AVAILABLE_TRANSLATION);
224 if (nTranslations > 1)
225 {
228 szLangInfo.Format(buf, nTranslations - 1);
229 }
230 else
231 {
232 szLangInfo.LoadStringW(IDS_LANGUAGE_SINGLE);
233 szLangInfo = L" (" + szLangInfo + L")";
234 }
235 }
236 else if (m_LanguageLCIDs.Find(lcEnglish) >= 0)
237 {
238 szLoadedTextAvailability.LoadStringW(IDS_LANGUAGE_ENGLISH_TRANSLATION);
239 if (nTranslations > 1)
240 {
243 szLangInfo.Format(buf, nTranslations - 1);
244 }
245 else
246 {
247 szLangInfo.LoadStringW(IDS_LANGUAGE_SINGLE);
248 szLangInfo = L" (" + szLangInfo + L")";
249 }
250 }
251 else
252 {
253 szLoadedTextAvailability.LoadStringW(IDS_LANGUAGE_NO_TRANSLATION);
254 }
255
256 RichEdit->InsertText(szLoadedAInfoText, CFE_BOLD);
257 RichEdit->InsertText(szLoadedTextAvailability, NULL);
258 RichEdit->InsertText(szLangInfo, CFE_ITALIC);
259}
#define IDS_LANGUAGE_MORE_PLACEHOLDER
Definition: resource.h:218
#define IDS_LANGUAGE_SINGLE
Definition: resource.h:217
#define IDS_LANGUAGE_NO_TRANSLATION
Definition: resource.h:215
#define IDS_AINFO_LANGUAGES
Definition: resource.h:173
#define IDS_LANGUAGE_AVAILABLE_PLACEHOLDER
Definition: resource.h:219
#define IDS_LANGUAGE_AVAILABLE_TRANSLATION
Definition: resource.h:214
#define IDS_LANGUAGE_ENGLISH_TRANSLATION
Definition: resource.h:216
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:134
VOID InsertText(LPCWSTR lpszText, DWORD dwEffects)
Definition: crichedit.h:77
#define NULL
Definition: types.h:112
LCID WINAPI GetUserDefaultLCID(void)
Definition: locale.c:1210
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 116 of file appinfo.cpp.

117{
118 CStringW szRegName;
119 m_Parser->GetString(DB_REGNAME, szRegName);
120
122 if (bIsInstalled)
123 {
124 CStringW szInstalledVersion;
125 CStringW szNameVersion = szDisplayName + L" " + szDisplayVersion;
126 BOOL bHasInstalledVersion = ::GetInstalledVersion(&szInstalledVersion, szRegName) ||
127 ::GetInstalledVersion(&szInstalledVersion, szDisplayName) ||
128 ::GetInstalledVersion(&szInstalledVersion, szNameVersion);
129
130 if (bHasInstalledVersion)
131 {
132 BOOL bHasUpdate = CompareVersion(szInstalledVersion, szDisplayVersion) < 0;
133 if (bHasUpdate)
134 {
136 RichEdit->LoadAndInsertText(IDS_AINFO_VERSION, szInstalledVersion, 0);
137 }
138 else
139 {
141 }
142 }
143 else
144 {
146 }
147 }
148 else
149 {
151 }
152
154}
int CompareVersion(const CStringW &left, const CStringW &right)
Definition: appinfo.cpp:85
#define DB_REGNAME
Definition: appinfo.h:82
BOOL GetInstalledVersion(CStringW *pszVersion, const CStringW &szRegName)
Definition: misc.cpp:305
#define IDS_AINFO_AVAILABLEVERSION
Definition: resource.h:172
#define IDS_STATUS_NOTINSTALLED
Definition: resource.h:200
#define IDS_AINFO_VERSION
Definition: resource.h:166
#define IDS_STATUS_UPDATE_AVAILABLE
Definition: resource.h:202
#define IDS_STATUS_INSTALLED
Definition: resource.h:199
VOID LoadAndInsertText(UINT uStringID, const CStringW &szText, DWORD TextFlags)
Definition: appview.cpp:285
unsigned int BOOL
Definition: ntddk_ex.h:94

Referenced by ShowAppInfo().

◆ LicenseString()

CStringW CAvailableApplicationInfo::LicenseString ( )
private

Definition at line 157 of file appinfo.cpp.

158{
159 INT IntBuffer;
160 m_Parser->GetInt(L"LicenseType", IntBuffer);
161 CStringW szLicenseString;
162 m_Parser->GetString(L"License", szLicenseString);
163 LicenseType licenseType;
164
165 if (IsKnownLicenseType(IntBuffer))
166 {
167 licenseType = static_cast<LicenseType>(IntBuffer);
168 }
169 else
170 {
171 licenseType = LICENSE_NONE;
172 if (szLicenseString.CompareNoCase(L"Freeware") == 0)
173 {
174 licenseType = LICENSE_FREEWARE;
175 szLicenseString = L"";
176 }
177 }
178
179 CStringW szLicense;
180 switch (licenseType)
181 {
183 szLicense.LoadStringW(IDS_LICENSE_OPENSOURCE);
184 break;
185 case LICENSE_FREEWARE:
186 szLicense.LoadStringW(IDS_LICENSE_FREEWARE);
187 break;
188 case LICENSE_TRIAL:
189 szLicense.LoadStringW(IDS_LICENSE_TRIAL);
190 break;
191 default:
192 return szLicenseString;
193 }
194
195 if (!szLicenseString.IsEmpty())
196 szLicense += L" (" + szLicenseString + L")";
197 return szLicense;
198}
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:211
#define IDS_LICENSE_FREEWARE
Definition: resource.h:210
#define IDS_LICENSE_OPENSOURCE
Definition: resource.h:209
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 303 of file appinfo.cpp.

304{
306 return !Path.IsEmpty();
307}
PRTL_UNICODE_STRING_BUFFER Path

◆ RetrieveLanguages()

VOID CAvailableApplicationInfo::RetrieveLanguages ( )
private

Definition at line 262 of file appinfo.cpp.

263{
264 m_LanguagesLoaded = true;
265
266 CStringW szBuffer;
267 if (!m_Parser->GetString(L"Languages", szBuffer))
268 {
269 return;
270 }
271
272 // Parse parameter string
273 int iIndex = 0;
274 while (true)
275 {
276 CStringW szLocale = szBuffer.Tokenize(L"|", iIndex);
277 if (szLocale.IsEmpty())
278 break;
279
280 szLocale = L"0x" + szLocale;
281
282 INT iLCID;
283 if (StrToIntExW(szLocale, STIF_SUPPORT_HEX, &iLCID))
284 {
285 m_LanguageLCIDs.Add(static_cast<LCID>(iLCID));
286 }
287 }
288}
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, LPINT lpiRet)
Definition: string.c:970
#define STIF_SUPPORT_HEX
Definition: shlwapi.h:1452

Referenced by InsertLanguageInfo().

◆ RetrieveScreenshot()

BOOL CAvailableApplicationInfo::RetrieveScreenshot ( CStringW Path)
overridevirtual

Implements CAppInfo.

Definition at line 311 of file appinfo.cpp.

312{
314 {
315 static_assert(MAX_SCRNSHOT_NUM < 10000, "MAX_SCRNSHOT_NUM is too big");
316 for (int i = 0; i < MAX_SCRNSHOT_NUM; i++)
317 {
318 CStringW ScrnshotField;
319 ScrnshotField.Format(L"Screenshot%d", i + 1);
320 CStringW ScrnshotLocation;
321 if (!m_Parser->GetString(ScrnshotField, ScrnshotLocation))
322 {
323 // We stop at the first screenshot not found,
324 // so screenshots _have_ to be consecutive
325 break;
326 }
327
328 if (PathIsURLW(ScrnshotLocation.GetString()))
329 {
330 m_szScrnshotLocation.Add(ScrnshotLocation);
331 }
332 }
333 m_ScrnshotRetrieved = true;
334 }
335
336 if (m_szScrnshotLocation.GetSize() > 0)
337 {
339 }
340
341 return !Path.IsEmpty();
342}
#define MAX_SCRNSHOT_NUM
Definition: appinfo.cpp:309
PXSTR GetString() noexcept
Definition: atlsimpstr.h:367
CSimpleArray< CStringW > m_szScrnshotLocation
Definition: appinfo.h:129
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 70 of file appinfo.cpp.

71{
72 RichEdit->SetText(szDisplayName, CFE_BOLD);
73 InsertVersionInfo(RichEdit);
75 InsertLanguageInfo(RichEdit);
76
82}
#define IDS_AINFO_SIZE
Definition: resource.h:168
#define IDS_AINFO_PACKAGE_NAME
Definition: resource.h:177
#define IDS_AINFO_LICENSE
Definition: resource.h:170
#define IDS_AINFO_DESCRIPTION
Definition: resource.h:167
#define IDS_AINFO_URLSITE
Definition: resource.h:169
#define IDS_AINFO_URLDOWNLOAD
Definition: resource.h:171
VOID InsertLanguageInfo(CAppRichEdit *RichEdit)
Definition: appinfo.cpp:201
VOID InsertVersionInfo(CAppRichEdit *RichEdit)
Definition: appinfo.cpp:116
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 382 of file appinfo.cpp.

383{
384 ATLASSERT(FALSE && "Should not be called");
385 return FALSE;
386}
#define ATLASSERT(x)
Definition: CComVariant.cpp:10

◆ Valid()

BOOL CAvailableApplicationInfo::Valid ( ) const
overridevirtual

Implements CAppInfo.

Definition at line 291 of file appinfo.cpp.

292{
294}

Member Data Documentation

◆ m_LanguageLCIDs

CSimpleArray<LCID> CAvailableApplicationInfo::m_LanguageLCIDs
private

Definition at line 134 of file appinfo.h.

Referenced by InsertLanguageInfo(), and RetrieveLanguages().

◆ m_LanguagesLoaded

bool CAvailableApplicationInfo::m_LanguagesLoaded
private

Definition at line 135 of file appinfo.h.

Referenced by InsertLanguageInfo(), and RetrieveLanguages().

◆ m_Parser

◆ m_ScrnshotRetrieved

bool CAvailableApplicationInfo::m_ScrnshotRetrieved
private

Definition at line 130 of file appinfo.h.

Referenced by RetrieveScreenshot().

◆ m_szScrnshotLocation

CSimpleArray<CStringW> CAvailableApplicationInfo::m_szScrnshotLocation
private

Definition at line 129 of file appinfo.h.

Referenced by RetrieveScreenshot().

◆ m_szSize

CStringW CAvailableApplicationInfo::m_szSize
private

Definition at line 132 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 133 of file appinfo.h.

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


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