Alexandre Julliard | 0799c1a | 2002-03-09 23:29:33 +0000 | [diff] [blame] | 1 | /* |
| 2 | * Copyright (C) the Wine project |
| 3 | * |
| 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. |
| 8 | * |
| 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. |
| 13 | * |
| 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 |
Jonathan Ernst | 360a3f9 | 2006-05-18 14:49:52 +0200 | [diff] [blame] | 16 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA |
Alexandre Julliard | 0799c1a | 2002-03-09 23:29:33 +0000 | [diff] [blame] | 17 | */ |
| 18 | |
Patrik Stridvall | 857eb39 | 1999-06-12 18:36:54 +0000 | [diff] [blame] | 19 | #ifndef __WINE_SHELLAPI_H |
| 20 | #define __WINE_SHELLAPI_H |
Michael Veksler | 17822f4 | 1999-02-09 15:46:25 +0000 | [diff] [blame] | 21 | |
Patrik Stridvall | 14da7b1 | 1999-06-12 10:53:06 +0000 | [diff] [blame] | 22 | #ifdef __cplusplus |
| 23 | extern "C" { |
| 24 | #endif /* defined(__cplusplus) */ |
| 25 | |
Alexandre Julliard | 253ccfb | 2009-01-02 12:20:20 +0100 | [diff] [blame] | 26 | #ifndef _WIN64 |
Dimitrie O. Paun | 53f9c21 | 2003-08-28 21:43:34 +0000 | [diff] [blame] | 27 | #include <pshpack1.h> |
Alexandre Julliard | 253ccfb | 2009-01-02 12:20:20 +0100 | [diff] [blame] | 28 | #endif |
Juergen Schmied | 28613d3 | 1999-04-22 10:11:04 +0000 | [diff] [blame] | 29 | |
François Gouget | dea3d78 | 2001-01-02 21:00:46 +0000 | [diff] [blame] | 30 | DECLARE_HANDLE(HDROP); |
| 31 | |
Juergen Schmied | 28613d3 | 1999-04-22 10:11:04 +0000 | [diff] [blame] | 32 | /****************************************** |
| 33 | * DragObject |
| 34 | */ |
| 35 | |
Vincent Béron | 9a62491 | 2002-05-31 23:06:46 +0000 | [diff] [blame] | 36 | typedef struct _DRAGINFOA |
Juergen Schmied | 28613d3 | 1999-04-22 10:11:04 +0000 | [diff] [blame] | 37 | { UINT uSize; |
| 38 | POINT pt; |
| 39 | BOOL fNC; |
| 40 | LPSTR lpFileList; |
| 41 | DWORD grfKeyState; |
Patrik Stridvall | ced69a9 | 2002-11-12 01:05:00 +0000 | [diff] [blame] | 42 | } DRAGINFOA, *LPDRAGINFOA; |
Juergen Schmied | 28613d3 | 1999-04-22 10:11:04 +0000 | [diff] [blame] | 43 | |
Vincent Béron | 9a62491 | 2002-05-31 23:06:46 +0000 | [diff] [blame] | 44 | typedef struct _DRAGINFOW |
Juergen Schmied | 28613d3 | 1999-04-22 10:11:04 +0000 | [diff] [blame] | 45 | { UINT uSize; |
| 46 | POINT pt; |
| 47 | BOOL fNC; |
| 48 | LPWSTR lpFileList; |
| 49 | DWORD grfKeyState; |
Patrik Stridvall | ced69a9 | 2002-11-12 01:05:00 +0000 | [diff] [blame] | 50 | } DRAGINFOW, *LPDRAGINFOW; |
Juergen Schmied | 28613d3 | 1999-04-22 10:11:04 +0000 | [diff] [blame] | 51 | |
Alexandre Julliard | 83f52d1 | 2000-09-26 22:20:14 +0000 | [diff] [blame] | 52 | DECL_WINELIB_TYPE_AW(DRAGINFO) |
| 53 | DECL_WINELIB_TYPE_AW(LPDRAGINFO) |
Juergen Schmied | 28613d3 | 1999-04-22 10:11:04 +0000 | [diff] [blame] | 54 | |
Alexandre Julliard | 83f52d1 | 2000-09-26 22:20:14 +0000 | [diff] [blame] | 55 | void WINAPI DragAcceptFiles(HWND hWnd, BOOL b); |
Juergen Schmied | 28613d3 | 1999-04-22 10:11:04 +0000 | [diff] [blame] | 56 | UINT WINAPI DragQueryFileA(HDROP hDrop, UINT lFile, LPSTR lpszFile, UINT lLength); |
| 57 | UINT WINAPI DragQueryFileW(HDROP hDrop, UINT lFile, LPWSTR lpszFile, UINT lLength); |
Alexandre Julliard | 83f52d1 | 2000-09-26 22:20:14 +0000 | [diff] [blame] | 58 | #define DragQueryFile WINELIB_NAME_AW(DragQueryFile) |
Juergen Schmied | 28613d3 | 1999-04-22 10:11:04 +0000 | [diff] [blame] | 59 | void WINAPI DragFinish(HDROP h); |
Juergen Schmied | 28613d3 | 1999-04-22 10:11:04 +0000 | [diff] [blame] | 60 | BOOL WINAPI DragQueryPoint(HDROP hDrop, POINT *p); |
| 61 | |
Jim Aston | 10141fe | 1999-04-25 12:31:20 +0000 | [diff] [blame] | 62 | |
Juergen Schmied | 28613d3 | 1999-04-22 10:11:04 +0000 | [diff] [blame] | 63 | |
| 64 | /****************************************** |
| 65 | * Application Bar |
| 66 | */ |
| 67 | #define ABM_NEW 0x00000000 |
| 68 | #define ABM_REMOVE 0x00000001 |
| 69 | #define ABM_QUERYPOS 0x00000002 |
| 70 | #define ABM_SETPOS 0x00000003 |
| 71 | #define ABM_GETSTATE 0x00000004 |
| 72 | #define ABM_GETTASKBARPOS 0x00000005 |
| 73 | #define ABM_ACTIVATE 0x00000006 |
| 74 | #define ABM_GETAUTOHIDEBAR 0x00000007 |
| 75 | #define ABM_SETAUTOHIDEBAR 0x00000008 |
| 76 | #define ABM_WINDOWPOSCHANGED 0x00000009 |
| 77 | |
| 78 | #define ABN_STATECHANGE 0x00000000 |
| 79 | #define ABN_POSCHANGED 0x00000001 |
| 80 | #define ABN_FULLSCREENAPP 0x00000002 |
| 81 | #define ABN_WINDOWARRANGE 0x00000003 |
| 82 | |
| 83 | #define ABS_AUTOHIDE 0x00000001 |
| 84 | #define ABS_ALWAYSONTOP 0x00000002 |
| 85 | |
| 86 | #define ABE_LEFT 0 |
| 87 | #define ABE_TOP 1 |
| 88 | #define ABE_RIGHT 2 |
| 89 | #define ABE_BOTTOM 3 |
| 90 | |
Vincent Béron | 9a62491 | 2002-05-31 23:06:46 +0000 | [diff] [blame] | 91 | typedef struct _AppBarData |
Juergen Schmied | 28613d3 | 1999-04-22 10:11:04 +0000 | [diff] [blame] | 92 | { DWORD cbSize; |
| 93 | HWND hWnd; |
| 94 | UINT uCallbackMessage; |
| 95 | UINT uEdge; |
| 96 | RECT rc; |
| 97 | LPARAM lParam; |
| 98 | } APPBARDATA, *PAPPBARDATA; |
| 99 | |
Huw Davies | c9c77ba | 2008-03-05 10:46:31 +0000 | [diff] [blame] | 100 | UINT_PTR WINAPI SHAppBarMessage(DWORD,PAPPBARDATA); |
Juergen Schmied | 28613d3 | 1999-04-22 10:11:04 +0000 | [diff] [blame] | 101 | |
| 102 | /****************************************** |
| 103 | * SHGetFileInfo |
| 104 | */ |
| 105 | |
| 106 | #define SHGFI_LARGEICON 0x000000000 /* get large icon */ |
| 107 | #define SHGFI_SMALLICON 0x000000001 /* get small icon */ |
| 108 | #define SHGFI_OPENICON 0x000000002 /* get open icon */ |
| 109 | #define SHGFI_SHELLICONSIZE 0x000000004 /* get shell size icon */ |
| 110 | #define SHGFI_PIDL 0x000000008 /* pszPath is a pidl */ |
| 111 | #define SHGFI_USEFILEATTRIBUTES 0x000000010 /* use passed dwFileAttribute */ |
Mike McCormack | a830bf5 | 2005-02-15 15:43:54 +0000 | [diff] [blame] | 112 | #define SHGFI_ADDOVERLAYS 0x000000020 |
| 113 | #define SHGFI_OVERLAYINDEX 0x000000040 |
Juergen Schmied | 28613d3 | 1999-04-22 10:11:04 +0000 | [diff] [blame] | 114 | #define SHGFI_ICON 0x000000100 /* get icon */ |
| 115 | #define SHGFI_DISPLAYNAME 0x000000200 /* get display name */ |
| 116 | #define SHGFI_TYPENAME 0x000000400 /* get type name */ |
| 117 | #define SHGFI_ATTRIBUTES 0x000000800 /* get attributes */ |
| 118 | #define SHGFI_ICONLOCATION 0x000001000 /* get icon location */ |
| 119 | #define SHGFI_EXETYPE 0x000002000 /* return exe type */ |
| 120 | #define SHGFI_SYSICONINDEX 0x000004000 /* get system icon index */ |
| 121 | #define SHGFI_LINKOVERLAY 0x000008000 /* put a link overlay on icon */ |
| 122 | #define SHGFI_SELECTED 0x000010000 /* show icon in selected state */ |
| 123 | #define SHGFI_ATTR_SPECIFIED 0x000020000 /* get only specified attributes */ |
| 124 | |
Vincent Béron | 9a62491 | 2002-05-31 23:06:46 +0000 | [diff] [blame] | 125 | typedef struct tagSHFILEINFOA |
Juergen Schmied | 28613d3 | 1999-04-22 10:11:04 +0000 | [diff] [blame] | 126 | { HICON hIcon; /* icon */ |
| 127 | int iIcon; /* icon index */ |
| 128 | DWORD dwAttributes; /* SFGAO_ flags */ |
| 129 | CHAR szDisplayName[MAX_PATH];/* display name (or path) */ |
| 130 | CHAR szTypeName[80]; /* type name */ |
| 131 | } SHFILEINFOA; |
| 132 | |
Vincent Béron | 9a62491 | 2002-05-31 23:06:46 +0000 | [diff] [blame] | 133 | typedef struct tagSHFILEINFOW |
Juergen Schmied | 28613d3 | 1999-04-22 10:11:04 +0000 | [diff] [blame] | 134 | { HICON hIcon; /* icon */ |
| 135 | int iIcon; /* icon index */ |
| 136 | DWORD dwAttributes; /* SFGAO_ flags */ |
| 137 | WCHAR szDisplayName[MAX_PATH];/* display name (or path) */ |
| 138 | WCHAR szTypeName[80]; /* type name */ |
| 139 | } SHFILEINFOW; |
| 140 | |
| 141 | DECL_WINELIB_TYPE_AW(SHFILEINFO) |
| 142 | |
Kevin Koltzau | 95a173a | 2005-09-02 11:32:17 +0000 | [diff] [blame] | 143 | DWORD_PTR WINAPI SHGetFileInfoA(LPCSTR,DWORD,SHFILEINFOA*,UINT,UINT); |
| 144 | DWORD_PTR WINAPI SHGetFileInfoW(LPCWSTR,DWORD,SHFILEINFOW*,UINT,UINT); |
Juergen Schmied | 28613d3 | 1999-04-22 10:11:04 +0000 | [diff] [blame] | 145 | #define SHGetFileInfo WINELIB_NAME_AW(SHGetFileInfo) |
| 146 | |
| 147 | /****************************************** |
Owen Rudge | 11bc439 | 2009-08-12 21:51:13 +0100 | [diff] [blame] | 148 | * SHGetImageList |
| 149 | */ |
| 150 | |
| 151 | HRESULT WINAPI SHGetImageList(INT, REFIID, void **); |
| 152 | |
| 153 | #define SHIL_LARGE 0x0 |
| 154 | #define SHIL_SMALL 0x1 |
| 155 | #define SHIL_EXTRALARGE 0x2 |
| 156 | #define SHIL_SYSSMALL 0x3 |
| 157 | #define SHIL_JUMBO 0x4 |
| 158 | #define SHIL_LAST SHIL_JUMBO |
| 159 | |
| 160 | /****************************************** |
Juergen Schmied | 28613d3 | 1999-04-22 10:11:04 +0000 | [diff] [blame] | 161 | * SHSetFileInfo |
| 162 | */ |
| 163 | |
| 164 | /****************************************** |
| 165 | * SHFileOperation |
| 166 | */ |
| 167 | #define FO_MOVE 0x0001 |
| 168 | #define FO_COPY 0x0002 |
| 169 | #define FO_DELETE 0x0003 |
| 170 | #define FO_RENAME 0x0004 |
| 171 | |
| 172 | #define FOF_MULTIDESTFILES 0x0001 |
| 173 | #define FOF_CONFIRMMOUSE 0x0002 |
Vincent Béron | 9a62491 | 2002-05-31 23:06:46 +0000 | [diff] [blame] | 174 | #define FOF_SILENT 0x0004 |
Juergen Schmied | 28613d3 | 1999-04-22 10:11:04 +0000 | [diff] [blame] | 175 | #define FOF_RENAMEONCOLLISION 0x0008 |
Vincent Béron | 9a62491 | 2002-05-31 23:06:46 +0000 | [diff] [blame] | 176 | #define FOF_NOCONFIRMATION 0x0010 |
| 177 | #define FOF_WANTMAPPINGHANDLE 0x0020 |
Juergen Schmied | 28613d3 | 1999-04-22 10:11:04 +0000 | [diff] [blame] | 178 | #define FOF_ALLOWUNDO 0x0040 |
Vincent Béron | 9a62491 | 2002-05-31 23:06:46 +0000 | [diff] [blame] | 179 | #define FOF_FILESONLY 0x0080 |
| 180 | #define FOF_SIMPLEPROGRESS 0x0100 |
| 181 | #define FOF_NOCONFIRMMKDIR 0x0200 |
| 182 | #define FOF_NOERRORUI 0x0400 |
Rolf Kalbermatter | a25967c | 2003-04-19 20:09:09 +0000 | [diff] [blame] | 183 | #define FOF_NOCOPYSECURITYATTRIBS 0x0800 |
Rolf Kalbermatter | 9e06d0c | 2004-04-01 21:01:04 +0000 | [diff] [blame] | 184 | #define FOF_NORECURSION 0x1000 /* don't do recursion into directories */ |
| 185 | #define FOF_NO_CONNECTED_ELEMENTS 0x2000 /* don't do connected files */ |
| 186 | #define FOF_WANTNUKEWARNING 0x4000 /* during delete operation, warn if delete instead |
| 187 | of recycling (even if FOF_NOCONFIRMATION) */ |
| 188 | #define FOF_NORECURSEREPARSE 0x8000 /* don't do recursion into reparse points */ |
Juergen Schmied | 28613d3 | 1999-04-22 10:11:04 +0000 | [diff] [blame] | 189 | |
| 190 | typedef WORD FILEOP_FLAGS; |
| 191 | |
Vincent Béron | 9a62491 | 2002-05-31 23:06:46 +0000 | [diff] [blame] | 192 | #define PO_DELETE 0x0013 |
| 193 | #define PO_RENAME 0x0014 |
| 194 | #define PO_PORTCHANGE 0x0020 |
Rolf Kalbermatter | 9e06d0c | 2004-04-01 21:01:04 +0000 | [diff] [blame] | 195 | #define PO_REN_PORT (PO_RENAME | PO_PORTCHANGE) |
Juergen Schmied | 28613d3 | 1999-04-22 10:11:04 +0000 | [diff] [blame] | 196 | |
| 197 | typedef WORD PRINTEROP_FLAGS; |
| 198 | |
| 199 | typedef struct _SHFILEOPSTRUCTA |
| 200 | { HWND hwnd; |
| 201 | UINT wFunc; |
| 202 | LPCSTR pFrom; |
| 203 | LPCSTR pTo; |
| 204 | FILEOP_FLAGS fFlags; |
| 205 | BOOL fAnyOperationsAborted; |
| 206 | LPVOID hNameMappings; |
| 207 | LPCSTR lpszProgressTitle; |
| 208 | } SHFILEOPSTRUCTA, *LPSHFILEOPSTRUCTA; |
| 209 | |
| 210 | typedef struct _SHFILEOPSTRUCTW |
| 211 | { HWND hwnd; |
| 212 | UINT wFunc; |
| 213 | LPCWSTR pFrom; |
| 214 | LPCWSTR pTo; |
| 215 | FILEOP_FLAGS fFlags; |
| 216 | BOOL fAnyOperationsAborted; |
| 217 | LPVOID hNameMappings; |
| 218 | LPCWSTR lpszProgressTitle; |
| 219 | } SHFILEOPSTRUCTW, *LPSHFILEOPSTRUCTW; |
| 220 | |
| 221 | #define SHFILEOPSTRUCT WINELIB_NAME_AW(SHFILEOPSTRUCT) |
| 222 | #define LPSHFILEOPSTRUCT WINELIB_NAME_AW(LPSHFILEOPSTRUCT) |
| 223 | |
Martin Fuchs | c0a5a27 | 2004-01-05 21:13:37 +0000 | [diff] [blame] | 224 | int WINAPI SHFileOperationA (LPSHFILEOPSTRUCTA lpFileOp); |
| 225 | int WINAPI SHFileOperationW (LPSHFILEOPSTRUCTW lpFileOp); |
Juergen Schmied | 28613d3 | 1999-04-22 10:11:04 +0000 | [diff] [blame] | 226 | #define SHFileOperation WINELIB_NAME_AW(SHFileOperation) |
| 227 | |
Rolf Kalbermatter | 9e06d0c | 2004-04-01 21:01:04 +0000 | [diff] [blame] | 228 | typedef struct _SHNAMEMAPPINGA |
| 229 | { |
| 230 | LPSTR pszOldPath; |
| 231 | LPSTR pszNewPath; |
| 232 | int cchOldPath; |
| 233 | int cchNewPath; |
| 234 | } SHNAMEMAPPINGA, *LPSHNAMEMAPPINGA; |
| 235 | |
| 236 | typedef struct _SHNAMEMAPPINGW |
| 237 | { |
| 238 | LPWSTR pszOldPath; |
| 239 | LPWSTR pszNewPath; |
| 240 | int cchOldPath; |
| 241 | int cchNewPath; |
| 242 | } SHNAMEMAPPINGW, *LPSHNAMEMAPPINGW; |
| 243 | |
| 244 | DECL_WINELIB_TYPE_AW(SHNAMEMAPPING) |
| 245 | DECL_WINELIB_TYPE_AW(LPSHNAMEMAPPING) |
| 246 | |
Rolf Kalbermatter | 8d3111c | 2004-10-21 19:54:36 +0000 | [diff] [blame] | 247 | void WINAPI SHFreeNameMappings(HANDLE hNameMappings); |
| 248 | |
Juergen Schmied | 28613d3 | 1999-04-22 10:11:04 +0000 | [diff] [blame] | 249 | /****************************************** |
| 250 | * ShellExecute |
| 251 | */ |
| 252 | #define SE_ERR_SHARE 26 |
| 253 | #define SE_ERR_ASSOCINCOMPLETE 27 |
| 254 | #define SE_ERR_DDETIMEOUT 28 |
| 255 | #define SE_ERR_DDEFAIL 29 |
| 256 | #define SE_ERR_DDEBUSY 30 |
| 257 | #define SE_ERR_NOASSOC 31 |
| 258 | |
Juergen Schmied | 28613d3 | 1999-04-22 10:11:04 +0000 | [diff] [blame] | 259 | HINSTANCE WINAPI ShellExecuteA(HWND,LPCSTR,LPCSTR,LPCSTR,LPCSTR,INT); |
| 260 | HINSTANCE WINAPI ShellExecuteW(HWND,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR,INT); |
| 261 | #define ShellExecute WINELIB_NAME_AW(ShellExecute) |
| 262 | |
Alexandre Julliard | 29cff12 | 2003-11-26 03:59:16 +0000 | [diff] [blame] | 263 | #define SE_ERR_FNF 2 /* file not found */ |
| 264 | #define SE_ERR_PNF 3 /* path not found */ |
| 265 | #define SE_ERR_ACCESSDENIED 5 /* access denied */ |
| 266 | #define SE_ERR_OOM 8 /* out of memory */ |
| 267 | #define SE_ERR_DLLNOTFOUND 32 |
| 268 | #define SE_ERR_SHARE 26 |
| 269 | #define SE_ERR_ASSOCINCOMPLETE 27 |
| 270 | #define SE_ERR_DDETIMEOUT 28 |
| 271 | #define SE_ERR_DDEFAIL 29 |
| 272 | #define SE_ERR_DDEBUSY 30 |
| 273 | #define SE_ERR_NOASSOC 31 |
| 274 | |
| 275 | #define SEE_MASK_CLASSNAME 0x00000001 |
| 276 | #define SEE_MASK_CLASSKEY 0x00000003 |
| 277 | #define SEE_MASK_IDLIST 0x00000004 |
| 278 | #define SEE_MASK_INVOKEIDLIST 0x0000000c |
| 279 | #define SEE_MASK_ICON 0x00000010 |
| 280 | #define SEE_MASK_HOTKEY 0x00000020 |
| 281 | #define SEE_MASK_NOCLOSEPROCESS 0x00000040 |
| 282 | #define SEE_MASK_CONNECTNETDRV 0x00000080 |
Alexandre Julliard | 74572e4 | 2007-11-13 21:33:37 +0100 | [diff] [blame] | 283 | #define SEE_MASK_NOASYNC 0x00000100 |
| 284 | #define SEE_MASK_FLAG_DDEWAIT SEE_MASK_NOASYNC |
Alexandre Julliard | 29cff12 | 2003-11-26 03:59:16 +0000 | [diff] [blame] | 285 | #define SEE_MASK_DOENVSUBST 0x00000200 |
| 286 | #define SEE_MASK_FLAG_NO_UI 0x00000400 |
| 287 | #define SEE_MASK_UNICODE 0x00004000 |
| 288 | #define SEE_MASK_NO_CONSOLE 0x00008000 |
| 289 | #define SEE_MASK_ASYNCOK 0x00100000 |
| 290 | #define SEE_MASK_HMONITOR 0x00200000 |
Francois Gouget | 6b4c9ef | 2005-07-22 09:04:18 +0000 | [diff] [blame] | 291 | #define SEE_MASK_NOZONECHECKS 0x00800000 |
| 292 | #define SEE_MASK_NOQUERYCLASSSTORE 0x01000000 |
| 293 | #define SEE_MASK_WAITFORINPUTIDLE 0x02000000 |
| 294 | #define SEE_MASK_FLAG_LOG_USAGE 0x04000000 |
Alexandre Julliard | 29cff12 | 2003-11-26 03:59:16 +0000 | [diff] [blame] | 295 | |
| 296 | typedef struct _SHELLEXECUTEINFOA |
| 297 | { DWORD cbSize; |
| 298 | ULONG fMask; |
| 299 | HWND hwnd; |
| 300 | LPCSTR lpVerb; |
| 301 | LPCSTR lpFile; |
| 302 | LPCSTR lpParameters; |
| 303 | LPCSTR lpDirectory; |
| 304 | INT nShow; |
| 305 | HINSTANCE hInstApp; |
| 306 | /* Optional fields */ |
| 307 | LPVOID lpIDList; |
| 308 | LPCSTR lpClass; |
| 309 | HKEY hkeyClass; |
| 310 | DWORD dwHotKey; |
| 311 | union |
| 312 | { HANDLE hIcon; |
| 313 | HANDLE hMonitor; |
| 314 | } DUMMYUNIONNAME; |
| 315 | HANDLE hProcess; |
| 316 | } SHELLEXECUTEINFOA, *LPSHELLEXECUTEINFOA; |
| 317 | |
| 318 | typedef struct _SHELLEXECUTEINFOW |
| 319 | { DWORD cbSize; |
| 320 | ULONG fMask; |
| 321 | HWND hwnd; |
| 322 | LPCWSTR lpVerb; |
| 323 | LPCWSTR lpFile; |
| 324 | LPCWSTR lpParameters; |
| 325 | LPCWSTR lpDirectory; |
| 326 | INT nShow; |
| 327 | HINSTANCE hInstApp; |
| 328 | /* Optional fields*/ |
| 329 | LPVOID lpIDList; |
| 330 | LPCWSTR lpClass; |
| 331 | HKEY hkeyClass; |
| 332 | DWORD dwHotKey; |
| 333 | union |
| 334 | { HANDLE hIcon; |
| 335 | HANDLE hMonitor; |
| 336 | } DUMMYUNIONNAME; |
| 337 | HANDLE hProcess; |
| 338 | } SHELLEXECUTEINFOW, *LPSHELLEXECUTEINFOW; |
| 339 | |
| 340 | #define SHELLEXECUTEINFO WINELIB_NAME_AW(SHELLEXECUTEINFO) |
| 341 | #define LPSHELLEXECUTEINFO WINELIB_NAME_AW(LPSHELLEXECUTEINFO) |
| 342 | |
| 343 | BOOL WINAPI ShellExecuteExA(LPSHELLEXECUTEINFOA lpExecInfo); |
| 344 | BOOL WINAPI ShellExecuteExW(LPSHELLEXECUTEINFOW lpExecInfo); |
| 345 | #define ShellExecuteEx WINELIB_NAME_AW(ShellExecuteEx) |
| 346 | |
| 347 | void WINAPI WinExecErrorA(HWND hwnd,INT error, LPCSTR lpstrFileName, LPCSTR lpstrTitle); |
| 348 | void WINAPI WinExecErrorW(HWND hwnd,INT error, LPCWSTR lpstrFileName, LPCWSTR lpstrTitle); |
| 349 | #define WinExecError WINELIB_NAME_AW(WinExecError) |
| 350 | |
Juergen Schmied | 28613d3 | 1999-04-22 10:11:04 +0000 | [diff] [blame] | 351 | /****************************************** |
| 352 | * Tray Notification |
| 353 | */ |
Mikołaj Zalewski | 92a375b | 2007-03-18 12:06:11 +0100 | [diff] [blame] | 354 | /* notifyicondata.uFlags values*/ |
| 355 | #define NIF_MESSAGE 0x00000001 |
| 356 | #define NIF_ICON 0x00000002 |
| 357 | #define NIF_TIP 0x00000004 |
| 358 | #define NIF_STATE 0x00000008 |
| 359 | #define NIF_INFO 0x00000010 |
| 360 | #define NIF_GUID 0x00000020 |
| 361 | #define NIF_REALTIME 0x00000040 |
| 362 | #define NIF_SHOWTIP 0x00000080 |
| 363 | |
| 364 | /* notifyicondata.dwState values */ |
| 365 | #define NIS_HIDDEN 0x00000001 |
| 366 | #define NIS_SHAREDICON 0x00000002 |
| 367 | |
| 368 | /* notifyicondata.dwInfoFlags values */ |
| 369 | #define NIIF_NONE 0x00000000 |
| 370 | #define NIIF_INFO 0x00000001 |
| 371 | #define NIIF_WARNING 0x00000002 |
| 372 | #define NIIF_ERROR 0x00000003 |
| 373 | #define NIIF_USER 0x00000004 |
| 374 | #define NIIF_ICONMASK 0x0000000f |
| 375 | #define NIIF_NOSOUND 0x00000010 |
| 376 | #define NIIF_LARGEICON 0x00000020 |
| 377 | |
| 378 | /* dwMessage values */ |
| 379 | #define NIM_ADD 0x00000000 |
| 380 | #define NIM_MODIFY 0x00000001 |
| 381 | #define NIM_DELETE 0x00000002 |
| 382 | #define NIM_SETFOCUS 0x00000003 |
| 383 | #define NIM_SETVERSION 0x00000004 |
| 384 | |
| 385 | #define NOTIFY_VERSION 3 /* supported by Windows 2000 and later */ |
| 386 | #define NOTIFY_VERSION_4 4 /* supported by Windows Vista */ |
| 387 | |
| 388 | /* callback message lParam values */ |
| 389 | #define NIN_SELECT (WM_USER+0) |
| 390 | #define NINF_KEY 1 |
| 391 | #define NIN_KEYSELECT (NIN_SELECT|NINF_KEY) /* WM_USER+1 */ |
| 392 | #define NIN_BALOONSHOW (WM_USER+2) |
| 393 | #define NIN_BALOONHIDE (WM_USER+3) |
| 394 | #define NIN_BALOONTIMEOUT (WM_USER+4) |
| 395 | #define NIN_BALOONCLICK (WM_USER+5) |
| 396 | #define NIN_POPUPOPEN (WM_USER+6) |
| 397 | #define NIN_POPUPCLOSE (WM_USER+7) |
| 398 | |
Juergen Schmied | 28613d3 | 1999-04-22 10:11:04 +0000 | [diff] [blame] | 399 | typedef struct _NOTIFYICONDATAA |
| 400 | { DWORD cbSize; |
| 401 | HWND hWnd; |
| 402 | UINT uID; |
| 403 | UINT uFlags; |
| 404 | UINT uCallbackMessage; |
| 405 | HICON hIcon; |
Francois Gouget | 466f5e7 | 2004-08-19 19:16:31 +0000 | [diff] [blame] | 406 | CHAR szTip[128]; |
| 407 | DWORD dwState; |
| 408 | DWORD dwStateMask; |
| 409 | CHAR szInfo[256]; |
| 410 | union { |
| 411 | UINT uTimeout; |
| 412 | UINT uVersion; |
| 413 | } DUMMYUNIONNAME; |
| 414 | CHAR szInfoTitle[64]; |
| 415 | DWORD dwInfoFlags; |
Mikołaj Zalewski | cdf0686 | 2007-03-18 11:49:03 +0100 | [diff] [blame] | 416 | GUID guidItem; |
| 417 | HICON hBalloonIcon; |
Juergen Schmied | 28613d3 | 1999-04-22 10:11:04 +0000 | [diff] [blame] | 418 | } NOTIFYICONDATAA, *PNOTIFYICONDATAA; |
| 419 | |
| 420 | typedef struct _NOTIFYICONDATAW |
| 421 | { DWORD cbSize; |
| 422 | HWND hWnd; |
| 423 | UINT uID; |
| 424 | UINT uFlags; |
| 425 | UINT uCallbackMessage; |
| 426 | HICON hIcon; |
Francois Gouget | 466f5e7 | 2004-08-19 19:16:31 +0000 | [diff] [blame] | 427 | WCHAR szTip[128]; |
| 428 | DWORD dwState; |
| 429 | DWORD dwStateMask; |
| 430 | WCHAR szInfo[256]; |
| 431 | union { |
| 432 | UINT uTimeout; |
| 433 | UINT uVersion; |
| 434 | } DUMMYUNIONNAME; |
| 435 | WCHAR szInfoTitle[64]; |
| 436 | DWORD dwInfoFlags; |
Mikołaj Zalewski | cdf0686 | 2007-03-18 11:49:03 +0100 | [diff] [blame] | 437 | GUID guidItem; |
| 438 | HICON hBalloonIcon; |
Juergen Schmied | 28613d3 | 1999-04-22 10:11:04 +0000 | [diff] [blame] | 439 | } NOTIFYICONDATAW, *PNOTIFYICONDATAW; |
| 440 | |
Peter Hunnisett | 565b008 | 2000-09-19 02:43:00 +0000 | [diff] [blame] | 441 | DECL_WINELIB_TYPE_AW(NOTIFYICONDATA) |
| 442 | DECL_WINELIB_TYPE_AW(PNOTIFYICONDATA) |
| 443 | |
| 444 | BOOL WINAPI Shell_NotifyIconA(DWORD dwMessage, PNOTIFYICONDATAA lpData); |
| 445 | BOOL WINAPI Shell_NotifyIconW(DWORD dwMessage, PNOTIFYICONDATAW lpData); |
| 446 | |
| 447 | #define Shell_NotifyIcon WINELIB_NAME_AW(Shell_NotifyIcon) |
Juergen Schmied | 28613d3 | 1999-04-22 10:11:04 +0000 | [diff] [blame] | 448 | |
Mikołaj Zalewski | cdf0686 | 2007-03-18 11:49:03 +0100 | [diff] [blame] | 449 | /* pre IE 5.0 */ |
| 450 | #define NOTIFYICONDATAA_V1_SIZE FIELD_OFFSET(NOTIFYICONDATAA, szTip[64]) |
| 451 | #define NOTIFYICONDATAW_V1_SIZE FIELD_OFFSET(NOTIFYICONDATAW, szTip[64]) |
| 452 | |
| 453 | /* pre Window XP */ |
| 454 | #define NOTIFYICONDATAA_V2_SIZE FIELD_OFFSET(NOTIFYICONDATAA, guidItem) |
| 455 | #define NOTIFYICONDATAW_V2_SIZE FIELD_OFFSET(NOTIFYICONDATAW, guidItem) |
| 456 | |
| 457 | /* pre Window Vista */ |
| 458 | #define NOTIFYICONDATAA_V3_SIZE FIELD_OFFSET(NOTIFYICONDATAA, hBalloonIcon) |
| 459 | #define NOTIFYICONDATAW_V3_SIZE FIELD_OFFSET(NOTIFYICONDATAW, hBalloonIcon) |
| 460 | |
| 461 | |
Juergen Schmied | 28613d3 | 1999-04-22 10:11:04 +0000 | [diff] [blame] | 462 | /****************************************** |
Alexandre Julliard | 487b9f5 | 2004-02-11 06:21:45 +0000 | [diff] [blame] | 463 | * Links |
| 464 | */ |
| 465 | |
| 466 | #define SHGNLI_PIDL 0x01 |
| 467 | #define SHGNLI_PREFIXNAME 0x02 |
| 468 | #define SHGNLI_NOUNIQUE 0x04 |
| 469 | #define SHGNLI_NOLNK 0x08 |
| 470 | |
| 471 | BOOL WINAPI SHGetNewLinkInfoA(LPCSTR,LPCSTR,LPSTR,BOOL*,UINT); |
| 472 | BOOL WINAPI SHGetNewLinkInfoW(LPCWSTR,LPCWSTR,LPWSTR,BOOL*,UINT); |
| 473 | #define SHGetNewLinkInfo WINELIB_NAME_AW(SHGetNewLinkInfo) |
| 474 | |
| 475 | /****************************************** |
Hans Leidekker | c1236fd | 2005-01-03 20:26:06 +0000 | [diff] [blame] | 476 | * Recycle bin |
| 477 | */ |
| 478 | |
| 479 | typedef struct _SHQUERYRBINFO |
| 480 | { |
| 481 | DWORD cbSize; |
| 482 | DWORDLONG i64Size; |
| 483 | DWORDLONG i64NumItems; |
| 484 | } SHQUERYRBINFO, *LPSHQUERYRBINFO; |
| 485 | |
| 486 | HRESULT WINAPI SHEmptyRecycleBinA(HWND,LPCSTR,DWORD); |
| 487 | HRESULT WINAPI SHEmptyRecycleBinW(HWND,LPCWSTR,DWORD); |
| 488 | #define SHEmptyRecycleBin WINELIB_NAME_AW(SHEmptyRecycleBin) |
| 489 | HRESULT WINAPI SHQueryRecycleBinA(LPCSTR,LPSHQUERYRBINFO); |
| 490 | HRESULT WINAPI SHQueryRecycleBinW(LPCWSTR,LPSHQUERYRBINFO); |
| 491 | #define SHQueryRecycleBin WINELIB_NAME_AW(SHQueryRecycleBin) |
| 492 | |
| 493 | /****************************************** |
Juergen Schmied | 28613d3 | 1999-04-22 10:11:04 +0000 | [diff] [blame] | 494 | * Misc |
| 495 | */ |
| 496 | |
Francois Gouget | f8142d3 | 2001-07-17 00:39:58 +0000 | [diff] [blame] | 497 | LPWSTR* WINAPI CommandLineToArgvW(LPCWSTR,int*); |
Alexandre Julliard | 83f52d1 | 2000-09-26 22:20:14 +0000 | [diff] [blame] | 498 | HICON WINAPI ExtractIconA(HINSTANCE,LPCSTR,UINT); |
| 499 | HICON WINAPI ExtractIconW(HINSTANCE,LPCWSTR,UINT); |
Michael Veksler | 17822f4 | 1999-02-09 15:46:25 +0000 | [diff] [blame] | 500 | #define ExtractIcon WINELIB_NAME_AW(ExtractIcon) |
Alexandre Julliard | 83f52d1 | 2000-09-26 22:20:14 +0000 | [diff] [blame] | 501 | HICON WINAPI ExtractAssociatedIconA(HINSTANCE,LPSTR,LPWORD); |
| 502 | HICON WINAPI ExtractAssociatedIconW(HINSTANCE,LPWSTR,LPWORD); |
Michael Veksler | 17822f4 | 1999-02-09 15:46:25 +0000 | [diff] [blame] | 503 | #define ExtractAssociatedIcon WINELIB_NAME_AW(ExtractAssociatedIcon) |
Rolf Kalbermatter | e2b06d2 | 2002-11-30 02:22:24 +0000 | [diff] [blame] | 504 | HICON WINAPI ExtractAssociatedIconExA(HINSTANCE,LPSTR,LPWORD,LPWORD); |
| 505 | HICON WINAPI ExtractAssociatedIconExW(HINSTANCE,LPWSTR,LPWORD,LPWORD); |
| 506 | #define ExtractAssociatedIconEx WINELIB_NAME_AW(ExtractAssociatedIconEx) |
Rolf Kalbermatter | 58c04da | 2002-12-10 19:10:11 +0000 | [diff] [blame] | 507 | UINT WINAPI ExtractIconExA(LPCSTR,INT,HICON*,HICON*,UINT); |
| 508 | UINT WINAPI ExtractIconExW(LPCWSTR,INT,HICON*,HICON*,UINT); |
Alexandre Julliard | 83f52d1 | 2000-09-26 22:20:14 +0000 | [diff] [blame] | 509 | #define ExtractIconEx WINELIB_NAME_AW(ExtractIconEx) |
Alexandre Julliard | 83f52d1 | 2000-09-26 22:20:14 +0000 | [diff] [blame] | 510 | HINSTANCE WINAPI FindExecutableA(LPCSTR,LPCSTR,LPSTR); |
| 511 | HINSTANCE WINAPI FindExecutableW(LPCWSTR,LPCWSTR,LPWSTR); |
Michael Veksler | 17822f4 | 1999-02-09 15:46:25 +0000 | [diff] [blame] | 512 | #define FindExecutable WINELIB_NAME_AW(FindExecutable) |
Alexandre Julliard | 83f52d1 | 2000-09-26 22:20:14 +0000 | [diff] [blame] | 513 | BOOL WINAPI ShellAboutA(HWND,LPCSTR,LPCSTR,HICON); |
| 514 | BOOL WINAPI ShellAboutW(HWND,LPCWSTR,LPCWSTR,HICON); |
Michael Veksler | 17822f4 | 1999-02-09 15:46:25 +0000 | [diff] [blame] | 515 | #define ShellAbout WINELIB_NAME_AW(ShellAbout) |
Alexandre Julliard | 487b9f5 | 2004-02-11 06:21:45 +0000 | [diff] [blame] | 516 | int WINAPIV ShellMessageBoxA(HINSTANCE,HWND,LPCSTR,LPCSTR,UINT,...); |
| 517 | int WINAPIV ShellMessageBoxW(HINSTANCE,HWND,LPCWSTR,LPCWSTR,UINT,...); |
| 518 | #define ShellMessageBox WINELIB_NAME_AW(ShellMessageBox) |
Vitaly Lipatov | b39c398 | 2005-06-20 15:33:48 +0000 | [diff] [blame] | 519 | DWORD WINAPI DoEnvironmentSubstA(LPSTR, UINT); |
| 520 | DWORD WINAPI DoEnvironmentSubstW(LPWSTR, UINT); |
| 521 | #define DoEnvironmentSubst WINELIB_NAME_AW(DoEnvironmentSubst) |
| 522 | |
Michael Veksler | 17822f4 | 1999-02-09 15:46:25 +0000 | [diff] [blame] | 523 | |
Patrik Stridvall | 14da7b1 | 1999-06-12 10:53:06 +0000 | [diff] [blame] | 524 | #ifdef __cplusplus |
| 525 | } /* extern "C" */ |
| 526 | #endif /* defined(__cplusplus) */ |
| 527 | |
Alexandre Julliard | 253ccfb | 2009-01-02 12:20:20 +0100 | [diff] [blame] | 528 | #ifndef _WIN64 |
Dimitrie O. Paun | 53f9c21 | 2003-08-28 21:43:34 +0000 | [diff] [blame] | 529 | #include <poppack.h> |
Alexandre Julliard | 253ccfb | 2009-01-02 12:20:20 +0100 | [diff] [blame] | 530 | #endif |
Michael Veksler | 17822f4 | 1999-02-09 15:46:25 +0000 | [diff] [blame] | 531 | |
Patrik Stridvall | 857eb39 | 1999-06-12 18:36:54 +0000 | [diff] [blame] | 532 | #endif /* __WINE_SHELLAPI_H */ |