- Fix problem with uTorrent deinstallation
[reactos.git] / reactos / base / applications / rapps / rapps.h
1 #ifndef _RAPPS_H__
2 #define _RAPPS_H__
3
4 #include <windows.h>
5 #include <commctrl.h>
6 #include <richedit.h>
7 #include <shlwapi.h>
8 #include <wchar.h>
9
10 #include "resource.h"
11
12 #define APPLICATION_DATEBASE_URL L"http://opendn.org/rappmgr.cab"
13
14 #define SPLIT_WIDTH 4
15 #define MAX_STR_LEN 256
16
17 #define LISTVIEW_ICON_SIZE 24
18 #define TREEVIEW_ICON_SIZE 24
19
20 /* EnumType flags for EnumInstalledApplications */
21 #define ENUM_ALL_COMPONENTS 30
22 #define ENUM_APPLICATIONS 31
23 #define ENUM_UPDATES 32
24 /* EnumType flags for EnumAvailableApplications */
25 #define ENUM_ALL_AVAILABLE 0
26 #define ENUM_CAT_AUDIO 1
27 #define ENUM_CAT_VIDEO 2
28 #define ENUM_CAT_GRAPHICS 3
29 #define ENUM_CAT_GAMES 4
30 #define ENUM_CAT_INTERNET 5
31 #define ENUM_CAT_OFFICE 6
32 #define ENUM_CAT_DEVEL 7
33 #define ENUM_CAT_EDU 8
34 #define ENUM_CAT_ENGINEER 9
35 #define ENUM_CAT_FINANCE 10
36 #define ENUM_CAT_SCIENCE 11
37 #define ENUM_CAT_TOOLS 12
38 #define ENUM_CAT_DRIVERS 13
39 #define ENUM_CAT_LIBS 14
40 #define ENUM_CAT_OTHER 15
41
42 #define ENUM_INSTALLED_MIN ENUM_ALL_COMPONENTS
43 #define ENUM_INSTALLED_MAX ENUM_UPDATES
44 #define ENUM_AVAILABLE_MIN ENUM_ALL_AVAILABLE
45 #define ENUM_AVAILABLE_MAX ENUM_CAT_OTHER
46
47 #define IS_INSTALLED_ENUM(a) (a >= ENUM_INSTALLED_MIN && a <= ENUM_INSTALLED_MAX)
48 #define IS_AVAILABLE_ENUM(a) (a >= ENUM_AVAILABLE_MIN && a <= ENUM_AVAILABLE_MAX)
49
50 /* aboutdlg.c */
51 VOID ShowAboutDialog(VOID);
52
53 /* available.c */
54 typedef struct
55 {
56 INT Category;
57 WCHAR szName[MAX_PATH];
58 WCHAR szRegName[MAX_PATH];
59 WCHAR szVersion[MAX_PATH];
60 WCHAR szLicence[MAX_PATH];
61 WCHAR szDesc[MAX_PATH];
62 WCHAR szSize[MAX_PATH];
63 WCHAR szUrlSite[MAX_PATH];
64 WCHAR szUrlDownload[MAX_PATH];
65 WCHAR szCDPath[MAX_PATH];
66
67 } APPLICATION_INFO, *PAPPLICATION_INFO;
68
69 /* available.c */
70 typedef BOOL (CALLBACK *AVAILENUMPROC)(APPLICATION_INFO Info);
71 BOOL EnumAvailableApplications(INT EnumType, AVAILENUMPROC lpEnumProc);
72 BOOL ShowAvailableAppInfo(INT Index);
73
74 /* installdlg.c */
75 BOOL InstallApplication(INT Index);
76
77 /* installed.c */
78 typedef BOOL (CALLBACK *APPENUMPROC)(INT ItemIndex, LPWSTR lpName, LPWSTR lpKeyName, LPARAM lParam);
79 BOOL EnumInstalledApplications(INT EnumType, BOOL IsUserKey, APPENUMPROC lpEnumProc);
80 BOOL GetApplicationString(HKEY hKey, LPWSTR lpKeyName, LPWSTR lpString);
81 BOOL ShowInstalledAppInfo(INT Index);
82 BOOL UninstallApplication(INT Index, BOOL bModify);
83 BOOL IsInstalledApplication(LPWSTR lpRegName, BOOL IsUserKey);
84
85 /* winmain.c */
86 extern HWND hMainWnd;
87 extern HINSTANCE hInst;
88 extern INT SelectedEnumType;
89
90 /* listview.c */
91 extern HWND hListView;
92 extern BOOL bAscending;
93 BOOL CreateListView(HWND hwnd);
94 BOOL ListViewAddColumn(INT Index, LPWSTR lpText, INT Width, INT Format);
95 INT ListViewAddItem(INT ItemIndex, INT IconIndex, LPWSTR lpText, LPARAM lParam);
96 INT CALLBACK ListViewCompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort);
97 PVOID ListViewGetlParam(INT Index);
98
99 /* loaddlg.c */
100 BOOL DownloadApplication(INT Index);
101 VOID DownloadApplicationsDB(LPWSTR lpUrl);
102
103 /* misc.c */
104 INT GetSystemColorDepth(VOID);
105 int GetWindowWidth(HWND hwnd);
106 int GetWindowHeight(HWND hwnd);
107 int GetClientWindowWidth(HWND hwnd);
108 int GetClientWindowHeight(HWND hwnd);
109 VOID CopyTextToClipboard(LPCWSTR lpszText);
110 VOID SetWelcomeText(VOID);
111 VOID ShowPopupMenu(HWND hwnd, UINT MenuID);
112 BOOL StartProcess(LPWSTR lpPath, BOOL Wait);
113 BOOL ExtractFilesFromCab(LPWSTR lpCabName, LPWSTR lpOutputPath);
114
115 /* parser.c */
116 INT ParserGetString(LPCWSTR section, LPCWSTR entry, LPWSTR buffer, UINT len, LPCWSTR filename);
117 UINT ParserGetInt(LPCWSTR section, LPCWSTR entry, LPCWSTR filename);
118
119 /* richedit.c */
120 extern HWND hRichEdit;
121 extern PWSTR pLink;
122 BOOL CreateRichEdit(HWND hwnd);
123 VOID RichEditOnLink(HWND hwnd, ENLINK *Link);
124 VOID InsertRichEditText(LPCWSTR lpszText, DWORD dwEffects);
125 VOID NewRichEditText(LPCWSTR lpszText, DWORD dwEffects);
126
127 /* settingsdlg.c */
128 VOID CreateSettingsDlg(HWND hwnd);
129
130 /* splitter.c */
131 extern HWND hVSplitter;
132 extern HWND hHSplitter;
133 BOOL CreateVSplitBar(HWND hwnd);
134 BOOL CreateHSplitBar(HWND hwnd);
135 int GetHSplitterPos(VOID);
136 VOID SetHSplitterPos(int Pos);
137
138 /* statusbar.c */
139 extern HWND hStatusBar;
140 BOOL CreateStatusBar(HWND hwnd);
141 VOID SetStatusBarText(LPCWSTR lpszText);
142
143 /* toolbar.c */
144 extern HWND hToolBar;
145 extern HWND hSearchBar;
146 BOOL CreateToolBar(HWND hwnd);
147 VOID ToolBarOnGetDispInfo(LPTOOLTIPTEXT lpttt);
148
149 /* treeview.c */
150 extern HWND hTreeView;
151 BOOL CreateTreeView(HWND hwnd);
152 HTREEITEM TreeViewAddItem(HTREEITEM hParent, LPWSTR lpText, INT Image, INT SelectedImage, LPARAM lParam);
153
154 #endif /* _RAPPS_H__ */