| 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 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 |
|
| 145 |
typedef WORD FILEOP_FLAGS; |
| 146 |
typedef WORD PRINTEROP_FLAGS; |
| 147 |
#include <pshpack2.h> |
| 148 |
typedef struct _AppBarData { |
| 149 |
DWORD cbSize; |
| 150 |
HWND hWnd; |
| 151 |
UINT uCallbackMessage; |
| 152 |
UINT uEdge; |
| 153 |
RECT rc; |
| 154 |
LPARAM lParam; |
| 155 |
} APPBARDATA,*PAPPBARDATA; |
| 156 |
DECLARE_HANDLE(HDROP); |
| 157 |
|
| 158 |
typedef 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 |
|
| 187 |
typedef 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 |
|
| 216 |
typedef 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; |
| 233 |
typedef 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; |
| 250 |
typedef 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; |
| 260 |
typedef 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; |
| 270 |
typedef struct _SHFILEINFOA { |
| 271 |
HICON hIcon; |
| 272 |
int iIcon; |
| 273 |
DWORD dwAttributes; |
| 274 |
CHAR szDisplayName[MAX_PATH]; |
| 275 |
CHAR szTypeName[80]; |
| 276 |
} SHFILEINFOA; |
| 277 |
typedef struct _SHFILEINFOW { |
| 278 |
HICON hIcon; |
| 279 |
int iIcon; |
| 280 |
DWORD dwAttributes; |
| 281 |
WCHAR szDisplayName[MAX_PATH]; |
| 282 |
WCHAR szTypeName[80]; |
| 283 |
} SHFILEINFOW; |
| 284 |
typedef struct _SHQUERYRBINFO { |
| 285 |
DWORD cbSize; |
| 286 |
__int64 i64Size; |
| 287 |
__int64 i64NumItems; |
| 288 |
} SHQUERYRBINFO, *LPSHQUERYRBINFO; |
| 289 |
#include <poppack.h> |
| 290 |
|
| 291 |
LPWSTR * WINAPI CommandLineToArgvW(LPCWSTR,int*); |
| 292 |
void WINAPI DragAcceptFiles(HWND,BOOL); |
| 293 |
void WINAPI DragFinish(HDROP); |
| 294 |
UINT WINAPI DragQueryFileA(HDROP,UINT,LPSTR,UINT); |
| 295 |
UINT WINAPI DragQueryFileW(HDROP,UINT,LPWSTR,UINT); |
| 296 |
BOOL WINAPI DragQueryPoint(HDROP,LPPOINT); |
| 297 |
HICON WINAPI DuplicateIcon(HINSTANCE,HICON); |
| 298 |
HICON WINAPI ExtractAssociatedIconA(HINSTANCE,LPCSTR,PWORD); |
| 299 |
HICON WINAPI ExtractAssociatedIconW(HINSTANCE,LPCWSTR,PWORD); |
| 300 |
HICON WINAPI ExtractIconA(HINSTANCE,LPCSTR,UINT); |
| 301 |
HICON WINAPI ExtractIconW(HINSTANCE,LPCWSTR,UINT); |
| 302 |
UINT WINAPI ExtractIconExA(LPCSTR,int,HICON*,HICON*,UINT); |
| 303 |
UINT WINAPI ExtractIconExW(LPCWSTR,int,HICON*,HICON*,UINT); |
| 304 |
HINSTANCE WINAPI FindExecutableA(LPCSTR,LPCSTR,LPSTR); |
| 305 |
HINSTANCE WINAPI FindExecutableW(LPCWSTR,LPCWSTR,LPWSTR); |
| 306 |
UINT WINAPI SHAppBarMessage(DWORD,PAPPBARDATA); |
| 307 |
BOOL WINAPI Shell_NotifyIconA(DWORD,PNOTIFYICONDATAA); |
| 308 |
BOOL WINAPI Shell_NotifyIconW(DWORD,PNOTIFYICONDATAW); |
| 309 |
int WINAPI ShellAboutA(HWND,LPCSTR,LPCSTR,HICON); |
| 310 |
int WINAPI ShellAboutW(HWND,LPCWSTR,LPCWSTR,HICON); |
| 311 |
HINSTANCE WINAPI ShellExecuteA(HWND,LPCSTR,LPCSTR,LPCSTR,LPCSTR,INT); |
| 312 |
HINSTANCE WINAPI ShellExecuteW(HWND,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR,INT); |
| 313 |
BOOL WINAPI ShellExecuteExA(LPSHELLEXECUTEINFOA); |
| 314 |
BOOL WINAPI ShellExecuteExW(LPSHELLEXECUTEINFOW); |
| 315 |
int WINAPI SHFileOperationA(LPSHFILEOPSTRUCTA); |
| 316 |
int WINAPI SHFileOperationW(LPSHFILEOPSTRUCTW); |
| 317 |
void WINAPI SHFreeNameMappings(HANDLE); |
| 318 |
DWORD WINAPI SHGetFileInfoA(LPCSTR,DWORD,SHFILEINFOA*,UINT,UINT); |
| 319 |
DWORD WINAPI SHGetFileInfoW(LPCWSTR,DWORD,SHFILEINFOW*,UINT,UINT); |
| 320 |
HRESULT WINAPI SHQueryRecycleBinA(LPCSTR, LPSHQUERYRBINFO); |
| 321 |
HRESULT WINAPI SHQueryRecycleBinW(LPCWSTR, LPSHQUERYRBINFO); |
| 322 |
HRESULT WINAPI SHEmptyRecycleBinA(HWND,LPCSTR,DWORD); |
| 323 |
HRESULT 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 |
| 332 |
HRESULT WINAPI SHGetImageList(int,REFIID,void**); |
| 333 |
#endif |
| 334 |
|
| 335 |
#ifdef UNICODE |
| 336 |
typedef NOTIFYICONDATAW NOTIFYICONDATA,*PNOTIFYICONDATA; |
| 337 |
typedef SHELLEXECUTEINFOW SHELLEXECUTEINFO,*LPSHELLEXECUTEINFO; |
| 338 |
typedef SHFILEOPSTRUCTW SHFILEOPSTRUCT,*LPSHFILEOPSTRUCT; |
| 339 |
typedef 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 |
| 355 |
typedef NOTIFYICONDATAA NOTIFYICONDATA,*PNOTIFYICONDATA; |
| 356 |
typedef SHELLEXECUTEINFOA SHELLEXECUTEINFO,*LPSHELLEXECUTEINFO; |
| 357 |
typedef SHFILEOPSTRUCTA SHFILEOPSTRUCT,*LPSHFILEOPSTRUCT; |
| 358 |
typedef 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 |