[RAPPS]
[reactos.git] / reactos / base / applications / rapps / rapps.h
1 #ifndef _RAPPS_H
2 #define _RAPPS_H
3
4 #include <stdarg.h>
5
6 #define WIN32_NO_STATUS
7 #define _INC_WINDOWS
8 #define COM_NO_WINDOWS_H
9 #define COBJMACROS
10
11 #include <windef.h>
12 #include <winbase.h>
13 #include <winreg.h>
14 #include <wingdi.h>
15 #include <winnls.h>
16 #include <winuser.h>
17 #include <wincon.h>
18 #include <richedit.h>
19 #include <shlobj.h>
20 #include <shlwapi.h>
21 #include <stdio.h>
22 #include <strsafe.h>
23
24 #include <rappsmsg.h>
25
26 #include "resource.h"
27
28 /* FIXME: this should be downloaded by HTTPS once is supported */
29 #define APPLICATION_DATABASE_URL L"http://svn.reactos.org/packages/rappmgr.cab"
30
31 #define SPLIT_WIDTH 4
32 #define MAX_STR_LEN 256
33
34 #define LISTVIEW_ICON_SIZE 24
35 #define TREEVIEW_ICON_SIZE 24
36
37 /* EnumType flags for EnumInstalledApplications */
38 #define ENUM_ALL_COMPONENTS 30
39 #define ENUM_APPLICATIONS 31
40 #define ENUM_UPDATES 32
41 /* EnumType flags for EnumAvailableApplications */
42 #define ENUM_ALL_AVAILABLE 0
43 #define ENUM_CAT_AUDIO 1
44 #define ENUM_CAT_VIDEO 2
45 #define ENUM_CAT_GRAPHICS 3
46 #define ENUM_CAT_GAMES 4
47 #define ENUM_CAT_INTERNET 5
48 #define ENUM_CAT_OFFICE 6
49 #define ENUM_CAT_DEVEL 7
50 #define ENUM_CAT_EDU 8
51 #define ENUM_CAT_ENGINEER 9
52 #define ENUM_CAT_FINANCE 10
53 #define ENUM_CAT_SCIENCE 11
54 #define ENUM_CAT_TOOLS 12
55 #define ENUM_CAT_DRIVERS 13
56 #define ENUM_CAT_LIBS 14
57 #define ENUM_CAT_OTHER 15
58
59 #define ENUM_INSTALLED_MIN ENUM_ALL_COMPONENTS
60 #define ENUM_INSTALLED_MAX ENUM_UPDATES
61 #define ENUM_AVAILABLE_MIN ENUM_ALL_AVAILABLE
62 #define ENUM_AVAILABLE_MAX ENUM_CAT_OTHER
63
64 #define IS_INSTALLED_ENUM(a) (a >= ENUM_INSTALLED_MIN && a <= ENUM_INSTALLED_MAX)
65 #define IS_AVAILABLE_ENUM(a) (a >= ENUM_AVAILABLE_MIN && a <= ENUM_AVAILABLE_MAX)
66
67 /* aboutdlg.c */
68 VOID ShowAboutDialog(VOID);
69
70 /* available.c */
71 typedef struct
72 {
73 INT Category;
74 WCHAR szName[MAX_PATH];
75 WCHAR szRegName[MAX_PATH];
76 WCHAR szVersion[MAX_PATH];
77 WCHAR szLicense[MAX_PATH];
78 WCHAR szDesc[MAX_PATH];
79 WCHAR szSize[MAX_PATH];
80 WCHAR szUrlSite[MAX_PATH];
81 WCHAR szUrlDownload[MAX_PATH];
82 WCHAR szCDPath[MAX_PATH];
83
84 /* caching mechanism related entries */
85 WCHAR cFileName[MAX_PATH];
86 FILETIME ftCacheStamp;
87 LIST_ENTRY List;
88
89 /* optional integrity checks */
90 BYTE MD5Checksum[16];
91
92 } APPLICATION_INFO, *PAPPLICATION_INFO;
93
94 typedef struct
95 {
96 HKEY hRootKey;
97 HKEY hSubKey;
98 WCHAR szKeyName[MAX_PATH];
99
100 } INSTALLED_INFO, *PINSTALLED_INFO;
101
102 typedef struct
103 {
104 BOOL bSaveWndPos;
105 BOOL bUpdateAtStart;
106 BOOL bLogEnabled;
107 WCHAR szDownloadDir[MAX_PATH];
108 BOOL bDelInstaller;
109 /* Window Pos */
110 BOOL Maximized;
111 INT Left;
112 INT Top;
113 INT Width;
114 INT Height;
115 /* Proxy settings */
116 INT Proxy;
117 WCHAR szProxyServer[MAX_PATH];
118 WCHAR szNoProxyFor[MAX_PATH];
119
120 } SETTINGS_INFO, *PSETTINGS_INFO;
121
122 /* available.c */
123 typedef BOOL (CALLBACK *AVAILENUMPROC)(PAPPLICATION_INFO Info);
124 BOOL EnumAvailableApplications(INT EnumType, AVAILENUMPROC lpEnumProc);
125 BOOL ShowAvailableAppInfo(INT Index);
126 BOOL UpdateAppsDB(VOID);
127
128 /* installdlg.c */
129 BOOL InstallApplication(INT Index);
130
131 /* installed.c */
132 typedef BOOL (CALLBACK *APPENUMPROC)(INT ItemIndex, LPWSTR lpName, PINSTALLED_INFO Info);
133 BOOL EnumInstalledApplications(INT EnumType, BOOL IsUserKey, APPENUMPROC lpEnumProc);
134 BOOL GetApplicationString(HKEY hKey, LPWSTR lpKeyName, LPWSTR lpString);
135 BOOL ShowInstalledAppInfo(INT Index);
136 BOOL UninstallApplication(INT Index, BOOL bModify);
137 BOOL IsInstalledApplication(LPWSTR lpRegName, BOOL IsUserKey);
138 VOID RemoveAppFromRegistry(INT Index);
139
140 /* winmain.c */
141 extern HWND hMainWnd;
142 extern HINSTANCE hInst;
143 extern INT SelectedEnumType;
144 extern SETTINGS_INFO SettingsInfo;
145 VOID SaveSettings(HWND hwnd);
146 VOID FillDefaultSettings(PSETTINGS_INFO pSettingsInfo);
147
148 /* listview.c */
149 extern HWND hListView;
150 extern BOOL bAscending;
151 BOOL CreateListView(HWND hwnd);
152 BOOL ListViewAddColumn(INT Index, LPWSTR lpText, INT Width, INT Format);
153 INT ListViewAddItem(INT ItemIndex, INT IconIndex, LPWSTR lpText, LPARAM lParam);
154 INT CALLBACK ListViewCompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort);
155 PVOID ListViewGetlParam(INT Index);
156
157 /* loaddlg.c */
158 BOOL DownloadApplication(INT Index);
159 VOID DownloadApplicationsDB(LPWSTR lpUrl);
160
161 /* misc.c */
162 INT GetSystemColorDepth(VOID);
163 int GetWindowWidth(HWND hwnd);
164 int GetWindowHeight(HWND hwnd);
165 int GetClientWindowWidth(HWND hwnd);
166 int GetClientWindowHeight(HWND hwnd);
167 VOID CopyTextToClipboard(LPCWSTR lpszText);
168 VOID SetWelcomeText(VOID);
169 VOID ShowPopupMenu(HWND hwnd, UINT MenuID, UINT DefaultItem);
170 BOOL StartProcess(LPWSTR lpPath, BOOL Wait);
171 BOOL GetStorageDirectory(PWCHAR lpDirectory, DWORD cch);
172 BOOL ExtractFilesFromCab(LPWSTR lpCabName, LPWSTR lpOutputPath);
173 VOID InitLogs(VOID);
174 VOID FreeLogs(VOID);
175 BOOL WriteLogMessage(WORD wType, DWORD dwEventID, LPWSTR lpMsg);
176
177 UINT ParserGetString(LPCWSTR lpKeyName, LPWSTR lpReturnedString, UINT nSize, LPCWSTR lpFileName);
178 UINT ParserGetInt(LPCWSTR lpKeyName, LPCWSTR lpFileName);
179
180 /* richedit.c */
181 extern HWND hRichEdit;
182 extern PWSTR pLink;
183 BOOL CreateRichEdit(HWND hwnd);
184 VOID RichEditOnLink(HWND hwnd, ENLINK *Link);
185 VOID InsertRichEditText(LPCWSTR lpszText, DWORD dwEffects);
186 VOID NewRichEditText(LPCWSTR lpszText, DWORD dwEffects);
187
188 /* settingsdlg.c */
189 VOID CreateSettingsDlg(HWND hwnd);
190
191 /* splitter.c */
192 extern HWND hVSplitter;
193 extern HWND hHSplitter;
194 BOOL CreateVSplitBar(HWND hwnd);
195 BOOL CreateHSplitBar(HWND hwnd);
196 int GetHSplitterPos(VOID);
197 VOID SetHSplitterPos(int Pos);
198
199 /* statusbar.c */
200 extern HWND hStatusBar;
201 BOOL CreateStatusBar(HWND hwnd);
202 VOID SetStatusBarText(LPCWSTR lpszText);
203
204 /* toolbar.c */
205 extern HWND hToolBar;
206 extern HWND hSearchBar;
207 BOOL CreateToolBar(HWND hwnd);
208 VOID ToolBarOnGetDispInfo(LPTOOLTIPTEXT lpttt);
209
210 /* treeview.c */
211 extern HWND hTreeView;
212 BOOL CreateTreeView(HWND hwnd);
213 HTREEITEM TreeViewAddItem(HTREEITEM hParent, LPWSTR lpText, INT Image, INT SelectedImage, LPARAM lParam);
214
215 #endif /* _RAPPS_H */