reactos/base/applications/rapps/include/installed.h
He Yang e44c9b6630
[RAPPS] application-view refactor (#3003)
* [RAPPS] separate application-view from gui.cpp
* [RAPPS] make the code looks more clear
* [RAPPS] fix &  improve tab-order handle
* [RAPPS] now double-click / right-click & install an item will install exactly this app
* [RAPPS] add handling for DWORD timestamp for InstallDate
* [RAPPS] make the code setting column style more clear
* [RAPPS] change the owner of popup-menu
* [RAPPS] now the popup menu (the one when right-click listview) now belongs to application-view
2020-09-06 17:09:21 +02:00

55 lines
1.4 KiB
C++

#pragma once
#include <windef.h>
#include <atlstr.h>
class CInstalledApplicationInfo
{
public:
BOOL IsUserKey;
REGSAM WowKey;
HKEY hSubKey;
BOOL bIsUpdate = FALSE;
ATL::CStringW szKeyName;
CInstalledApplicationInfo(BOOL bIsUserKey, REGSAM RegWowKey, HKEY hKey);
BOOL GetApplicationRegString(LPCWSTR lpKeyName, ATL::CStringW& String);
BOOL GetApplicationRegDword(LPCWSTR lpKeyName, DWORD *lpValue);
BOOL UninstallApplication(BOOL bModify);
LSTATUS RemoveFromRegistry();
ATL::CStringW szDisplayName;
ATL::CStringW szDisplayVersion;
ATL::CStringW szPublisher;
ATL::CStringW szRegOwner;
ATL::CStringW szProductID;
ATL::CStringW szHelpLink;
ATL::CStringW szHelpTelephone;
ATL::CStringW szReadme;
ATL::CStringW szContact;
ATL::CStringW szURLUpdateInfo;
ATL::CStringW szURLInfoAbout;
ATL::CStringW szComments;
ATL::CStringW szInstallDate;
ATL::CStringW szInstallLocation;
ATL::CStringW szInstallSource;
ATL::CStringW szUninstallString;
ATL::CStringW szModifyPath;
~CInstalledApplicationInfo();
};
typedef BOOL(CALLBACK *APPENUMPROC)(CInstalledApplicationInfo * Info, PVOID param);
class CInstalledApps
{
ATL::CAtlList<CInstalledApplicationInfo *> m_InfoList;
public:
BOOL Enum(INT EnumType, APPENUMPROC lpEnumProc, PVOID param);
VOID FreeCachedEntries();
};