22 : szIdentifier(
Identifier), iCategory(Category)
95 int nLeft = 0, nRight = 0;
109 int leftVal, rightVal;
116 if (leftVal > rightVal)
118 if (rightVal < leftVal)
138 if (bHasInstalledVersion)
183 szLicenseString =
L"";
200 return szLicenseString;
203 if (!szLicenseString.
IsEmpty())
204 szLicense +=
L" (" + szLicenseString +
L")";
232 if (nTranslations > 1)
236 szLangInfo.
Format(
buf, nTranslations - 1);
241 szLangInfo =
L" (" + szLangInfo +
L")";
247 if (nTranslations > 1)
251 szLangInfo.
Format(
buf, nTranslations - 1);
256 szLangInfo =
L" (" + szLangInfo +
L")";
288 szLocale =
L"0x" + szLocale;
314 return !
Path.IsEmpty();
317#define MAX_SCRNSHOT_NUM 16
327 ScrnshotField.
Format(
L"Screenshot%d",
i + 1);
349 return !
Path.IsEmpty();
361 SizeInBytes = (
ULONG)iSizeBytes;
467 DWORD dwInstallTimeStamp;
471 ZeroMemory(&InstallLocalTime,
sizeof(InstallLocalTime));
507 DWORD dwWindowsInstaller = 0;
517 DWORD dwNoModify = 0;
523 dwNoModify = Tmp.
GetLength() > 0 ? (Tmp[0] ==
'1') : 0;
532 if (dwWindowsInstaller)
564 return !
Path.IsEmpty();
652 String.ReleaseBuffer(nChars);
660 if (
String.Find(
'%') >= 0)
PRTL_UNICODE_STRING_BUFFER Path
static AppsCategories ClampAvailableCategory(AppsCategories Category)
int CompareVersion(const CStringW &left, const CStringW &right)
#define GENERATE_ARPSUBKEY
BOOL IsKnownLicenseType(INT x)
#define DB_GENINSTSECTION
BOOL UninstallGenerated(CInstalledApplicationInfo &AppInfo, UninstallCommandFlags Flags)
BOOL WriteLogMessage(WORD wType, DWORD dwEventID, LPCWSTR lpMsg)
BOOL StartProcess(const CStringW &Path, BOOL Wait)
BOOL GetInstalledVersion(CStringW *pszVersion, const CStringW &szRegName)
void UnixTimeToFileTime(DWORD dwUnixTime, LPFILETIME pFileTime)
#define IDS_AINFO_AVAILABLEVERSION
#define IDS_INFO_INSTALLSRC
#define IDS_STATUS_NOTINSTALLED
#define IDS_INFO_REGOWNER
#define IDS_LICENSE_TRIAL
#define IDS_AINFO_VERSION
#define IDS_LICENSE_FREEWARE
#define IDS_INFO_HELPLINK
#define IDS_LANGUAGE_MORE_PLACEHOLDER
#define IDS_LANGUAGE_SINGLE
#define IDS_INFO_INSTALLDATE
#define IDS_AINFO_PACKAGE_NAME
#define IDS_INFO_HELPPHONE
#define IDS_AINFO_LICENSE
#define IDS_STATUS_UPDATE_AVAILABLE
#define IDS_LANGUAGE_NO_TRANSLATION
#define IDS_INFO_INSTLOCATION
#define IDS_INFO_COMMENTS
#define IDS_AINFO_LANGUAGES
#define IDS_INFO_UPDATEINFO
#define IDS_AINFO_DESCRIPTION
#define IDS_AINFO_URLSITE
#define IDS_INFO_MODIFYPATH
#define IDS_INFO_UNINSTALLSTR
#define IDS_LICENSE_OPENSOURCE
#define IDS_LANGUAGE_AVAILABLE_PLACEHOLDER
#define IDS_INFO_PRODUCTID
#define IDS_AINFO_URLDOWNLOAD
#define IDS_LANGUAGE_AVAILABLE_TRANSLATION
#define IDS_INFO_PUBLISHER
#define IDS_STATUS_INSTALLED
#define IDS_LANGUAGE_ENGLISH_TRANSLATION
#define IDS_INFO_INFOABOUT
LONG QueryStringValue(LPCTSTR pszValueName, LPTSTR pszValue, ULONG *pnChars) noexcept
int Find(const T &t) const
bool IsEmpty() const noexcept
void ReleaseBuffer(_In_ int nNewLength=-1)
PXSTR GetString() noexcept
int GetLength() const noexcept
int CompareNoCase(_In_z_ PCXSTR psz) const
CStringT Left(int nCount) const
void __cdecl Format(UINT nFormatID,...)
CStringT Tokenize(_In_z_ PCXSTR pszTokens, _Inout_ int &iStart) const
CStringT Mid(int iFirst, int nCount) const
CAppInfo(const CStringW &Identifier, AppsCategories Category)
CStringW szDisplayVersion
const CStringW szIdentifier
VOID InsertTextWithString(UINT StringID, const CStringW &Text, DWORD TextFlags)
VOID LoadAndInsertText(UINT uStringID, const CStringW &szText, DWORD TextFlags)
virtual InstallerType GetInstallerType() const override
CAvailableApplicationInfo(CConfigParser *Parser, const CStringW &PkgName, AppsCategories Category, const CPathW &BasePath)
~CAvailableApplicationInfo()
CSimpleArray< LCID > m_LanguageLCIDs
virtual VOID GetDisplayInfo(CStringW &License, CStringW &Size, CStringW &UrlSite, CStringW &UrlDownload) override
virtual BOOL RetrieveScreenshot(CStringW &Path) override
virtual VOID GetDownloadInfo(CStringW &Url, CStringW &Sha1, ULONG &SizeInBytes) const override
virtual BOOL CanModify() override
virtual BOOL Valid() const override
virtual BOOL UninstallApplication(UninstallCommandFlags Flags) override
VOID InsertLanguageInfo(CAppRichEdit *RichEdit)
virtual BOOL RetrieveIcon(CStringW &Path) const override
CSimpleArray< CStringW > m_szScrnshotLocation
virtual VOID ShowAppInfo(CAppRichEdit *RichEdit) override
VOID InsertVersionInfo(CAppRichEdit *RichEdit)
BOOL GetString(const CStringW &KeyName, CStringW &ResultString)
BOOL GetInt(const CStringW &KeyName, INT &iResult)
virtual VOID ShowAppInfo(CAppRichEdit *RichEdit) override
virtual BOOL RetrieveScreenshot(CStringW &Path) override
BOOL GetApplicationRegDword(LPCWSTR lpKeyName, DWORD *lpValue)
~CInstalledApplicationInfo()
VOID RetrieveUninstallStrings()
CStringW m_szUninstallString
VOID RetrieveInstallDate()
virtual BOOL Valid() const override
virtual BOOL RetrieveIcon(CStringW &Path) const override
BOOL GetApplicationRegString(LPCWSTR lpKeyName, CStringW &String)
VOID AddApplicationRegString(CAppRichEdit *RichEdit, UINT StringID, const CStringW &String, DWORD TextFlags)
virtual VOID GetDisplayInfo(CStringW &License, CStringW &Size, CStringW &UrlSite, CStringW &UrlDownload) override
CInstalledApplicationInfo(HKEY Key, const CStringW &KeyName, AppsCategories Category, UINT KeyInfo)
virtual BOOL CanModify() override
virtual InstallerType GetInstallerType() const override
virtual BOOL UninstallApplication(UninstallCommandFlags Flags) override
virtual VOID GetDownloadInfo(CStringW &Url, CStringW &Sha1, ULONG &SizeInBytes) const override
CStringW m_szModifyString
VOID InsertText(LPCWSTR lpszText, DWORD dwEffects)
VOID SetText(LPCWSTR lpszText, DWORD dwEffects)
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
DWORD WINAPI ExpandEnvironmentStringsW(IN LPCWSTR lpSrc, IN LPWSTR lpDst, IN DWORD nSize)
BOOL WINAPI FileTimeToSystemTime(IN CONST FILETIME *lpFileTime, OUT LPSYSTEMTIME lpSystemTime)
BOOL WINAPI SystemTimeToTzSpecificLocalTime(CONST TIME_ZONE_INFORMATION *lpTimeZoneInformation, CONST SYSTEMTIME *lpUniversalTime, LPSYSTEMTIME lpLocalTime)
LCID WINAPI GetUserDefaultLCID(void)
static const WCHAR IconPath[]
BOOL WINAPI PathFileExistsW(LPCWSTR lpszPath)
BOOL WINAPI StrToIntExW(LPCWSTR lpszStr, DWORD dwFlags, int *lpiRet)
LPWSTR WINAPI StrFormatByteSizeW(LONGLONG llBytes, LPWSTR lpszDest, UINT cchMax)
BOOL WINAPI PathIsURLW(LPCWSTR lpstrPath)
GLenum GLuint GLenum GLsizei const GLchar * buf
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
_Check_return_ long __cdecl wcstol(_In_z_ const wchar_t *_Str, _Out_opt_ _Deref_post_z_ wchar_t **_EndPtr, _In_ int _Radix)
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
#define LOCALE_USER_DEFAULT
#define MAKELCID(lgid, srtid)
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
_Must_inspect_result_ _In_ WDFDEVICE _In_ PCUNICODE_STRING KeyName
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFSTRING String
_Must_inspect_result_ _In_ ULONG Flags