Copy w32api 2.5 to trunk
[reactos.git] / reactos / w32api / include / shellapi.h
1 #ifndef _SHELLAPI_H
2 #define _SHELLAPI_H
3 #if __GNUC__ >= 3
4 #pragma GCC system_header
5 #endif
6
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
10 #define WINSHELLAPI DECLSPEC_IMPORT
11 #define ABE_LEFT 0
12 #define ABE_TOP 1
13 #define ABE_RIGHT 2
14 #define ABE_BOTTOM 3
15 #define ABS_AUTOHIDE 1
16 #define ABS_ALWAYSONTOP 2
17 #define SEE_MASK_CLASSNAME 1
18 #define SEE_MASK_CLASSKEY 3
19 #define SEE_MASK_IDLIST 4
20 #define SEE_MASK_INVOKEIDLIST 12
21 #define SEE_MASK_ICON 0x10
22 #define SEE_MASK_HOTKEY 0x20
23 #define SEE_MASK_NOCLOSEPROCESS 0x40
24 #define SEE_MASK_CONNECTNETDRV 0x80
25 #define SEE_MASK_FLAG_DDEWAIT 0x100
26 #define SEE_MASK_DOENVSUBST 0x200
27 #define SEE_MASK_FLAG_NO_UI 0x400
28 #define SEE_MASK_NO_CONSOLE 0x8000
29 #define SEE_MASK_UNICODE 0x10000
30 #define SEE_MASK_ASYNCOK 0x100000
31 #define SEE_MASK_HMONITOR 0x200000
32 #define ABM_NEW 0
33 #define ABM_REMOVE 1
34 #define ABM_QUERYPOS 2
35 #define ABM_SETPOS 3
36 #define ABM_GETSTATE 4
37 #define ABM_GETTASKBARPOS 5
38 #define ABM_ACTIVATE 6
39 #define ABM_GETAUTOHIDEBAR 7
40 #define ABM_SETAUTOHIDEBAR 8
41 #define ABM_WINDOWPOSCHANGED 9
42 #define ABN_STATECHANGE 0
43 #define ABN_POSCHANGED 1
44 #define ABN_FULLSCREENAPP 2
45 #define ABN_WINDOWARRANGE 3
46 #define NIM_ADD 0
47 #define NIM_MODIFY 1
48 #define NIM_DELETE 2
49 #define NIF_MESSAGE 1
50 #define NIF_ICON 2
51 #define NIF_TIP 4
52 #define SE_ERR_FNF 2
53 #define SE_ERR_PNF 3
54 #define SE_ERR_ACCESSDENIED 5
55 #define SE_ERR_OOM 8
56 #define SE_ERR_DLLNOTFOUND 32
57 #define SE_ERR_SHARE 26
58 #define SE_ERR_ASSOCINCOMPLETE 27
59 #define SE_ERR_DDETIMEOUT 28
60 #define SE_ERR_DDEFAIL 29
61 #define SE_ERR_DDEBUSY 30
62 #define SE_ERR_NOASSOC 31
63 #define FO_MOVE 1
64 #define FO_COPY 2
65 #define FO_DELETE 3
66 #define FO_RENAME 4
67 #define FOF_MULTIDESTFILES 1
68 #define FOF_CONFIRMMOUSE 2
69 #define FOF_SILENT 4
70 #define FOF_RENAMEONCOLLISION 8
71 #define FOF_NOCONFIRMATION 16
72 #define FOF_WANTMAPPINGHANDLE 32
73 #define FOF_ALLOWUNDO 64
74 #define FOF_FILESONLY 128
75 #define FOF_SIMPLEPROGRESS 256
76 #define FOF_NOCONFIRMMKDIR 512
77 #define FOF_NOERRORUI 1024
78 #define FOF_NOCOPYSECURITYATTRIBS 2048
79 #define PO_DELETE 19
80 #define PO_RENAME 20
81 #define PO_PORTCHANGE 32
82 #define PO_REN_PORT 52
83 #define SHGFI_ICON 256
84 #define SHGFI_DISPLAYNAME 512
85 #define SHGFI_TYPENAME 1024
86 #define SHGFI_ATTRIBUTES 2048
87 #define SHGFI_ICONLOCATION 4096
88 #define SHGFI_EXETYPE 8192
89 #define SHGFI_SYSICONINDEX 16384
90 #define SHGFI_LINKOVERLAY 32768
91 #define SHGFI_SELECTED 65536
92 #define SHGFI_ATTR_SPECIFIED 131072
93 #define SHGFI_LARGEICON 0
94 #define SHGFI_SMALLICON 1
95 #define SHGFI_OPENICON 2
96 #define SHGFI_SHELLICONSIZE 4
97 #define SHGFI_PIDL 8
98 #define SHGFI_USEFILEATTRIBUTES 16
99 #define SHERB_NOCONFIRMATION 1
100 #define SHERB_NOPROGRESSUI 2
101 #define SHERB_NOSOUND 4
102
103 typedef WORD FILEOP_FLAGS;
104 typedef WORD PRINTEROP_FLAGS;
105 #include <pshpack2.h>
106 typedef struct _AppBarData {
107 DWORD cbSize;
108 HWND hWnd;
109 UINT uCallbackMessage;
110 UINT uEdge;
111 RECT rc;
112 LPARAM lParam;
113 } APPBARDATA,*PAPPBARDATA;
114 DECLARE_HANDLE(HDROP);
115 typedef struct _NOTIFYICONDATAA {
116 DWORD cbSize;
117 HWND hWnd;
118 UINT uID;
119 UINT uFlags;
120 UINT uCallbackMessage;
121 HICON hIcon;
122 CHAR szTip[64];
123 } NOTIFYICONDATAA,*PNOTIFYICONDATAA;
124 typedef struct _NOTIFYICONDATAW {
125 DWORD cbSize;
126 HWND hWnd;
127 UINT uID;
128 UINT uFlags;
129 UINT uCallbackMessage;
130 HICON hIcon;
131 WCHAR szTip[64];
132 } NOTIFYICONDATAW,*PNOTIFYICONDATAW;
133 typedef struct _SHELLEXECUTEINFOA {
134 DWORD cbSize;
135 ULONG fMask;
136 HWND hwnd;
137 LPCSTR lpVerb;
138 LPCSTR lpFile;
139 LPCSTR lpParameters;
140 LPCSTR lpDirectory;
141 int nShow;
142 HINSTANCE hInstApp;
143 PVOID lpIDList;
144 LPCSTR lpClass;
145 HKEY hkeyClass;
146 DWORD dwHotKey;
147 HANDLE hIcon;
148 HANDLE hProcess;
149 } SHELLEXECUTEINFOA,*LPSHELLEXECUTEINFOA;
150 typedef struct _SHELLEXECUTEINFOW {
151 DWORD cbSize;
152 ULONG fMask;
153 HWND hwnd;
154 LPCWSTR lpVerb;
155 LPCWSTR lpFile;
156 LPCWSTR lpParameters;
157 LPCWSTR lpDirectory;
158 int nShow;
159 HINSTANCE hInstApp;
160 PVOID lpIDList;
161 LPCWSTR lpClass;
162 HKEY hkeyClass;
163 DWORD dwHotKey;
164 HANDLE hIcon;
165 HANDLE hProcess;
166 } SHELLEXECUTEINFOW,*LPSHELLEXECUTEINFOW;
167 typedef struct _SHFILEOPSTRUCTA {
168 HWND hwnd;
169 UINT wFunc;
170 LPCSTR pFrom;
171 LPCSTR pTo;
172 FILEOP_FLAGS fFlags;
173 BOOL fAnyOperationsAborted;
174 PVOID hNameMappings;
175 LPCSTR lpszProgressTitle;
176 } SHFILEOPSTRUCTA,*LPSHFILEOPSTRUCTA;
177 typedef struct _SHFILEOPSTRUCTW {
178 HWND hwnd;
179 UINT wFunc;
180 LPCWSTR pFrom;
181 LPCWSTR pTo;
182 FILEOP_FLAGS fFlags;
183 BOOL fAnyOperationsAborted;
184 PVOID hNameMappings;
185 LPCWSTR lpszProgressTitle;
186 } SHFILEOPSTRUCTW,*LPSHFILEOPSTRUCTW;
187 typedef struct _SHFILEINFOA {
188 HICON hIcon;
189 int iIcon;
190 DWORD dwAttributes;
191 CHAR szDisplayName[MAX_PATH];
192 CHAR szTypeName[80];
193 } SHFILEINFOA;
194 typedef struct _SHFILEINFOW {
195 HICON hIcon;
196 int iIcon;
197 DWORD dwAttributes;
198 WCHAR szDisplayName[MAX_PATH];
199 WCHAR szTypeName[80];
200 } SHFILEINFOW;
201 typedef struct _SHQUERYRBINFO {
202 DWORD cbSize;
203 __int64 i64Size;
204 __int64 i64NumItems;
205 } SHQUERYRBINFO, *LPSHQUERYRBINFO;
206 #include <poppack.h>
207
208 LPWSTR * WINAPI CommandLineToArgvW(LPCWSTR,int*);
209 void WINAPI DragAcceptFiles(HWND,BOOL);
210 void WINAPI DragFinish(HDROP);
211 UINT WINAPI DragQueryFileA(HDROP,UINT,LPSTR,UINT);
212 UINT WINAPI DragQueryFileW(HDROP,UINT,LPWSTR,UINT);
213 BOOL WINAPI DragQueryPoint(HDROP,LPPOINT);
214 HICON WINAPI ExtractAssociatedIconA(HINSTANCE,LPCSTR,PWORD);
215 HICON WINAPI ExtractAssociatedIconW(HINSTANCE,LPCWSTR,PWORD);
216 HICON WINAPI ExtractIconA(HINSTANCE,LPCSTR,UINT);
217 HICON WINAPI ExtractIconW(HINSTANCE,LPCWSTR,UINT);
218 UINT WINAPI ExtractIconExA(LPCSTR,int,HICON*,HICON*,UINT);
219 UINT WINAPI ExtractIconExW(LPCWSTR,int,HICON*,HICON*,UINT);
220 HINSTANCE WINAPI FindExecutableA(LPCSTR,LPCSTR,LPSTR);
221 HINSTANCE WINAPI FindExecutableW(LPCWSTR,LPCWSTR,LPWSTR);
222 UINT WINAPI SHAppBarMessage(DWORD,PAPPBARDATA);
223 BOOL WINAPI Shell_NotifyIconA(DWORD,PNOTIFYICONDATAA);
224 BOOL WINAPI Shell_NotifyIconW(DWORD,PNOTIFYICONDATAW);
225 int WINAPI ShellAboutA(HWND,LPCSTR,LPCSTR,HICON);
226 int WINAPI ShellAboutW(HWND,LPCWSTR,LPCWSTR,HICON);
227 HINSTANCE WINAPI ShellExecuteA(HWND,LPCSTR,LPCSTR,LPCSTR,LPCSTR,INT);
228 HINSTANCE WINAPI ShellExecuteW(HWND,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR,INT);
229 BOOL WINAPI ShellExecuteExA(LPSHELLEXECUTEINFOA);
230 BOOL WINAPI ShellExecuteExW(LPSHELLEXECUTEINFOW);
231 int WINAPI SHFileOperationA(LPSHFILEOPSTRUCTA);
232 int WINAPI SHFileOperationW(LPSHFILEOPSTRUCTW);
233 void WINAPI SHFreeNameMappings(HANDLE);
234 DWORD WINAPI SHGetFileInfoA(LPCSTR,DWORD,SHFILEINFOA*,UINT,UINT);
235 DWORD WINAPI SHGetFileInfoW(LPCWSTR,DWORD,SHFILEINFOW*,UINT,UINT);
236 HRESULT WINAPI SHQueryRecycleBinA(LPCSTR, LPSHQUERYRBINFO);
237 HRESULT WINAPI SHQueryRecycleBinW(LPCWSTR, LPSHQUERYRBINFO);
238 HRESULT WINAPI SHEmptyRecycleBinA(HWND,LPCSTR,DWORD);
239 HRESULT WINAPI SHEmptyRecycleBinW(HWND,LPCWSTR,DWORD);
240
241 #ifdef UNICODE
242 typedef NOTIFYICONDATAW NOTIFYICONDATA,*PNOTIFYICONDATA;
243 typedef SHELLEXECUTEINFOW SHELLEXECUTEINFO,*LPSHELLEXECUTEINFO;
244 typedef SHFILEOPSTRUCTW SHFILEOPSTRUCT,*LPSHFILEOPSTRUCT;
245 typedef SHFILEINFOW SHFILEINFO;
246 #define DragQueryFile DragQueryFileW
247 #define ExtractAssociatedIcon ExtractAssociatedIconW
248 #define ExtractIcon ExtractIconW
249 #define ExtractIconEx ExtractIconExW
250 #define FindExecutable FindExecutableW
251 #define Shell_NotifyIcon Shell_NotifyIconW
252 #define ShellAbout ShellAboutW
253 #define ShellExecute ShellExecuteW
254 #define ShellExecuteEx ShellExecuteExW
255 #define SHFileOperation SHFileOperationW
256 #define SHGetFileInfo SHGetFileInfoW
257 #define SHQueryRecycleBin SHQueryRecycleBinW
258 #define SHEmptyRecycleBin SHEmptyRecycleBinW
259
260 #else
261 typedef NOTIFYICONDATAA NOTIFYICONDATA,*PNOTIFYICONDATA;
262 typedef SHELLEXECUTEINFOA SHELLEXECUTEINFO,*LPSHELLEXECUTEINFO;
263 typedef SHFILEOPSTRUCTA SHFILEOPSTRUCT,*LPSHFILEOPSTRUCT;
264 typedef SHFILEINFOA SHFILEINFO;
265 #define DragQueryFile DragQueryFileA
266 #define ExtractAssociatedIcon ExtractAssociatedIconA
267 #define ExtractIcon ExtractIconA
268 #define ExtractIconEx ExtractIconExA
269 #define FindExecutable FindExecutableA
270 #define Shell_NotifyIcon Shell_NotifyIconA
271 #define ShellAbout ShellAboutA
272 #define ShellExecute ShellExecuteA
273 #define ShellExecuteEx ShellExecuteExA
274 #define SHFileOperation SHFileOperationA
275 #define SHGetFileInfo SHGetFileInfoA
276 #define SHQueryRecycleBin SHQueryRecycleBinA
277 #define SHEmptyRecycleBin SHEmptyRecycleBinA
278 #endif
279 #ifdef __cplusplus
280 }
281 #endif
282 #endif