include: Add some new ProcThreadAttribute definitions.
[wine.git] / include / shellapi.h
blobff36803fa19abf56e72e03cbc8226dd0cdaafa96
1 /*
2 * Copyright (C) the Wine project
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 #ifndef __WINE_SHELLAPI_H
20 #define __WINE_SHELLAPI_H
22 #ifdef __cplusplus
23 extern "C" {
24 #endif /* defined(__cplusplus) */
26 #ifndef WINSHELLAPI
27 #ifdef _SHELL32_
28 # define WINSHELLAPI
29 #else
30 # define WINSHELLAPI DECLSPEC_IMPORT
31 #endif
32 #endif
34 #ifndef _WIN64
35 #include <pshpack1.h>
36 #endif
38 DECLARE_HANDLE(HDROP);
40 /******************************************
41 * DragObject
44 typedef struct _DRAGINFOA
45 { UINT uSize;
46 POINT pt;
47 BOOL fNC;
48 LPSTR lpFileList;
49 DWORD grfKeyState;
50 } DRAGINFOA, *LPDRAGINFOA;
52 typedef struct _DRAGINFOW
53 { UINT uSize;
54 POINT pt;
55 BOOL fNC;
56 LPWSTR lpFileList;
57 DWORD grfKeyState;
58 } DRAGINFOW, *LPDRAGINFOW;
60 DECL_WINELIB_TYPE_AW(DRAGINFO)
61 DECL_WINELIB_TYPE_AW(LPDRAGINFO)
63 WINSHELLAPI void WINAPI DragAcceptFiles(HWND hWnd, BOOL b);
64 WINSHELLAPI UINT WINAPI DragQueryFileA(HDROP hDrop, UINT lFile, LPSTR lpszFile, UINT lLength);
65 WINSHELLAPI UINT WINAPI DragQueryFileW(HDROP hDrop, UINT lFile, LPWSTR lpszFile, UINT lLength);
66 #define DragQueryFile WINELIB_NAME_AW(DragQueryFile)
67 WINSHELLAPI void WINAPI DragFinish(HDROP h);
68 WINSHELLAPI BOOL WINAPI DragQueryPoint(HDROP hDrop, POINT *p);
72 /******************************************
73 * Application Bar
75 #define ABM_NEW 0x00000000
76 #define ABM_REMOVE 0x00000001
77 #define ABM_QUERYPOS 0x00000002
78 #define ABM_SETPOS 0x00000003
79 #define ABM_GETSTATE 0x00000004
80 #define ABM_GETTASKBARPOS 0x00000005
81 #define ABM_ACTIVATE 0x00000006
82 #define ABM_GETAUTOHIDEBAR 0x00000007
83 #define ABM_SETAUTOHIDEBAR 0x00000008
84 #define ABM_WINDOWPOSCHANGED 0x00000009
86 #define ABN_STATECHANGE 0x00000000
87 #define ABN_POSCHANGED 0x00000001
88 #define ABN_FULLSCREENAPP 0x00000002
89 #define ABN_WINDOWARRANGE 0x00000003
91 #define ABS_AUTOHIDE 0x00000001
92 #define ABS_ALWAYSONTOP 0x00000002
94 #define ABE_LEFT 0
95 #define ABE_TOP 1
96 #define ABE_RIGHT 2
97 #define ABE_BOTTOM 3
99 typedef struct _AppBarData
100 { DWORD cbSize;
101 HWND hWnd;
102 UINT uCallbackMessage;
103 UINT uEdge;
104 RECT rc;
105 LPARAM lParam;
106 } APPBARDATA, *PAPPBARDATA;
108 WINSHELLAPI UINT_PTR WINAPI SHAppBarMessage(DWORD,PAPPBARDATA);
110 /******************************************
111 * SHGetFileInfo
114 #define SHGFI_LARGEICON 0x000000000 /* get large icon */
115 #define SHGFI_SMALLICON 0x000000001 /* get small icon */
116 #define SHGFI_OPENICON 0x000000002 /* get open icon */
117 #define SHGFI_SHELLICONSIZE 0x000000004 /* get shell size icon */
118 #define SHGFI_PIDL 0x000000008 /* pszPath is a pidl */
119 #define SHGFI_USEFILEATTRIBUTES 0x000000010 /* use passed dwFileAttribute */
120 #define SHGFI_ADDOVERLAYS 0x000000020
121 #define SHGFI_OVERLAYINDEX 0x000000040
122 #define SHGFI_ICON 0x000000100 /* get icon */
123 #define SHGFI_DISPLAYNAME 0x000000200 /* get display name */
124 #define SHGFI_TYPENAME 0x000000400 /* get type name */
125 #define SHGFI_ATTRIBUTES 0x000000800 /* get attributes */
126 #define SHGFI_ICONLOCATION 0x000001000 /* get icon location */
127 #define SHGFI_EXETYPE 0x000002000 /* return exe type */
128 #define SHGFI_SYSICONINDEX 0x000004000 /* get system icon index */
129 #define SHGFI_LINKOVERLAY 0x000008000 /* put a link overlay on icon */
130 #define SHGFI_SELECTED 0x000010000 /* show icon in selected state */
131 #define SHGFI_ATTR_SPECIFIED 0x000020000 /* get only specified attributes */
133 typedef struct tagSHFILEINFOA
134 { HICON hIcon; /* icon */
135 int iIcon; /* icon index */
136 DWORD dwAttributes; /* SFGAO_ flags */
137 CHAR szDisplayName[MAX_PATH];/* display name (or path) */
138 CHAR szTypeName[80]; /* type name */
139 } SHFILEINFOA;
141 typedef struct tagSHFILEINFOW
142 { HICON hIcon; /* icon */
143 int iIcon; /* icon index */
144 DWORD dwAttributes; /* SFGAO_ flags */
145 WCHAR szDisplayName[MAX_PATH];/* display name (or path) */
146 WCHAR szTypeName[80]; /* type name */
147 } SHFILEINFOW;
149 DECL_WINELIB_TYPE_AW(SHFILEINFO)
151 WINSHELLAPI DWORD_PTR WINAPI SHGetFileInfoA(LPCSTR,DWORD,SHFILEINFOA*,UINT,UINT);
152 WINSHELLAPI DWORD_PTR WINAPI SHGetFileInfoW(LPCWSTR,DWORD,SHFILEINFOW*,UINT,UINT);
153 #define SHGetFileInfo WINELIB_NAME_AW(SHGetFileInfo)
155 /******************************************
156 * SHGetImageList
159 WINSHELLAPI HRESULT WINAPI SHGetImageList(INT, REFIID, void **);
161 #define SHIL_LARGE 0x0
162 #define SHIL_SMALL 0x1
163 #define SHIL_EXTRALARGE 0x2
164 #define SHIL_SYSSMALL 0x3
165 #define SHIL_JUMBO 0x4
166 #define SHIL_LAST SHIL_JUMBO
168 /******************************************
169 * SHSetFileInfo
172 /******************************************
173 * SHFileOperation
175 #define FO_MOVE 0x0001
176 #define FO_COPY 0x0002
177 #define FO_DELETE 0x0003
178 #define FO_RENAME 0x0004
180 #define FOF_MULTIDESTFILES 0x0001
181 #define FOF_CONFIRMMOUSE 0x0002
182 #define FOF_SILENT 0x0004
183 #define FOF_RENAMEONCOLLISION 0x0008
184 #define FOF_NOCONFIRMATION 0x0010
185 #define FOF_WANTMAPPINGHANDLE 0x0020
186 #define FOF_ALLOWUNDO 0x0040
187 #define FOF_FILESONLY 0x0080
188 #define FOF_SIMPLEPROGRESS 0x0100
189 #define FOF_NOCONFIRMMKDIR 0x0200
190 #define FOF_NOERRORUI 0x0400
191 #define FOF_NOCOPYSECURITYATTRIBS 0x0800
192 #define FOF_NORECURSION 0x1000 /* don't do recursion into directories */
193 #define FOF_NO_CONNECTED_ELEMENTS 0x2000 /* don't do connected files */
194 #define FOF_WANTNUKEWARNING 0x4000 /* during delete operation, warn if delete instead
195 of recycling (even if FOF_NOCONFIRMATION) */
196 #define FOF_NORECURSEREPARSE 0x8000 /* don't do recursion into reparse points */
197 #define FOF_NO_UI (FOF_SILENT | FOF_NOCONFIRMATION | FOF_NOERRORUI | FOF_NOCONFIRMMKDIR)
199 typedef WORD FILEOP_FLAGS;
201 #define PO_DELETE 0x0013
202 #define PO_RENAME 0x0014
203 #define PO_PORTCHANGE 0x0020
204 #define PO_REN_PORT (PO_RENAME | PO_PORTCHANGE)
206 typedef WORD PRINTEROP_FLAGS;
208 typedef struct _SHFILEOPSTRUCTA
209 { HWND hwnd;
210 UINT wFunc;
211 LPCSTR pFrom;
212 LPCSTR pTo;
213 FILEOP_FLAGS fFlags;
214 BOOL fAnyOperationsAborted;
215 LPVOID hNameMappings;
216 LPCSTR lpszProgressTitle;
217 } SHFILEOPSTRUCTA, *LPSHFILEOPSTRUCTA;
219 typedef struct _SHFILEOPSTRUCTW
220 { HWND hwnd;
221 UINT wFunc;
222 LPCWSTR pFrom;
223 LPCWSTR pTo;
224 FILEOP_FLAGS fFlags;
225 BOOL fAnyOperationsAborted;
226 LPVOID hNameMappings;
227 LPCWSTR lpszProgressTitle;
228 } SHFILEOPSTRUCTW, *LPSHFILEOPSTRUCTW;
230 #define SHFILEOPSTRUCT WINELIB_NAME_AW(SHFILEOPSTRUCT)
231 #define LPSHFILEOPSTRUCT WINELIB_NAME_AW(LPSHFILEOPSTRUCT)
233 WINSHELLAPI int WINAPI SHFileOperationA (LPSHFILEOPSTRUCTA lpFileOp);
234 WINSHELLAPI int WINAPI SHFileOperationW (LPSHFILEOPSTRUCTW lpFileOp);
235 #define SHFileOperation WINELIB_NAME_AW(SHFileOperation)
237 typedef struct _SHNAMEMAPPINGA
239 LPSTR pszOldPath;
240 LPSTR pszNewPath;
241 int cchOldPath;
242 int cchNewPath;
243 } SHNAMEMAPPINGA, *LPSHNAMEMAPPINGA;
245 typedef struct _SHNAMEMAPPINGW
247 LPWSTR pszOldPath;
248 LPWSTR pszNewPath;
249 int cchOldPath;
250 int cchNewPath;
251 } SHNAMEMAPPINGW, *LPSHNAMEMAPPINGW;
253 DECL_WINELIB_TYPE_AW(SHNAMEMAPPING)
254 DECL_WINELIB_TYPE_AW(LPSHNAMEMAPPING)
256 WINSHELLAPI void WINAPI SHFreeNameMappings(HANDLE hNameMappings);
258 /******************************************
259 * ShellExecute
262 WINSHELLAPI HINSTANCE WINAPI ShellExecuteA(HWND,LPCSTR,LPCSTR,LPCSTR,LPCSTR,INT);
263 WINSHELLAPI HINSTANCE WINAPI ShellExecuteW(HWND,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR,INT);
264 #define ShellExecute WINELIB_NAME_AW(ShellExecute)
266 #define SE_ERR_FNF 2 /* file not found */
267 #define SE_ERR_PNF 3 /* path not found */
268 #define SE_ERR_ACCESSDENIED 5 /* access denied */
269 #define SE_ERR_OOM 8 /* out of memory */
270 #define SE_ERR_DLLNOTFOUND 32
271 #define SE_ERR_SHARE 26
272 #define SE_ERR_ASSOCINCOMPLETE 27
273 #define SE_ERR_DDETIMEOUT 28
274 #define SE_ERR_DDEFAIL 29
275 #define SE_ERR_DDEBUSY 30
276 #define SE_ERR_NOASSOC 31
278 #define SEE_MASK_DEFAULT 0x00000000
279 #define SEE_MASK_CLASSNAME 0x00000001
280 #define SEE_MASK_CLASSKEY 0x00000003
281 #define SEE_MASK_IDLIST 0x00000004
282 #define SEE_MASK_INVOKEIDLIST 0x0000000c
283 #define SEE_MASK_ICON 0x00000010
284 #define SEE_MASK_HOTKEY 0x00000020
285 #define SEE_MASK_NOCLOSEPROCESS 0x00000040
286 #define SEE_MASK_CONNECTNETDRV 0x00000080
287 #define SEE_MASK_NOASYNC 0x00000100
288 #define SEE_MASK_FLAG_DDEWAIT SEE_MASK_NOASYNC
289 #define SEE_MASK_DOENVSUBST 0x00000200
290 #define SEE_MASK_FLAG_NO_UI 0x00000400
291 #define SEE_MASK_UNICODE 0x00004000
292 #define SEE_MASK_NO_CONSOLE 0x00008000
293 #define SEE_MASK_ASYNCOK 0x00100000
294 #define SEE_MASK_HMONITOR 0x00200000
295 #define SEE_MASK_NOZONECHECKS 0x00800000
296 #define SEE_MASK_NOQUERYCLASSSTORE 0x01000000
297 #define SEE_MASK_WAITFORINPUTIDLE 0x02000000
298 #define SEE_MASK_FLAG_LOG_USAGE 0x04000000
300 typedef struct _SHELLEXECUTEINFOA
301 { DWORD cbSize;
302 ULONG fMask;
303 HWND hwnd;
304 LPCSTR lpVerb;
305 LPCSTR lpFile;
306 LPCSTR lpParameters;
307 LPCSTR lpDirectory;
308 INT nShow;
309 HINSTANCE hInstApp;
310 /* Optional fields */
311 LPVOID lpIDList;
312 LPCSTR lpClass;
313 HKEY hkeyClass;
314 DWORD dwHotKey;
315 union
316 { HANDLE hIcon;
317 HANDLE hMonitor;
318 } DUMMYUNIONNAME;
319 HANDLE hProcess;
320 } SHELLEXECUTEINFOA, *LPSHELLEXECUTEINFOA;
322 typedef struct _SHELLEXECUTEINFOW
323 { DWORD cbSize;
324 ULONG fMask;
325 HWND hwnd;
326 LPCWSTR lpVerb;
327 LPCWSTR lpFile;
328 LPCWSTR lpParameters;
329 LPCWSTR lpDirectory;
330 INT nShow;
331 HINSTANCE hInstApp;
332 /* Optional fields*/
333 LPVOID lpIDList;
334 LPCWSTR lpClass;
335 HKEY hkeyClass;
336 DWORD dwHotKey;
337 union
338 { HANDLE hIcon;
339 HANDLE hMonitor;
340 } DUMMYUNIONNAME;
341 HANDLE hProcess;
342 } SHELLEXECUTEINFOW, *LPSHELLEXECUTEINFOW;
344 #define SHELLEXECUTEINFO WINELIB_NAME_AW(SHELLEXECUTEINFO)
345 #define LPSHELLEXECUTEINFO WINELIB_NAME_AW(LPSHELLEXECUTEINFO)
347 WINSHELLAPI BOOL WINAPI ShellExecuteExA(LPSHELLEXECUTEINFOA lpExecInfo);
348 WINSHELLAPI BOOL WINAPI ShellExecuteExW(LPSHELLEXECUTEINFOW lpExecInfo);
349 #define ShellExecuteEx WINELIB_NAME_AW(ShellExecuteEx)
351 WINSHELLAPI void WINAPI WinExecErrorA(HWND hwnd,INT error, LPCSTR lpstrFileName, LPCSTR lpstrTitle);
352 WINSHELLAPI void WINAPI WinExecErrorW(HWND hwnd,INT error, LPCWSTR lpstrFileName, LPCWSTR lpstrTitle);
353 #define WinExecError WINELIB_NAME_AW(WinExecError)
355 /******************************************
356 * Tray Notification
358 /* notifyicondata.uFlags values*/
359 #define NIF_MESSAGE 0x00000001
360 #define NIF_ICON 0x00000002
361 #define NIF_TIP 0x00000004
362 #define NIF_STATE 0x00000008
363 #define NIF_INFO 0x00000010
364 #define NIF_GUID 0x00000020
365 #define NIF_REALTIME 0x00000040
366 #define NIF_SHOWTIP 0x00000080
368 /* notifyicondata.dwState values */
369 #define NIS_HIDDEN 0x00000001
370 #define NIS_SHAREDICON 0x00000002
372 /* notifyicondata.dwInfoFlags values */
373 #define NIIF_NONE 0x00000000
374 #define NIIF_INFO 0x00000001
375 #define NIIF_WARNING 0x00000002
376 #define NIIF_ERROR 0x00000003
377 #define NIIF_USER 0x00000004
378 #define NIIF_ICONMASK 0x0000000f
379 #define NIIF_NOSOUND 0x00000010
380 #define NIIF_LARGEICON 0x00000020
382 /* dwMessage values */
383 #define NIM_ADD 0x00000000
384 #define NIM_MODIFY 0x00000001
385 #define NIM_DELETE 0x00000002
386 #define NIM_SETFOCUS 0x00000003
387 #define NIM_SETVERSION 0x00000004
389 #define NOTIFYICON_VERSION 3
390 #define NOTIFYICON_VERSION_4 4
392 /* callback message lParam values */
393 #define NIN_SELECT (WM_USER+0)
394 #define NINF_KEY 1
395 #define NIN_KEYSELECT (NIN_SELECT|NINF_KEY) /* WM_USER+1 */
396 #define NIN_BALLOONSHOW (WM_USER+2)
397 #define NIN_BALLOONHIDE (WM_USER+3)
398 #define NIN_BALLOONTIMEOUT (WM_USER+4)
399 #define NIN_BALLOONUSERCLICK (WM_USER+5)
400 #define NIN_POPUPOPEN (WM_USER+6)
401 #define NIN_POPUPCLOSE (WM_USER+7)
403 typedef struct _NOTIFYICONDATAA
404 { DWORD cbSize;
405 HWND hWnd;
406 UINT uID;
407 UINT uFlags;
408 UINT uCallbackMessage;
409 HICON hIcon;
410 CHAR szTip[128];
411 DWORD dwState;
412 DWORD dwStateMask;
413 CHAR szInfo[256];
414 union {
415 UINT uTimeout;
416 UINT uVersion;
417 } DUMMYUNIONNAME;
418 CHAR szInfoTitle[64];
419 DWORD dwInfoFlags;
420 GUID guidItem;
421 HICON hBalloonIcon;
422 } NOTIFYICONDATAA, *PNOTIFYICONDATAA;
424 typedef struct _NOTIFYICONDATAW
425 { DWORD cbSize;
426 HWND hWnd;
427 UINT uID;
428 UINT uFlags;
429 UINT uCallbackMessage;
430 HICON hIcon;
431 WCHAR szTip[128];
432 DWORD dwState;
433 DWORD dwStateMask;
434 WCHAR szInfo[256];
435 union {
436 UINT uTimeout;
437 UINT uVersion;
438 } DUMMYUNIONNAME;
439 WCHAR szInfoTitle[64];
440 DWORD dwInfoFlags;
441 GUID guidItem;
442 HICON hBalloonIcon;
443 } NOTIFYICONDATAW, *PNOTIFYICONDATAW;
445 typedef struct _NOTIFYICONIDENTIFIER
447 DWORD cbSize;
448 HWND hWnd;
449 UINT uID;
450 GUID guidItem;
451 } NOTIFYICONIDENTIFIER, *PNOTIFYICONIDENTIFIER;
453 DECL_WINELIB_TYPE_AW(NOTIFYICONDATA)
454 DECL_WINELIB_TYPE_AW(PNOTIFYICONDATA)
456 WINSHELLAPI BOOL WINAPI Shell_NotifyIconA(DWORD dwMessage, PNOTIFYICONDATAA lpData);
457 WINSHELLAPI BOOL WINAPI Shell_NotifyIconW(DWORD dwMessage, PNOTIFYICONDATAW lpData);
458 #define Shell_NotifyIcon WINELIB_NAME_AW(Shell_NotifyIcon)
460 WINSHELLAPI HRESULT WINAPI Shell_NotifyIconGetRect(const NOTIFYICONIDENTIFIER* identifier, RECT* iconLocation);
462 /* pre IE 5.0 */
463 #define NOTIFYICONDATAA_V1_SIZE FIELD_OFFSET(NOTIFYICONDATAA, szTip[64])
464 #define NOTIFYICONDATAW_V1_SIZE FIELD_OFFSET(NOTIFYICONDATAW, szTip[64])
466 /* pre Window XP */
467 #define NOTIFYICONDATAA_V2_SIZE FIELD_OFFSET(NOTIFYICONDATAA, guidItem)
468 #define NOTIFYICONDATAW_V2_SIZE FIELD_OFFSET(NOTIFYICONDATAW, guidItem)
470 /* pre Window Vista */
471 #define NOTIFYICONDATAA_V3_SIZE FIELD_OFFSET(NOTIFYICONDATAA, hBalloonIcon)
472 #define NOTIFYICONDATAW_V3_SIZE FIELD_OFFSET(NOTIFYICONDATAW, hBalloonIcon)
475 /******************************************
476 * Links
479 #define SHGNLI_PIDL 0x01
480 #define SHGNLI_PREFIXNAME 0x02
481 #define SHGNLI_NOUNIQUE 0x04
482 #define SHGNLI_NOLNK 0x08
484 WINSHELLAPI BOOL WINAPI SHGetNewLinkInfoA(LPCSTR,LPCSTR,LPSTR,BOOL*,UINT);
485 WINSHELLAPI BOOL WINAPI SHGetNewLinkInfoW(LPCWSTR,LPCWSTR,LPWSTR,BOOL*,UINT);
486 #define SHGetNewLinkInfo WINELIB_NAME_AW(SHGetNewLinkInfo)
488 /******************************************
489 * Recycle bin
492 typedef struct _SHQUERYRBINFO
494 DWORD cbSize;
495 DWORDLONG i64Size;
496 DWORDLONG i64NumItems;
497 } SHQUERYRBINFO, *LPSHQUERYRBINFO;
499 WINSHELLAPI HRESULT WINAPI SHEmptyRecycleBinA(HWND,LPCSTR,DWORD);
500 WINSHELLAPI HRESULT WINAPI SHEmptyRecycleBinW(HWND,LPCWSTR,DWORD);
501 #define SHEmptyRecycleBin WINELIB_NAME_AW(SHEmptyRecycleBin)
502 WINSHELLAPI HRESULT WINAPI SHQueryRecycleBinA(LPCSTR,LPSHQUERYRBINFO);
503 WINSHELLAPI HRESULT WINAPI SHQueryRecycleBinW(LPCWSTR,LPSHQUERYRBINFO);
504 #define SHQueryRecycleBin WINELIB_NAME_AW(SHQueryRecycleBin)
506 /******************************************
507 * Network Address Control
509 typedef struct tagNC_ADDRESS
511 struct NET_ADDRESS_INFO_ *pAddrInfo;
512 USHORT PortNumber;
513 BYTE PrefixLength;
514 } NC_ADDRESS, *PNC_ADDRESS;
516 #define NCM_GETADDRESS (WM_USER+1)
517 #define NCM_SETALLOWTYPE (WM_USER+2)
518 #define NCM_GETALLOWTYPE (WM_USER+3)
519 #define NCM_DISPLAYERRORTIP (WM_USER+4)
521 #define NetAddr_GetAddress(hwnd,addr) \
522 (HRESULT)SNDMSG(hwnd,NCM_GETADDRESS,0,(LPARAM)addr)
523 #define NetAddr_SetAllowType(hwnd, mask) \
524 (HRESULT)SNDMSG(hwnd,NCM_SETALLOWTYPE,(WPARAM)mask,0)
525 #define NetAddr_GetAllowType(hwnd) \
526 (DWORD)SNDMSG(hwnd,NCM_GETALLOWTYPE,0,0)
527 #define NetAddr_DisplayErrorTip(hwnd) \
528 (HRESULT)SNDMSG(hwnd,NCM_DISPLAYERRORTIP,0,0)
530 /******************************************
531 * Misc
534 typedef enum
536 QUNS_NOT_PRESENT = 1,
537 QUNS_BUSY = 2,
538 QUNS_RUNNING_D3D_FULL_SCREEN = 3,
539 QUNS_PRESENTATION_MODE = 4,
540 QUNS_ACCEPTS_NOTIFICATIONS = 5,
541 QUNS_QUIET_TIME = 6,
542 QUNS_APP = 7
543 } QUERY_USER_NOTIFICATION_STATE;
545 WINSHELLAPI HRESULT WINAPI SHQueryUserNotificationState(QUERY_USER_NOTIFICATION_STATE*);
547 typedef enum SHSTOCKICONID
549 SIID_INVALID=-1,
550 SIID_DOCNOASSOC,
551 SIID_DOCASSOC,
552 SIID_APPLICATION,
553 SIID_FOLDER,
554 SIID_FOLDEROPEN,
555 SIID_DRIVE525,
556 SIID_DRIVE35,
557 SIID_DRIVERREMOVE,
558 SIID_DRIVERFIXED,
559 SIID_DRIVERNET,
560 SIID_DRIVERNETDISABLE,
561 SIID_DRIVERCD,
562 SIID_DRIVERRAM,
563 SIID_WORLD,
564 /* Missing: 14 */
565 SIID_SERVER = 15,
566 SIID_PRINTER,
567 SIID_MYNETWORK,
568 /* Missing: 18 - 21 */
569 SIID_FIND = 22,
570 SIID_HELP,
571 /* Missing: 24 - 27 */
572 SIID_SHARE = 28,
573 SIID_LINK,
574 SIID_SLOWFILE,
575 SIID_RECYCLER,
576 SIID_RECYCLERFULL,
577 /* Missing: 33 - 39 */
578 SIID_MEDIACDAUDIO = 40,
579 /* Missing: 41 - 46 */
580 SIID_LOCK = 47,
581 /* Missing: 48 */
582 SIID_AUTOLIST = 49,
583 SIID_PRINTERNET,
584 SIID_SERVERSHARE,
585 SIID_PRINTERFAX,
586 SIID_PRINTERFAXNET,
587 SIID_PRINTERFILE,
588 SIID_STACK,
589 SIID_MEDIASVCD,
590 SIID_STUFFEDFOLDER,
591 SIID_DRIVEUNKNOWN,
592 SIID_DRIVEDVD,
593 SIID_MEDIADVD,
594 SIID_MEDIADVDRAM,
595 SIID_MEDIADVDRW,
596 SIID_MEDIADVDR,
597 SIID_MEDIADVDROM,
598 SIID_MEDIACDAUDIOPLUS,
599 SIID_MEDIACDRW,
600 SIID_MEDIACDR,
601 SIID_MEDIACDBURN,
602 SIID_MEDIABLANKCD,
603 SIID_MEDIACDROM,
604 SIID_AUDIOFILES,
605 SIID_IMAGEFILES,
606 SIID_VIDEOFILES,
607 SIID_MIXEDFILES,
608 SIID_FOLDERBACK,
609 SIID_FOLDERFRONT,
610 SIID_SHIELD,
611 SIID_WARNING,
612 SIID_INFO,
613 SIID_ERROR,
614 SIID_KEY,
615 SIID_SOFTWARE,
616 SIID_RENAME,
617 SIID_DELETE,
618 SIID_MEDIAAUDIODVD,
619 SIID_MEDIAMOVIEDVD,
620 SIID_MEDIAENHANCEDCD,
621 SIID_MEDIAENHANCEDDVD,
622 SIID_MEDIAHDDVD,
623 SIID_MEDIABLUERAY,
624 SIID_MEDIAVCD,
625 SIID_MEDIADVDPLUSR,
626 SIID_MEDIADVDPLUSRW,
627 SIID_DESKTOPPC,
628 SIID_MOBILEPC,
629 SIID_USERS,
630 SIID_MEDIASMARTMEDIA,
631 SIID_MEDIACOMPACTFLASH,
632 SIID_DEVICECELLPHONE,
633 SIID_DEVICECAMERA,
634 SIID_DEVICEVIDEOCAMERA,
635 SIID_DEVICEAUDIOPLAYER,
636 SIID_NETWORKCONNECT,
637 SIID_INTERNET,
638 SIID_ZIPFILE,
639 SIID_SETTINGS,
640 /* Missing: 107 - 131 */
641 SIID_DRIVEHDDVD = 132,
642 SIID_DRIVEBD,
643 SIID_MEDIAHDDVDROM,
644 SIID_MEDIAHDDVDR,
645 SIID_MEDIAHDDVDRAM,
646 SIID_MEDIABDROM,
647 SIID_MEDIABDR,
648 SIID_MEDIABDRE,
649 SIID_CLUSTEREDDRIVE,
650 /* Missing: 141 - 180 */
651 SIID_MAX_ICONS = 181
652 }SHSTOCKICONID;
654 typedef struct _SHSTOCKICONINFO
656 DWORD cbSize;
657 HICON hIcon;
658 INT iSysImageIndex;
659 INT iIcon;
660 WCHAR szPath[MAX_PATH];
661 } SHSTOCKICONINFO;
663 /* flags for SHGetStockIconInfo */
664 #define SHGSI_ICONLOCATION 0
665 #define SHGSI_ICON SHGFI_ICON
666 #define SHGSI_SYSICONINDEX SHGFI_SYSICONINDEX
667 #define SHGSI_LINKOVERLAY SHGFI_LINKOVERLAY
668 #define SHGSI_SELECTED SHGFI_SELECTED
669 #define SHGSI_LARGEICON SHGFI_LARGEICON
670 #define SHGSI_SMALLICON SHGFI_SMALLICON
671 #define SHGSI_SHELLICONSIZE SHGFI_SHELLICONSIZE
673 WINSHELLAPI HRESULT WINAPI SHGetStockIconInfo(SHSTOCKICONID, UINT, SHSTOCKICONINFO*);
674 WINSHELLAPI WCHAR** WINAPI CommandLineToArgvW(const WCHAR*,int*) __WINE_DEALLOC(LocalFree);
675 WINSHELLAPI HICON WINAPI ExtractIconA(HINSTANCE,LPCSTR,UINT);
676 WINSHELLAPI HICON WINAPI ExtractIconW(HINSTANCE,LPCWSTR,UINT);
677 #define ExtractIcon WINELIB_NAME_AW(ExtractIcon)
678 WINSHELLAPI HICON WINAPI ExtractAssociatedIconA(HINSTANCE,LPSTR,LPWORD);
679 WINSHELLAPI HICON WINAPI ExtractAssociatedIconW(HINSTANCE,LPWSTR,LPWORD);
680 #define ExtractAssociatedIcon WINELIB_NAME_AW(ExtractAssociatedIcon)
681 WINSHELLAPI HICON WINAPI ExtractAssociatedIconExA(HINSTANCE,LPSTR,LPWORD,LPWORD);
682 WINSHELLAPI HICON WINAPI ExtractAssociatedIconExW(HINSTANCE,LPWSTR,LPWORD,LPWORD);
683 #define ExtractAssociatedIconEx WINELIB_NAME_AW(ExtractAssociatedIconEx)
684 WINSHELLAPI UINT WINAPI ExtractIconExA(LPCSTR,INT,HICON*,HICON*,UINT);
685 WINSHELLAPI UINT WINAPI ExtractIconExW(LPCWSTR,INT,HICON*,HICON*,UINT);
686 #define ExtractIconEx WINELIB_NAME_AW(ExtractIconEx)
687 WINSHELLAPI HINSTANCE WINAPI FindExecutableA(LPCSTR,LPCSTR,LPSTR);
688 WINSHELLAPI HINSTANCE WINAPI FindExecutableW(LPCWSTR,LPCWSTR,LPWSTR);
689 #define FindExecutable WINELIB_NAME_AW(FindExecutable)
690 WINSHELLAPI BOOL WINAPI ShellAboutA(HWND,LPCSTR,LPCSTR,HICON);
691 WINSHELLAPI BOOL WINAPI ShellAboutW(HWND,LPCWSTR,LPCWSTR,HICON);
692 #define ShellAbout WINELIB_NAME_AW(ShellAbout)
693 WINSHELLAPI int WINAPIV ShellMessageBoxA(HINSTANCE,HWND,LPCSTR,LPCSTR,UINT,...);
694 WINSHELLAPI int WINAPIV ShellMessageBoxW(HINSTANCE,HWND,LPCWSTR,LPCWSTR,UINT,...);
695 #define ShellMessageBox WINELIB_NAME_AW(ShellMessageBox)
696 WINSHELLAPI DWORD WINAPI DoEnvironmentSubstA(LPSTR, UINT);
697 WINSHELLAPI DWORD WINAPI DoEnvironmentSubstW(LPWSTR, UINT);
698 #define DoEnvironmentSubst WINELIB_NAME_AW(DoEnvironmentSubst)
699 WINSHELLAPI HRESULT WINAPI SHEnumerateUnreadMailAccountsA(HKEY,DWORD,LPSTR,INT);
700 WINSHELLAPI HRESULT WINAPI SHEnumerateUnreadMailAccountsW(HKEY,DWORD,LPWSTR,INT);
701 #define SHEnumerateUnreadMailAccounts WINELIB_NAME_AW(SHEnumerateUnreadMailAccounts)
702 WINSHELLAPI HRESULT WINAPI SHGetPropertyStoreForWindow(HWND,REFIID,void **);
704 #ifdef __cplusplus
705 } /* extern "C" */
706 #endif /* defined(__cplusplus) */
708 #ifndef _WIN64
709 #include <poppack.h>
710 #endif
712 #endif /* __WINE_SHELLAPI_H */