comparison win32/shellapi.d @ 1:4a9dcbd9e54f

-files of 0.13 beta -fixes so that it now compiles with the current dmd version
author marton@basel.hu
date Tue, 05 Apr 2011 20:44:01 +0200
parents
children
comparison
equal deleted inserted replaced
0:586e4a649642 1:4a9dcbd9e54f
1 /***********************************************************************\
2 * shellapi.d *
3 * *
4 * Windows API header module *
5 * *
6 * Translated from MinGW Windows headers *
7 * by Stewart Gordon *
8 * *
9 * Placed into public domain *
10 \***********************************************************************/
11 module win32.shellapi;
12 pragma(lib, "shell32.lib");
13
14 private import win32.w32api, win32.windef, win32.basetyps;
15
16 enum : UINT {
17 ABE_LEFT,
18 ABE_TOP,
19 ABE_RIGHT,
20 ABE_BOTTOM // = 3
21 }
22
23 enum : UINT {
24 ABS_AUTOHIDE = 1,
25 ABS_ALWAYSONTOP
26 }
27
28 const ULONG
29 SEE_MASK_CLASSNAME = 1,
30 SEE_MASK_CLASSKEY = 3,
31 SEE_MASK_IDLIST = 4,
32 SEE_MASK_INVOKEIDLIST = 12,
33 SEE_MASK_ICON = 0x000010,
34 SEE_MASK_HOTKEY = 0x000020,
35 SEE_MASK_NOCLOSEPROCESS = 0x000040,
36 SEE_MASK_CONNECTNETDRV = 0x000080,
37 SEE_MASK_FLAG_DDEWAIT = 0x000100,
38 SEE_MASK_DOENVSUBST = 0x000200,
39 SEE_MASK_FLAG_NO_UI = 0x000400,
40 SEE_MASK_NO_CONSOLE = 0x008000,
41 SEE_MASK_UNICODE = 0x010000,
42 SEE_MASK_ASYNCOK = 0x100000,
43 SEE_MASK_HMONITOR = 0x200000;
44
45 enum : DWORD {
46 ABM_NEW,
47 ABM_REMOVE,
48 ABM_QUERYPOS,
49 ABM_SETPOS,
50 ABM_GETSTATE,
51 ABM_GETTASKBARPOS,
52 ABM_ACTIVATE,
53 ABM_GETAUTOHIDEBAR,
54 ABM_SETAUTOHIDEBAR,
55 ABM_WINDOWPOSCHANGED // = 9
56 }
57
58 static if (WINVER >= 0x501) {
59 const DWORD ABM_SETSTATE = 10;
60 }
61
62 enum : UINT {
63 ABN_STATECHANGE,
64 ABN_POSCHANGED,
65 ABN_FULLSCREENAPP,
66 ABN_WINDOWARRANGE
67 }
68
69 enum : DWORD {
70 NIM_ADD,
71 NIM_MODIFY,
72 NIM_DELETE
73 }
74
75 static if (_WIN32_IE >= 0x500) {
76 const NOTIFYICON_VERSION = 3;
77
78 enum : DWORD {
79 NIM_SETFOCUS = 3,
80 NIM_SETVERSION
81 }
82 }
83
84 const UINT
85 NIF_MESSAGE = 1,
86 NIF_ICON = 2,
87 NIF_TIP = 4,
88 NIF_STATE = 8;
89
90 static if (_WIN32_IE >= 0x500) {
91 const UINT NIF_INFO = 0x00000010;
92 }
93
94 static if (_WIN32_IE >= 0x600) {
95 const UINT NIF_GUID = 0x00000020;
96 }
97
98 static if (_WIN32_IE >= 0x500) {
99 enum : DWORD {
100 NIIF_NONE,
101 NIIF_INFO,
102 NIIF_WARNING,
103 NIIF_ERROR
104 }
105 }
106
107 static if (_WIN32_IE >= 0x600) {
108 enum : DWORD {
109 NIIF_ICON_MASK = 15,
110 NIIF_NOSOUND
111 }
112 }
113
114 const DWORD
115 NIS_HIDDEN = 1,
116 NIS_SHAREDICON = 2;
117
118 const HINSTANCE
119 SE_ERR_FNF = cast(HANDLE) 2,
120 SE_ERR_PNF = cast(HANDLE) 3,
121 SE_ERR_ACCESSDENIED = cast(HANDLE) 5,
122 SE_ERR_OOM = cast(HANDLE) 8,
123 SE_ERR_DLLNOTFOUND = cast(HANDLE) 32,
124 SE_ERR_SHARE = cast(HANDLE) 26,
125 SE_ERR_ASSOCINCOMPLETE = cast(HANDLE) 27,
126 SE_ERR_DDETIMEOUT = cast(HANDLE) 28,
127 SE_ERR_DDEFAIL = cast(HANDLE) 29,
128 SE_ERR_DDEBUSY = cast(HANDLE) 30,
129 SE_ERR_NOASSOC = cast(HANDLE) 31;
130
131 enum : UINT {
132 FO_MOVE = 1,
133 FO_COPY,
134 FO_DELETE,
135 FO_RENAME
136 }
137
138 const FILEOP_FLAGS
139 FOF_MULTIDESTFILES = 0x0001,
140 FOF_CONFIRMMOUSE = 0x0002,
141 FOF_SILENT = 0x0004,
142 FOF_RENAMEONCOLLISION = 0x0008,
143 FOF_NOCONFIRMATION = 0x0010,
144 FOF_WANTMAPPINGHANDLE = 0x0020,
145 FOF_ALLOWUNDO = 0x0040,
146 FOF_FILESONLY = 0x0080,
147 FOF_SIMPLEPROGRESS = 0x0100,
148 FOF_NOCONFIRMMKDIR = 0x0200,
149 FOF_NOERRORUI = 0x0400,
150 FOF_NOCOPYSECURITYATTRIBS = 0x0800;
151
152 // these are not documented on the MSDN site
153 enum {
154 PO_DELETE = 19,
155 PO_RENAME = 20,
156 PO_PORTCHANGE = 32,
157 PO_REN_PORT = 52
158 }
159
160 const UINT
161 SHGFI_LARGEICON = 0x000000,
162 SHGFI_SMALLICON = 0x000001,
163 SHGFI_OPENICON = 0x000002,
164 SHGFI_SHELLICONSIZE = 0x000004,
165 SHGFI_PIDL = 0x000008,
166 SHGFI_USEFILEATTRIBUTES = 0x000010,
167 SHGFI_ICON = 0x000100,
168 SHGFI_DISPLAYNAME = 0x000200,
169 SHGFI_TYPENAME = 0x000400,
170 SHGFI_ATTRIBUTES = 0x000800,
171 SHGFI_ICONLOCATION = 0x001000,
172 SHGFI_EXETYPE = 0x002000,
173 SHGFI_SYSICONINDEX = 0x004000,
174 SHGFI_LINKOVERLAY = 0x008000,
175 SHGFI_SELECTED = 0x010000,
176 SHGFI_ATTR_SPECIFIED = 0x020000;
177
178 const SHERB_NOCONFIRMATION = 1;
179 const SHERB_NOPROGRESSUI = 2;
180 const SHERB_NOSOUND = 4;
181
182 alias WORD FILEOP_FLAGS, PRINTEROP_FLAGS;
183 alias HANDLE HDROP;
184
185 align(2):
186
187 struct APPBARDATA {
188 DWORD cbSize = APPBARDATA.sizeof;
189 HWND hWnd;
190 UINT uCallbackMessage;
191 UINT uEdge;
192 RECT rc;
193 LPARAM lParam;
194 }
195 alias APPBARDATA* PAPPBARDATA;
196
197 struct NOTIFYICONDATAA {
198 DWORD cbSize = NOTIFYICONDATAA.sizeof;
199 HWND hWnd;
200 UINT uID;
201 UINT uFlags;
202 UINT uCallbackMessage;
203 HICON hIcon;
204 static if (_WIN32_IE >= 0x500) {
205 CHAR[128] szTip;
206 DWORD dwState;
207 DWORD dwStateMask;
208 CHAR[256] szInfo;
209 union {
210 UINT uTimeout;
211 UINT uVersion;
212 }
213 CHAR[64] szInfoTitle;
214 DWORD dwInfoFlags;
215 } else {
216 CHAR[64] szTip;
217 }
218 static if (_WIN32_IE >= 0x600) {
219 GUID guidItem;
220 }
221 }
222 alias NOTIFYICONDATAA* PNOTIFYICONDATAA;
223
224 struct NOTIFYICONDATAW {
225 DWORD cbSize = NOTIFYICONDATAW.sizeof;
226 HWND hWnd;
227 UINT uID;
228 UINT uFlags;
229 UINT uCallbackMessage;
230 HICON hIcon;
231 static if (_WIN32_IE >= 0x500) {
232 WCHAR[128] szTip;
233 DWORD dwState;
234 DWORD dwStateMask;
235 WCHAR[256] szInfo;
236 union {
237 UINT uTimeout;
238 UINT uVersion;
239 }
240 WCHAR[64] szInfoTitle;
241 DWORD dwInfoFlags;
242 } else {
243 WCHAR[64] szTip;
244 }
245 static if (_WIN32_IE >= 0x600) {
246 GUID guidItem;
247 }
248 }
249 alias NOTIFYICONDATAW* PNOTIFYICONDATAW;
250
251 struct SHELLEXECUTEINFOA {
252 DWORD cbSize = SHELLEXECUTEINFOA.sizeof;
253 ULONG fMask;
254 HWND hwnd;
255 LPCSTR lpVerb;
256 LPCSTR lpFile;
257 LPCSTR lpParameters;
258 LPCSTR lpDirectory;
259 int nShow;
260 HINSTANCE hInstApp;
261 PVOID lpIDList;
262 LPCSTR lpClass;
263 HKEY hkeyClass;
264 DWORD dwHotKey;
265 HANDLE hIcon;
266 HANDLE hProcess;
267 }
268 alias SHELLEXECUTEINFOA* LPSHELLEXECUTEINFOA;
269
270 struct SHELLEXECUTEINFOW {
271 DWORD cbSize = SHELLEXECUTEINFOW.sizeof;
272 ULONG fMask;
273 HWND hwnd;
274 LPCWSTR lpVerb;
275 LPCWSTR lpFile;
276 LPCWSTR lpParameters;
277 LPCWSTR lpDirectory;
278 int nShow;
279 HINSTANCE hInstApp;
280 PVOID lpIDList;
281 LPCWSTR lpClass;
282 HKEY hkeyClass;
283 DWORD dwHotKey;
284 HANDLE hIcon;
285 HANDLE hProcess;
286 }
287 alias SHELLEXECUTEINFOW* LPSHELLEXECUTEINFOW;
288
289 struct SHFILEOPSTRUCTA {
290 HWND hwnd;
291 UINT wFunc;
292 LPCSTR pFrom;
293 LPCSTR pTo;
294 FILEOP_FLAGS fFlags;
295 BOOL fAnyOperationsAborted;
296 PVOID hNameMappings;
297 LPCSTR lpszProgressTitle;
298 }
299 alias SHFILEOPSTRUCTA* LPSHFILEOPSTRUCTA;
300
301 struct SHFILEOPSTRUCTW {
302 HWND hwnd;
303 UINT wFunc;
304 LPCWSTR pFrom;
305 LPCWSTR pTo;
306 FILEOP_FLAGS fFlags;
307 BOOL fAnyOperationsAborted;
308 PVOID hNameMappings;
309 LPCWSTR lpszProgressTitle;
310 }
311 alias SHFILEOPSTRUCTW* LPSHFILEOPSTRUCTW;
312
313 struct SHFILEINFOA {
314 HICON hIcon;
315 int iIcon;
316 DWORD dwAttributes;
317 CHAR[MAX_PATH] szDisplayName;
318 CHAR[80] szTypeName;
319 }
320
321 struct SHFILEINFOW {
322 HICON hIcon;
323 int iIcon;
324 DWORD dwAttributes;
325 WCHAR[MAX_PATH] szDisplayName;
326 WCHAR[80] szTypeName;
327 }
328
329 struct SHQUERYRBINFO {
330 DWORD cbSize = SHQUERYRBINFO.sizeof;
331 long i64Size;
332 long i64NumItems;
333 }
334 alias SHQUERYRBINFO* LPSHQUERYRBINFO;
335
336 extern (Windows) {
337 LPWSTR* CommandLineToArgvW(LPCWSTR, int*);
338 void DragAcceptFiles(HWND, BOOL);
339 void DragFinish(HDROP);
340 UINT DragQueryFileA(HDROP, UINT, LPSTR, UINT);
341 UINT DragQueryFileW(HDROP, UINT, LPWSTR, UINT);
342 BOOL DragQueryPoint(HDROP, LPPOINT);
343 HICON DuplicateIcon(HINSTANCE, HICON);
344 HICON ExtractAssociatedIconA(HINSTANCE, LPCSTR, PWORD);
345 HICON ExtractAssociatedIconW(HINSTANCE, LPCWSTR, PWORD);
346 HICON ExtractIconA(HINSTANCE, LPCSTR, UINT);
347 HICON ExtractIconW(HINSTANCE, LPCWSTR, UINT);
348 UINT ExtractIconExA(LPCSTR, int, HICON*, HICON*, UINT);
349 UINT ExtractIconExW(LPCWSTR, int, HICON*, HICON*, UINT);
350 HINSTANCE FindExecutableA(LPCSTR, LPCSTR, LPSTR);
351 HINSTANCE FindExecutableW(LPCWSTR, LPCWSTR, LPWSTR);
352 UINT SHAppBarMessage(DWORD, PAPPBARDATA);
353 BOOL Shell_NotifyIconA(DWORD, PNOTIFYICONDATAA);
354 BOOL Shell_NotifyIconW(DWORD, PNOTIFYICONDATAW);
355 int ShellAboutA(HWND, LPCSTR, LPCSTR, HICON);
356 int ShellAboutW(HWND, LPCWSTR, LPCWSTR, HICON);
357 HINSTANCE ShellExecuteA(HWND, LPCSTR, LPCSTR, LPCSTR, LPCSTR, INT);
358 HINSTANCE ShellExecuteW(HWND, LPCWSTR, LPCWSTR, LPCWSTR, LPCWSTR, INT);
359 BOOL ShellExecuteExA(LPSHELLEXECUTEINFOA);
360 BOOL ShellExecuteExW(LPSHELLEXECUTEINFOW);
361 int SHFileOperationA(LPSHFILEOPSTRUCTA);
362 int SHFileOperationW(LPSHFILEOPSTRUCTW);
363 void SHFreeNameMappings(HANDLE);
364 DWORD SHGetFileInfoA(LPCSTR, DWORD, SHFILEINFOA*, UINT, UINT);
365 DWORD SHGetFileInfoW(LPCWSTR, DWORD, SHFILEINFOW*, UINT, UINT);
366 HRESULT SHQueryRecycleBinA(LPCSTR, LPSHQUERYRBINFO);
367 HRESULT SHQueryRecycleBinW(LPCWSTR, LPSHQUERYRBINFO);
368 HRESULT SHEmptyRecycleBinA(HWND, LPCSTR, DWORD);
369 HRESULT SHEmptyRecycleBinW(HWND, LPCWSTR, DWORD);
370 }
371
372 version (Unicode) {
373 alias NOTIFYICONDATAW NOTIFYICONDATA;
374 alias SHELLEXECUTEINFOW SHELLEXECUTEINFO;
375 alias SHFILEOPSTRUCTW SHFILEOPSTRUCT;
376 alias SHFILEINFOW SHFILEINFO;
377 alias DragQueryFileW DragQueryFile;
378 alias ExtractAssociatedIconW ExtractAssociatedIcon;
379 alias ExtractIconW ExtractIcon;
380 alias ExtractIconExW ExtractIconEx;
381 alias FindExecutableW FindExecutable;
382 alias Shell_NotifyIconW Shell_NotifyIcon;
383 alias ShellAboutW ShellAbout;
384 alias ShellExecuteW ShellExecute;
385 alias ShellExecuteExW ShellExecuteEx;
386 alias SHFileOperationW SHFileOperation;
387 alias SHGetFileInfoW SHGetFileInfo;
388 alias SHQueryRecycleBinW SHQueryRecycleBin;
389 alias SHEmptyRecycleBinW SHEmptyRecycleBin;
390 } else {
391 alias NOTIFYICONDATAA NOTIFYICONDATA;
392 alias SHELLEXECUTEINFOA SHELLEXECUTEINFO;
393 alias SHFILEOPSTRUCTA SHFILEOPSTRUCT;
394 alias SHFILEINFOA SHFILEINFO;
395 alias DragQueryFileA DragQueryFile;
396 alias ExtractAssociatedIconA ExtractAssociatedIcon;
397 alias ExtractIconA ExtractIcon;
398 alias ExtractIconExA ExtractIconEx;
399 alias FindExecutableA FindExecutable;
400 alias Shell_NotifyIconA Shell_NotifyIcon;
401 alias ShellAboutA ShellAbout;
402 alias ShellExecuteA ShellExecute;
403 alias ShellExecuteExA ShellExecuteEx;
404 alias SHFileOperationA SHFileOperation;
405 alias SHGetFileInfoA SHGetFileInfo;
406 alias SHQueryRecycleBinA SHQueryRecycleBin;
407 alias SHEmptyRecycleBinA SHEmptyRecycleBin;
408 }
409
410 alias NOTIFYICONDATA* PNOTIFYICONDATA;
411 alias SHELLEXECUTEINFO* LPSHELLEXECUTEINFO;
412 alias SHFILEOPSTRUCT* LPSHFILEOPSTRUCT;