source: Daodan/MinGW/include/shellapi.h@ 1088

Last change on this file since 1088 was 1046, checked in by alloc, 8 years ago

Daodan: Added Windows MinGW and build batch file

File size: 9.9 KB
Line 
1#ifndef _SHELLAPI_H
2#define _SHELLAPI_H
3#if __GNUC__ >= 3
4#pragma GCC system_header
5#endif
6
7#ifdef __cplusplus
8extern "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 0x1
18#define SEE_MASK_CLASSKEY 0x3
19#define SEE_MASK_IDLIST 0x4
20#define SEE_MASK_INVOKEIDLIST 0xc
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#if (_WIN32_IE >= 0x0600)
33#define SEE_MASK_NOZONECHECKS 0x800000
34#define SEE_MASK_FLAG_LOG_USAGE 0x4000000
35#endif
36#define ABM_NEW 0
37#define ABM_REMOVE 1
38#define ABM_QUERYPOS 2
39#define ABM_SETPOS 3
40#define ABM_GETSTATE 4
41#define ABM_GETTASKBARPOS 5
42#define ABM_ACTIVATE 6
43#define ABM_GETAUTOHIDEBAR 7
44#define ABM_SETAUTOHIDEBAR 8
45#define ABM_WINDOWPOSCHANGED 9
46#define ABN_STATECHANGE 0
47#define ABN_POSCHANGED 1
48#define ABN_FULLSCREENAPP 2
49#define ABN_WINDOWARRANGE 3
50#define NIM_ADD 0
51#define NIM_MODIFY 1
52#define NIM_DELETE 2
53#if (_WIN32_IE >= 0x0500)
54#define NOTIFYICON_VERSION 3
55#if (_WIN32_WINNT >= 0x600)
56#define NOTIFYICON_VERSION_4 4
57#endif
58#define NIM_SETFOCUS 3
59#define NIM_SETVERSION 4
60#define NIN_POPUPOPEN WM_USER+6
61#define NIN_POPUPCLOSE WM_USER+7
62#endif
63#define NIF_MESSAGE 0x00000001
64#define NIF_ICON 0x00000002
65#define NIF_TIP 0x00000004
66#define NIF_STATE 0x00000008
67#if (_WIN32_IE >= 0x0500)
68#define NIF_INFO 0x00000010
69#endif
70#if (_WIN32_IE >= 0x0600)
71#define NIF_GUID 0x00000020
72#endif
73#if (_WIN32_IE >= 0x0500)
74#define NIIF_NONE 0x00000000
75#define NIIF_INFO 0x00000001
76#define NIIF_WARNING 0x00000002
77#define NIIF_ERROR 0x00000003
78#endif
79#if (_WIN32_IE >= 0x0600)
80#define NIIF_ICON_MASK 0x0000000F
81#define NIIF_NOSOUND 0x00000010
82#endif
83#if (_WIN32_IE >= 0x0500)
84#define NIS_HIDDEN 0x00000001
85#define NIS_SHAREDICON 0x00000002
86#endif
87#define SE_ERR_FNF 2
88#define SE_ERR_PNF 3
89#define SE_ERR_ACCESSDENIED 5
90#define SE_ERR_OOM 8
91#define SE_ERR_DLLNOTFOUND 32
92#define SE_ERR_SHARE 26
93#define SE_ERR_ASSOCINCOMPLETE 27
94#define SE_ERR_DDETIMEOUT 28
95#define SE_ERR_DDEFAIL 29
96#define SE_ERR_DDEBUSY 30
97#define SE_ERR_NOASSOC 31
98#define FO_MOVE 1
99#define FO_COPY 2
100#define FO_DELETE 3
101#define FO_RENAME 4
102#define FOF_MULTIDESTFILES 1
103#define FOF_CONFIRMMOUSE 2
104#define FOF_SILENT 4
105#define FOF_RENAMEONCOLLISION 8
106#define FOF_NOCONFIRMATION 16
107#define FOF_WANTMAPPINGHANDLE 32
108#define FOF_ALLOWUNDO 64
109#define FOF_FILESONLY 128
110#define FOF_SIMPLEPROGRESS 256
111#define FOF_NOCONFIRMMKDIR 512
112#define FOF_NOERRORUI 1024
113#define FOF_NOCOPYSECURITYATTRIBS 2048
114#define PO_DELETE 19
115#define PO_RENAME 20
116#define PO_PORTCHANGE 32
117#define PO_REN_PORT 52
118#define SHGFI_ICON 256
119#define SHGFI_DISPLAYNAME 512
120#define SHGFI_TYPENAME 1024
121#define SHGFI_ATTRIBUTES 2048
122#define SHGFI_ICONLOCATION 4096
123#define SHGFI_EXETYPE 8192
124#define SHGFI_SYSICONINDEX 16384
125#define SHGFI_LINKOVERLAY 32768
126#define SHGFI_SELECTED 65536
127#define SHGFI_ATTR_SPECIFIED 131072
128#define SHGFI_LARGEICON 0
129#define SHGFI_SMALLICON 1
130#define SHGFI_OPENICON 2
131#define SHGFI_SHELLICONSIZE 4
132#define SHGFI_PIDL 8
133#define SHGFI_USEFILEATTRIBUTES 16
134#define SHERB_NOCONFIRMATION 1
135#define SHERB_NOPROGRESSUI 2
136#define SHERB_NOSOUND 4
137#ifdef UNICODE
138#define NOTIFYICONDATA_V2_SIZE 936
139#define NOTIFYICONDATA_V1_SIZE 152
140#else
141#define NOTIFYICONDATA_V2_SIZE 488
142#define NOTIFYICONDATA_V1_SIZE 88
143#endif
144
145typedef WORD FILEOP_FLAGS;
146typedef WORD PRINTEROP_FLAGS;
147#include <pshpack2.h>
148typedef struct _AppBarData {
149 DWORD cbSize;
150 HWND hWnd;
151 UINT uCallbackMessage;
152 UINT uEdge;
153 RECT rc;
154 LPARAM lParam;
155} APPBARDATA,*PAPPBARDATA;
156DECLARE_HANDLE(HDROP);
157
158typedef struct _NOTIFYICONDATAA {
159 DWORD cbSize;
160 HWND hWnd;
161 UINT uID;
162 UINT uFlags;
163 UINT uCallbackMessage;
164 HICON hIcon;
165#if _WIN32_IE >= 0x0500
166 CHAR szTip[128];
167 DWORD dwState;
168 DWORD dwStateMask;
169 CHAR szInfo[256];
170 _ANONYMOUS_UNION union {
171 UINT uTimeout;
172 UINT uVersion;
173 } DUMMYUNIONNAME;
174 CHAR szInfoTitle[64];
175 DWORD dwInfoFlags;
176#else
177 CHAR szTip[64];
178#endif
179#if _WIN32_IE >= 0x600
180 GUID guidItem;
181#endif
182#if _WIN32_WINNT >= 0x600
183 HICON hBalloonIcon;
184#endif
185} NOTIFYICONDATAA,*PNOTIFYICONDATAA;
186
187typedef struct _NOTIFYICONDATAW {
188 DWORD cbSize;
189 HWND hWnd;
190 UINT uID;
191 UINT uFlags;
192 UINT uCallbackMessage;
193 HICON hIcon;
194#if _WIN32_IE >= 0x0500
195 WCHAR szTip[128];
196 DWORD dwState;
197 DWORD dwStateMask;
198 WCHAR szInfo[256];
199 _ANONYMOUS_UNION union {
200 UINT uTimeout;
201 UINT uVersion;
202 } DUMMYUNIONNAME;
203 WCHAR szInfoTitle[64];
204 DWORD dwInfoFlags;
205#else
206 WCHAR szTip[64];
207#endif
208#if _WIN32_IE >= 0x600
209 GUID guidItem;
210#endif
211#if _WIN32_WINNT >= 0x600
212 HICON hBalloonIcon;
213#endif
214} NOTIFYICONDATAW,*PNOTIFYICONDATAW;
215
216typedef struct _SHELLEXECUTEINFOA {
217 DWORD cbSize;
218 ULONG fMask;
219 HWND hwnd;
220 LPCSTR lpVerb;
221 LPCSTR lpFile;
222 LPCSTR lpParameters;
223 LPCSTR lpDirectory;
224 int nShow;
225 HINSTANCE hInstApp;
226 PVOID lpIDList;
227 LPCSTR lpClass;
228 HKEY hkeyClass;
229 DWORD dwHotKey;
230 HANDLE hIcon;
231 HANDLE hProcess;
232} SHELLEXECUTEINFOA,*LPSHELLEXECUTEINFOA;
233typedef struct _SHELLEXECUTEINFOW {
234 DWORD cbSize;
235 ULONG fMask;
236 HWND hwnd;
237 LPCWSTR lpVerb;
238 LPCWSTR lpFile;
239 LPCWSTR lpParameters;
240 LPCWSTR lpDirectory;
241 int nShow;
242 HINSTANCE hInstApp;
243 PVOID lpIDList;
244 LPCWSTR lpClass;
245 HKEY hkeyClass;
246 DWORD dwHotKey;
247 HANDLE hIcon;
248 HANDLE hProcess;
249} SHELLEXECUTEINFOW,*LPSHELLEXECUTEINFOW;
250typedef struct _SHFILEOPSTRUCTA {
251 HWND hwnd;
252 UINT wFunc;
253 LPCSTR pFrom;
254 LPCSTR pTo;
255 FILEOP_FLAGS fFlags;
256 BOOL fAnyOperationsAborted;
257 PVOID hNameMappings;
258 LPCSTR lpszProgressTitle;
259} SHFILEOPSTRUCTA,*LPSHFILEOPSTRUCTA;
260typedef struct _SHFILEOPSTRUCTW {
261 HWND hwnd;
262 UINT wFunc;
263 LPCWSTR pFrom;
264 LPCWSTR pTo;
265 FILEOP_FLAGS fFlags;
266 BOOL fAnyOperationsAborted;
267 PVOID hNameMappings;
268 LPCWSTR lpszProgressTitle;
269} SHFILEOPSTRUCTW,*LPSHFILEOPSTRUCTW;
270typedef struct _SHFILEINFOA {
271 HICON hIcon;
272 int iIcon;
273 DWORD dwAttributes;
274 CHAR szDisplayName[MAX_PATH];
275 CHAR szTypeName[80];
276} SHFILEINFOA;
277typedef struct _SHFILEINFOW {
278 HICON hIcon;
279 int iIcon;
280 DWORD dwAttributes;
281 WCHAR szDisplayName[MAX_PATH];
282 WCHAR szTypeName[80];
283} SHFILEINFOW;
284typedef struct _SHQUERYRBINFO {
285 DWORD cbSize;
286 __int64 i64Size;
287 __int64 i64NumItems;
288} SHQUERYRBINFO, *LPSHQUERYRBINFO;
289#include <poppack.h>
290
291LPWSTR * WINAPI CommandLineToArgvW(LPCWSTR,int*);
292void WINAPI DragAcceptFiles(HWND,BOOL);
293void WINAPI DragFinish(HDROP);
294UINT WINAPI DragQueryFileA(HDROP,UINT,LPSTR,UINT);
295UINT WINAPI DragQueryFileW(HDROP,UINT,LPWSTR,UINT);
296BOOL WINAPI DragQueryPoint(HDROP,LPPOINT);
297HICON WINAPI DuplicateIcon(HINSTANCE,HICON);
298HICON WINAPI ExtractAssociatedIconA(HINSTANCE,LPCSTR,PWORD);
299HICON WINAPI ExtractAssociatedIconW(HINSTANCE,LPCWSTR,PWORD);
300HICON WINAPI ExtractIconA(HINSTANCE,LPCSTR,UINT);
301HICON WINAPI ExtractIconW(HINSTANCE,LPCWSTR,UINT);
302UINT WINAPI ExtractIconExA(LPCSTR,int,HICON*,HICON*,UINT);
303UINT WINAPI ExtractIconExW(LPCWSTR,int,HICON*,HICON*,UINT);
304HINSTANCE WINAPI FindExecutableA(LPCSTR,LPCSTR,LPSTR);
305HINSTANCE WINAPI FindExecutableW(LPCWSTR,LPCWSTR,LPWSTR);
306UINT WINAPI SHAppBarMessage(DWORD,PAPPBARDATA);
307BOOL WINAPI Shell_NotifyIconA(DWORD,PNOTIFYICONDATAA);
308BOOL WINAPI Shell_NotifyIconW(DWORD,PNOTIFYICONDATAW);
309int WINAPI ShellAboutA(HWND,LPCSTR,LPCSTR,HICON);
310int WINAPI ShellAboutW(HWND,LPCWSTR,LPCWSTR,HICON);
311HINSTANCE WINAPI ShellExecuteA(HWND,LPCSTR,LPCSTR,LPCSTR,LPCSTR,INT);
312HINSTANCE WINAPI ShellExecuteW(HWND,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR,INT);
313BOOL WINAPI ShellExecuteExA(LPSHELLEXECUTEINFOA);
314BOOL WINAPI ShellExecuteExW(LPSHELLEXECUTEINFOW);
315int WINAPI SHFileOperationA(LPSHFILEOPSTRUCTA);
316int WINAPI SHFileOperationW(LPSHFILEOPSTRUCTW);
317void WINAPI SHFreeNameMappings(HANDLE);
318DWORD WINAPI SHGetFileInfoA(LPCSTR,DWORD,SHFILEINFOA*,UINT,UINT);
319DWORD WINAPI SHGetFileInfoW(LPCWSTR,DWORD,SHFILEINFOW*,UINT,UINT);
320HRESULT WINAPI SHQueryRecycleBinA(LPCSTR, LPSHQUERYRBINFO);
321HRESULT WINAPI SHQueryRecycleBinW(LPCWSTR, LPSHQUERYRBINFO);
322HRESULT WINAPI SHEmptyRecycleBinA(HWND,LPCSTR,DWORD);
323HRESULT WINAPI SHEmptyRecycleBinW(HWND,LPCWSTR,DWORD);
324
325#if (_WIN32_WINNT >= 0x600)
326#define SHIL_LARGE 0x0
327#define SHIL_SMALL 0x1
328#define SHIL_EXTRALARGE 0x2
329#define SHIL_SYSSMALL 0x3
330#define SHIL_JUMBO 0x4
331#define SHIL_LAST SHIL_JUMBO
332HRESULT WINAPI SHGetImageList(int,REFIID,void**);
333#endif
334
335#ifdef UNICODE
336typedef NOTIFYICONDATAW NOTIFYICONDATA,*PNOTIFYICONDATA;
337typedef SHELLEXECUTEINFOW SHELLEXECUTEINFO,*LPSHELLEXECUTEINFO;
338typedef SHFILEOPSTRUCTW SHFILEOPSTRUCT,*LPSHFILEOPSTRUCT;
339typedef SHFILEINFOW SHFILEINFO;
340#define DragQueryFile DragQueryFileW
341#define ExtractAssociatedIcon ExtractAssociatedIconW
342#define ExtractIcon ExtractIconW
343#define ExtractIconEx ExtractIconExW
344#define FindExecutable FindExecutableW
345#define Shell_NotifyIcon Shell_NotifyIconW
346#define ShellAbout ShellAboutW
347#define ShellExecute ShellExecuteW
348#define ShellExecuteEx ShellExecuteExW
349#define SHFileOperation SHFileOperationW
350#define SHGetFileInfo SHGetFileInfoW
351#define SHQueryRecycleBin SHQueryRecycleBinW
352#define SHEmptyRecycleBin SHEmptyRecycleBinW
353
354#else
355typedef NOTIFYICONDATAA NOTIFYICONDATA,*PNOTIFYICONDATA;
356typedef SHELLEXECUTEINFOA SHELLEXECUTEINFO,*LPSHELLEXECUTEINFO;
357typedef SHFILEOPSTRUCTA SHFILEOPSTRUCT,*LPSHFILEOPSTRUCT;
358typedef SHFILEINFOA SHFILEINFO;
359#define DragQueryFile DragQueryFileA
360#define ExtractAssociatedIcon ExtractAssociatedIconA
361#define ExtractIcon ExtractIconA
362#define ExtractIconEx ExtractIconExA
363#define FindExecutable FindExecutableA
364#define Shell_NotifyIcon Shell_NotifyIconA
365#define ShellAbout ShellAboutA
366#define ShellExecute ShellExecuteA
367#define ShellExecuteEx ShellExecuteExA
368#define SHFileOperation SHFileOperationA
369#define SHGetFileInfo SHGetFileInfoA
370#define SHQueryRecycleBin SHQueryRecycleBinA
371#define SHEmptyRecycleBin SHEmptyRecycleBinA
372#endif
373#ifdef __cplusplus
374}
375#endif
376#endif
Note: See TracBrowser for help on using the repository browser.