| #ifndef _SHELLAPI_H |
| #define _SHELLAPI_H |
| #if __GNUC__ >= 3 |
| #pragma GCC system_header |
| #endif |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| #define WINSHELLAPI DECLSPEC_IMPORT |
| #define ABE_LEFT 0 |
| #define ABE_TOP 1 |
| #define ABE_RIGHT 2 |
| #define ABE_BOTTOM 3 |
| #define ABS_AUTOHIDE 1 |
| #define ABS_ALWAYSONTOP 2 |
| #define SEE_MASK_CLASSNAME 0x1 |
| #define SEE_MASK_CLASSKEY 0x3 |
| #define SEE_MASK_IDLIST 0x4 |
| #define SEE_MASK_INVOKEIDLIST 0xc |
| #define SEE_MASK_ICON 0x10 |
| #define SEE_MASK_HOTKEY 0x20 |
| #define SEE_MASK_NOCLOSEPROCESS 0x40 |
| #define SEE_MASK_CONNECTNETDRV 0x80 |
| #define SEE_MASK_FLAG_DDEWAIT 0x100 |
| #define SEE_MASK_DOENVSUBST 0x200 |
| #define SEE_MASK_FLAG_NO_UI 0x400 |
| #define SEE_MASK_NO_CONSOLE 0x8000 |
| #define SEE_MASK_UNICODE 0x10000 |
| #define SEE_MASK_ASYNCOK 0x100000 |
| #define SEE_MASK_HMONITOR 0x200000 |
| #if (_WIN32_IE >= 0x0600) |
| #define SEE_MASK_NOZONECHECKS 0x800000 |
| #define SEE_MASK_FLAG_LOG_USAGE 0x4000000 |
| #endif |
| #define ABM_NEW 0 |
| #define ABM_REMOVE 1 |
| #define ABM_QUERYPOS 2 |
| #define ABM_SETPOS 3 |
| #define ABM_GETSTATE 4 |
| #define ABM_GETTASKBARPOS 5 |
| #define ABM_ACTIVATE 6 |
| #define ABM_GETAUTOHIDEBAR 7 |
| #define ABM_SETAUTOHIDEBAR 8 |
| #define ABM_WINDOWPOSCHANGED 9 |
| #define ABN_STATECHANGE 0 |
| #define ABN_POSCHANGED 1 |
| #define ABN_FULLSCREENAPP 2 |
| #define ABN_WINDOWARRANGE 3 |
| #define NIM_ADD 0 |
| #define NIM_MODIFY 1 |
| #define NIM_DELETE 2 |
| #if (_WIN32_IE >= 0x0500) |
| #define NOTIFYICON_VERSION 3 |
| #if (_WIN32_WINNT >= 0x600) |
| #define NOTIFYICON_VERSION_4 4 |
| #endif |
| #define NIM_SETFOCUS 3 |
| #define NIM_SETVERSION 4 |
| #define NIN_POPUPOPEN WM_USER+6 |
| #define NIN_POPUPCLOSE WM_USER+7 |
| #endif |
| #define NIF_MESSAGE 0x00000001 |
| #define NIF_ICON 0x00000002 |
| #define NIF_TIP 0x00000004 |
| #define NIF_STATE 0x00000008 |
| #if (_WIN32_IE >= 0x0500) |
| #define NIF_INFO 0x00000010 |
| #endif |
| #if (_WIN32_IE >= 0x0600) |
| #define NIF_GUID 0x00000020 |
| #endif |
| #if (_WIN32_IE >= 0x0500) |
| #define NIIF_NONE 0x00000000 |
| #define NIIF_INFO 0x00000001 |
| #define NIIF_WARNING 0x00000002 |
| #define NIIF_ERROR 0x00000003 |
| #endif |
| #if (_WIN32_IE >= 0x0600) |
| #define NIIF_ICON_MASK 0x0000000F |
| #define NIIF_NOSOUND 0x00000010 |
| #endif |
| #if (_WIN32_IE >= 0x0500) |
| #define NIS_HIDDEN 0x00000001 |
| #define NIS_SHAREDICON 0x00000002 |
| #endif |
| #define SE_ERR_FNF 2 |
| #define SE_ERR_PNF 3 |
| #define SE_ERR_ACCESSDENIED 5 |
| #define SE_ERR_OOM 8 |
| #define SE_ERR_DLLNOTFOUND 32 |
| #define SE_ERR_SHARE 26 |
| #define SE_ERR_ASSOCINCOMPLETE 27 |
| #define SE_ERR_DDETIMEOUT 28 |
| #define SE_ERR_DDEFAIL 29 |
| #define SE_ERR_DDEBUSY 30 |
| #define SE_ERR_NOASSOC 31 |
| #define FO_MOVE 1 |
| #define FO_COPY 2 |
| #define FO_DELETE 3 |
| #define FO_RENAME 4 |
| #define FOF_MULTIDESTFILES 1 |
| #define FOF_CONFIRMMOUSE 2 |
| #define FOF_SILENT 4 |
| #define FOF_RENAMEONCOLLISION 8 |
| #define FOF_NOCONFIRMATION 16 |
| #define FOF_WANTMAPPINGHANDLE 32 |
| #define FOF_ALLOWUNDO 64 |
| #define FOF_FILESONLY 128 |
| #define FOF_SIMPLEPROGRESS 256 |
| #define FOF_NOCONFIRMMKDIR 512 |
| #define FOF_NOERRORUI 1024 |
| #define FOF_NOCOPYSECURITYATTRIBS 2048 |
| #define PO_DELETE 19 |
| #define PO_RENAME 20 |
| #define PO_PORTCHANGE 32 |
| #define PO_REN_PORT 52 |
| #define SHGFI_ICON 256 |
| #define SHGFI_DISPLAYNAME 512 |
| #define SHGFI_TYPENAME 1024 |
| #define SHGFI_ATTRIBUTES 2048 |
| #define SHGFI_ICONLOCATION 4096 |
| #define SHGFI_EXETYPE 8192 |
| #define SHGFI_SYSICONINDEX 16384 |
| #define SHGFI_LINKOVERLAY 32768 |
| #define SHGFI_SELECTED 65536 |
| #define SHGFI_ATTR_SPECIFIED 131072 |
| #define SHGFI_LARGEICON 0 |
| #define SHGFI_SMALLICON 1 |
| #define SHGFI_OPENICON 2 |
| #define SHGFI_SHELLICONSIZE 4 |
| #define SHGFI_PIDL 8 |
| #define SHGFI_USEFILEATTRIBUTES 16 |
| #define SHERB_NOCONFIRMATION 1 |
| #define SHERB_NOPROGRESSUI 2 |
| #define SHERB_NOSOUND 4 |
| #ifdef UNICODE |
| #define NOTIFYICONDATA_V2_SIZE 936 |
| #define NOTIFYICONDATA_V1_SIZE 152 |
| #else |
| #define NOTIFYICONDATA_V2_SIZE 488 |
| #define NOTIFYICONDATA_V1_SIZE 88 |
| #endif |
| |
| typedef WORD FILEOP_FLAGS; |
| typedef WORD PRINTEROP_FLAGS; |
| #include <pshpack2.h> |
| typedef struct _AppBarData { |
| DWORD cbSize; |
| HWND hWnd; |
| UINT uCallbackMessage; |
| UINT uEdge; |
| RECT rc; |
| LPARAM lParam; |
| } APPBARDATA,*PAPPBARDATA; |
| DECLARE_HANDLE(HDROP); |
| |
| typedef struct _NOTIFYICONDATAA { |
| DWORD cbSize; |
| HWND hWnd; |
| UINT uID; |
| UINT uFlags; |
| UINT uCallbackMessage; |
| HICON hIcon; |
| #if _WIN32_IE >= 0x0500 |
| CHAR szTip[128]; |
| DWORD dwState; |
| DWORD dwStateMask; |
| CHAR szInfo[256]; |
| _ANONYMOUS_UNION union { |
| UINT uTimeout; |
| UINT uVersion; |
| } DUMMYUNIONNAME; |
| CHAR szInfoTitle[64]; |
| DWORD dwInfoFlags; |
| #else |
| CHAR szTip[64]; |
| #endif |
| #if _WIN32_IE >= 0x600 |
| GUID guidItem; |
| #endif |
| #if _WIN32_WINNT >= 0x600 |
| HICON hBalloonIcon; |
| #endif |
| } NOTIFYICONDATAA,*PNOTIFYICONDATAA; |
| |
| typedef struct _NOTIFYICONDATAW { |
| DWORD cbSize; |
| HWND hWnd; |
| UINT uID; |
| UINT uFlags; |
| UINT uCallbackMessage; |
| HICON hIcon; |
| #if _WIN32_IE >= 0x0500 |
| WCHAR szTip[128]; |
| DWORD dwState; |
| DWORD dwStateMask; |
| WCHAR szInfo[256]; |
| _ANONYMOUS_UNION union { |
| UINT uTimeout; |
| UINT uVersion; |
| } DUMMYUNIONNAME; |
| WCHAR szInfoTitle[64]; |
| DWORD dwInfoFlags; |
| #else |
| WCHAR szTip[64]; |
| #endif |
| #if _WIN32_IE >= 0x600 |
| GUID guidItem; |
| #endif |
| #if _WIN32_WINNT >= 0x600 |
| HICON hBalloonIcon; |
| #endif |
| } NOTIFYICONDATAW,*PNOTIFYICONDATAW; |
| |
| typedef struct _SHELLEXECUTEINFOA { |
| DWORD cbSize; |
| ULONG fMask; |
| HWND hwnd; |
| LPCSTR lpVerb; |
| LPCSTR lpFile; |
| LPCSTR lpParameters; |
| LPCSTR lpDirectory; |
| int nShow; |
| HINSTANCE hInstApp; |
| PVOID lpIDList; |
| LPCSTR lpClass; |
| HKEY hkeyClass; |
| DWORD dwHotKey; |
| HANDLE hIcon; |
| HANDLE hProcess; |
| } SHELLEXECUTEINFOA,*LPSHELLEXECUTEINFOA; |
| typedef struct _SHELLEXECUTEINFOW { |
| DWORD cbSize; |
| ULONG fMask; |
| HWND hwnd; |
| LPCWSTR lpVerb; |
| LPCWSTR lpFile; |
| LPCWSTR lpParameters; |
| LPCWSTR lpDirectory; |
| int nShow; |
| HINSTANCE hInstApp; |
| PVOID lpIDList; |
| LPCWSTR lpClass; |
| HKEY hkeyClass; |
| DWORD dwHotKey; |
| HANDLE hIcon; |
| HANDLE hProcess; |
| } SHELLEXECUTEINFOW,*LPSHELLEXECUTEINFOW; |
| typedef struct _SHFILEOPSTRUCTA { |
| HWND hwnd; |
| UINT wFunc; |
| LPCSTR pFrom; |
| LPCSTR pTo; |
| FILEOP_FLAGS fFlags; |
| BOOL fAnyOperationsAborted; |
| PVOID hNameMappings; |
| LPCSTR lpszProgressTitle; |
| } SHFILEOPSTRUCTA,*LPSHFILEOPSTRUCTA; |
| typedef struct _SHFILEOPSTRUCTW { |
| HWND hwnd; |
| UINT wFunc; |
| LPCWSTR pFrom; |
| LPCWSTR pTo; |
| FILEOP_FLAGS fFlags; |
| BOOL fAnyOperationsAborted; |
| PVOID hNameMappings; |
| LPCWSTR lpszProgressTitle; |
| } SHFILEOPSTRUCTW,*LPSHFILEOPSTRUCTW; |
| typedef struct _SHFILEINFOA { |
| HICON hIcon; |
| int iIcon; |
| DWORD dwAttributes; |
| CHAR szDisplayName[MAX_PATH]; |
| CHAR szTypeName[80]; |
| } SHFILEINFOA; |
| typedef struct _SHFILEINFOW { |
| HICON hIcon; |
| int iIcon; |
| DWORD dwAttributes; |
| WCHAR szDisplayName[MAX_PATH]; |
| WCHAR szTypeName[80]; |
| } SHFILEINFOW; |
| typedef struct _SHQUERYRBINFO { |
| DWORD cbSize; |
| __int64 i64Size; |
| __int64 i64NumItems; |
| } SHQUERYRBINFO, *LPSHQUERYRBINFO; |
| #include <poppack.h> |
| |
| LPWSTR * WINAPI CommandLineToArgvW(LPCWSTR,int*); |
| void WINAPI DragAcceptFiles(HWND,BOOL); |
| void WINAPI DragFinish(HDROP); |
| UINT WINAPI DragQueryFileA(HDROP,UINT,LPSTR,UINT); |
| UINT WINAPI DragQueryFileW(HDROP,UINT,LPWSTR,UINT); |
| BOOL WINAPI DragQueryPoint(HDROP,LPPOINT); |
| HICON WINAPI DuplicateIcon(HINSTANCE,HICON); |
| HICON WINAPI ExtractAssociatedIconA(HINSTANCE,LPCSTR,PWORD); |
| HICON WINAPI ExtractAssociatedIconW(HINSTANCE,LPCWSTR,PWORD); |
| HICON WINAPI ExtractIconA(HINSTANCE,LPCSTR,UINT); |
| HICON WINAPI ExtractIconW(HINSTANCE,LPCWSTR,UINT); |
| UINT WINAPI ExtractIconExA(LPCSTR,int,HICON*,HICON*,UINT); |
| UINT WINAPI ExtractIconExW(LPCWSTR,int,HICON*,HICON*,UINT); |
| HINSTANCE WINAPI FindExecutableA(LPCSTR,LPCSTR,LPSTR); |
| HINSTANCE WINAPI FindExecutableW(LPCWSTR,LPCWSTR,LPWSTR); |
| UINT WINAPI SHAppBarMessage(DWORD,PAPPBARDATA); |
| BOOL WINAPI Shell_NotifyIconA(DWORD,PNOTIFYICONDATAA); |
| BOOL WINAPI Shell_NotifyIconW(DWORD,PNOTIFYICONDATAW); |
| int WINAPI ShellAboutA(HWND,LPCSTR,LPCSTR,HICON); |
| int WINAPI ShellAboutW(HWND,LPCWSTR,LPCWSTR,HICON); |
| HINSTANCE WINAPI ShellExecuteA(HWND,LPCSTR,LPCSTR,LPCSTR,LPCSTR,INT); |
| HINSTANCE WINAPI ShellExecuteW(HWND,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR,INT); |
| BOOL WINAPI ShellExecuteExA(LPSHELLEXECUTEINFOA); |
| BOOL WINAPI ShellExecuteExW(LPSHELLEXECUTEINFOW); |
| int WINAPI SHFileOperationA(LPSHFILEOPSTRUCTA); |
| int WINAPI SHFileOperationW(LPSHFILEOPSTRUCTW); |
| void WINAPI SHFreeNameMappings(HANDLE); |
| DWORD WINAPI SHGetFileInfoA(LPCSTR,DWORD,SHFILEINFOA*,UINT,UINT); |
| DWORD WINAPI SHGetFileInfoW(LPCWSTR,DWORD,SHFILEINFOW*,UINT,UINT); |
| HRESULT WINAPI SHQueryRecycleBinA(LPCSTR, LPSHQUERYRBINFO); |
| HRESULT WINAPI SHQueryRecycleBinW(LPCWSTR, LPSHQUERYRBINFO); |
| HRESULT WINAPI SHEmptyRecycleBinA(HWND,LPCSTR,DWORD); |
| HRESULT WINAPI SHEmptyRecycleBinW(HWND,LPCWSTR,DWORD); |
| |
| #ifdef UNICODE |
| typedef NOTIFYICONDATAW NOTIFYICONDATA,*PNOTIFYICONDATA; |
| typedef SHELLEXECUTEINFOW SHELLEXECUTEINFO,*LPSHELLEXECUTEINFO; |
| typedef SHFILEOPSTRUCTW SHFILEOPSTRUCT,*LPSHFILEOPSTRUCT; |
| typedef SHFILEINFOW SHFILEINFO; |
| #define DragQueryFile DragQueryFileW |
| #define ExtractAssociatedIcon ExtractAssociatedIconW |
| #define ExtractIcon ExtractIconW |
| #define ExtractIconEx ExtractIconExW |
| #define FindExecutable FindExecutableW |
| #define Shell_NotifyIcon Shell_NotifyIconW |
| #define ShellAbout ShellAboutW |
| #define ShellExecute ShellExecuteW |
| #define ShellExecuteEx ShellExecuteExW |
| #define SHFileOperation SHFileOperationW |
| #define SHGetFileInfo SHGetFileInfoW |
| #define SHQueryRecycleBin SHQueryRecycleBinW |
| #define SHEmptyRecycleBin SHEmptyRecycleBinW |
| |
| #else |
| typedef NOTIFYICONDATAA NOTIFYICONDATA,*PNOTIFYICONDATA; |
| typedef SHELLEXECUTEINFOA SHELLEXECUTEINFO,*LPSHELLEXECUTEINFO; |
| typedef SHFILEOPSTRUCTA SHFILEOPSTRUCT,*LPSHFILEOPSTRUCT; |
| typedef SHFILEINFOA SHFILEINFO; |
| #define DragQueryFile DragQueryFileA |
| #define ExtractAssociatedIcon ExtractAssociatedIconA |
| #define ExtractIcon ExtractIconA |
| #define ExtractIconEx ExtractIconExA |
| #define FindExecutable FindExecutableA |
| #define Shell_NotifyIcon Shell_NotifyIconA |
| #define ShellAbout ShellAboutA |
| #define ShellExecute ShellExecuteA |
| #define ShellExecuteEx ShellExecuteExA |
| #define SHFileOperation SHFileOperationA |
| #define SHGetFileInfo SHGetFileInfoA |
| #define SHQueryRecycleBin SHQueryRecycleBinA |
| #define SHEmptyRecycleBin SHEmptyRecycleBinA |
| #endif |
| #ifdef __cplusplus |
| } |
| #endif |
| #endif |