9 #define WIN32_NO_STATUS
11 #define COM_NO_WINDOWS_H
27 #include <ndk/rtlfuncs.h>
33 #ifdef USE_CERT_PINNING
34 #define CERT_ISSUER_INFO "BE\r\nGlobalSign nv-sa\r\nGlobalSign Domain Validation CA - SHA256 - G2"
35 #define CERT_SUBJECT_INFO "Domain Control Validated\r\n*.reactos.org"
38 #define APPLICATION_DATABASE_URL L"https://svn.reactos.org/packages/rappmgr.cab"
41 #define MAX_STR_LEN 256
43 #define LISTVIEW_ICON_SIZE 24
44 #define TREEVIEW_ICON_SIZE 24
46 /* EnumType flags for EnumInstalledApplications */
47 #define ENUM_ALL_COMPONENTS 30
48 #define ENUM_APPLICATIONS 31
49 #define ENUM_UPDATES 32
50 /* EnumType flags for EnumAvailableApplications */
51 #define ENUM_ALL_AVAILABLE 0
52 #define ENUM_CAT_AUDIO 1
53 #define ENUM_CAT_VIDEO 2
54 #define ENUM_CAT_GRAPHICS 3
55 #define ENUM_CAT_GAMES 4
56 #define ENUM_CAT_INTERNET 5
57 #define ENUM_CAT_OFFICE 6
58 #define ENUM_CAT_DEVEL 7
59 #define ENUM_CAT_EDU 8
60 #define ENUM_CAT_ENGINEER 9
61 #define ENUM_CAT_FINANCE 10
62 #define ENUM_CAT_SCIENCE 11
63 #define ENUM_CAT_TOOLS 12
64 #define ENUM_CAT_DRIVERS 13
65 #define ENUM_CAT_LIBS 14
66 #define ENUM_CAT_OTHER 15
68 #define ENUM_INSTALLED_MIN ENUM_ALL_COMPONENTS
69 #define ENUM_INSTALLED_MAX ENUM_UPDATES
70 #define ENUM_AVAILABLE_MIN ENUM_ALL_AVAILABLE
71 #define ENUM_AVAILABLE_MAX ENUM_CAT_OTHER
73 #define IS_INSTALLED_ENUM(a) (a >= ENUM_INSTALLED_MIN && a <= ENUM_INSTALLED_MAX)
74 #define IS_AVAILABLE_ENUM(a) (a >= ENUM_AVAILABLE_MIN && a <= ENUM_AVAILABLE_MAX)
78 VOID
ShowAboutDialog(VOID
);
84 WCHAR szName
[MAX_PATH
];
85 WCHAR szRegName
[MAX_PATH
];
86 WCHAR szVersion
[MAX_PATH
];
87 WCHAR szLicense
[MAX_PATH
];
88 WCHAR szDesc
[MAX_PATH
];
89 WCHAR szSize
[MAX_PATH
];
90 WCHAR szUrlSite
[MAX_PATH
];
91 WCHAR szUrlDownload
[MAX_PATH
];
92 WCHAR szCDPath
[MAX_PATH
];
94 /* caching mechanism related entries */
95 WCHAR cFileName
[MAX_PATH
];
96 FILETIME ftCacheStamp
;
99 /* optional integrity checks (SHA-1 digests are 160 bit = 40 characters in hex string form) */
100 WCHAR szSHA1
[40 + 1];
102 } APPLICATION_INFO
, *PAPPLICATION_INFO
;
108 WCHAR szKeyName
[MAX_PATH
];
110 } INSTALLED_INFO
, *PINSTALLED_INFO
;
117 WCHAR szDownloadDir
[MAX_PATH
];
127 WCHAR szProxyServer
[MAX_PATH
];
128 WCHAR szNoProxyFor
[MAX_PATH
];
130 } SETTINGS_INFO
, *PSETTINGS_INFO
;
133 typedef BOOL (CALLBACK
*AVAILENUMPROC
)(PAPPLICATION_INFO Info
);
134 BOOL
EnumAvailableApplications(INT EnumType
, AVAILENUMPROC lpEnumProc
);
135 BOOL
ShowAvailableAppInfo(INT Index
);
136 BOOL
UpdateAppsDB(VOID
);
137 VOID
FreeCachedAvailableEntries(VOID
);
140 BOOL
InstallApplication(INT Index
);
143 typedef BOOL (CALLBACK
*APPENUMPROC
)(INT ItemIndex
, LPWSTR lpName
, PINSTALLED_INFO Info
);
144 BOOL
EnumInstalledApplications(INT EnumType
, BOOL IsUserKey
, APPENUMPROC lpEnumProc
);
145 BOOL
GetApplicationString(HKEY hKey
, LPCWSTR lpKeyName
, LPWSTR lpString
);
146 BOOL
ShowInstalledAppInfo(INT Index
);
147 BOOL
UninstallApplication(INT Index
, BOOL bModify
);
148 BOOL
IsInstalledApplication(LPCWSTR lpRegName
, BOOL IsUserKey
, REGSAM keyWow
);
149 VOID
RemoveAppFromRegistry(INT Index
);
151 BOOL
InstalledVersion(LPWSTR szVersionResult
, UINT iVersionResultSize
, LPCWSTR lpRegName
, BOOL IsUserKey
, REGSAM keyWow
);
154 extern HWND hMainWnd
;
155 extern HINSTANCE hInst
;
156 extern INT SelectedEnumType
;
157 extern SETTINGS_INFO SettingsInfo
;
158 VOID
SaveSettings(HWND hwnd
);
159 VOID
FillDefaultSettings(PSETTINGS_INFO pSettingsInfo
);
162 BOOL
DownloadApplication(INT Index
);
163 VOID
DownloadApplicationsDB(LPCWSTR lpUrl
);
166 INT
GetSystemColorDepth(VOID
);
167 int GetWindowWidth(HWND hwnd
);
168 int GetWindowHeight(HWND hwnd
);
169 int GetClientWindowWidth(HWND hwnd
);
170 int GetClientWindowHeight(HWND hwnd
);
171 VOID
CopyTextToClipboard(LPCWSTR lpszText
);
172 VOID
SetWelcomeText(VOID
);
173 VOID
ShowPopupMenu(HWND hwnd
, UINT MenuID
, UINT DefaultItem
);
174 BOOL
StartProcess(LPWSTR lpPath
, BOOL Wait
);
175 BOOL
GetStorageDirectory(PWCHAR lpDirectory
, DWORD cch
);
176 BOOL
ExtractFilesFromCab(LPWSTR lpCabName
, LPWSTR lpOutputPath
);
179 BOOL
WriteLogMessage(WORD wType
, DWORD dwEventID
, LPWSTR lpMsg
);
181 UINT
ParserGetString(LPCWSTR lpKeyName
, LPWSTR lpReturnedString
, UINT nSize
, LPCWSTR lpFileName
);
182 UINT
ParserGetInt(LPCWSTR lpKeyName
, LPCWSTR lpFileName
);
184 BOOL
FindRegistryKeyByName(_In_ HKEY hKeyBase
, _In_ REGSAM keyWow
, _In_ LPCWSTR lpcKey
, _Out_opt_ PHKEY hKeyResult
);
187 VOID
CreateSettingsDlg(HWND hwnd
);
190 HWND
CreateMainWindow();
191 DWORD_PTR
ListViewGetlParam(INT item
);
192 INT
ListViewAddItem(INT ItemIndex
, INT IconIndex
, PWSTR lpName
, LPARAM lParam
);
193 VOID
SetStatusBarText(PCWSTR szText
);
194 VOID
NewRichEditText(PCWSTR szText
, DWORD flags
);
195 VOID
InsertRichEditText(PCWSTR szText
, DWORD flags
);
196 extern HWND hListView
;
197 extern WCHAR szSearchPattern
[MAX_STR_LEN
];
200 BOOL
VerifyInteg(LPCWSTR lpSHA1Hash
, LPCWSTR lpFileName
);
202 //extern HWND hTreeView;
203 //BOOL CreateTreeView(HWND hwnd);
204 //HTREEITEM TreeViewAddItem(HTREEITEM hParent, LPWSTR lpText, INT Image, INT SelectedImage, LPARAM lParam);
207 #endif /* _RAPPS_H */