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