| 1 | #ifndef _WINE_SHELLAPI_H | 
|---|
| 2 | #define _WINE_SHELLAPI_H | 
|---|
| 3 |  | 
|---|
| 4 | #include "windef.h" | 
|---|
| 5 |  | 
|---|
| 6 | #pragma pack(1) | 
|---|
| 7 |  | 
|---|
| 8 | /****************************************** | 
|---|
| 9 | * DragObject | 
|---|
| 10 | */ | 
|---|
| 11 |  | 
|---|
| 12 | typedef struct _DRAGINFOA | 
|---|
| 13 | {       UINT uSize; | 
|---|
| 14 | POINT pt; | 
|---|
| 15 | BOOL fNC; | 
|---|
| 16 | LPSTR   lpFileList; | 
|---|
| 17 | DWORD grfKeyState; | 
|---|
| 18 | } DRAGINFOA, * LPDRAGINFOA; | 
|---|
| 19 |  | 
|---|
| 20 | typedef struct _DRAGINFOW | 
|---|
| 21 | {       UINT uSize; | 
|---|
| 22 | POINT pt; | 
|---|
| 23 | BOOL fNC; | 
|---|
| 24 | LPWSTR  lpFileList; | 
|---|
| 25 | DWORD grfKeyState; | 
|---|
| 26 | } DRAGINFOW, LPDRAGINFOW; | 
|---|
| 27 |  | 
|---|
| 28 | void    WINAPI DragAcceptFiles(HWND hWnd, BOOL b); | 
|---|
| 29 | void    WINAPI DragAcceptFiles16(HWND16 hWnd, BOOL16 b); | 
|---|
| 30 |  | 
|---|
| 31 | UINT16  WINAPI DragQueryFile16(HDROP16 hDrop, WORD wFile, LPSTR lpszFile, WORD wLength); | 
|---|
| 32 | UINT    WINAPI DragQueryFileA(HDROP hDrop, UINT lFile, LPSTR lpszFile, UINT lLength); | 
|---|
| 33 | UINT    WINAPI DragQueryFileW(HDROP hDrop, UINT lFile, LPWSTR lpszFile, UINT lLength); | 
|---|
| 34 | #define     DragQueryFile WINELIB_NAME_AW(DragQueryFile) | 
|---|
| 35 |  | 
|---|
| 36 | void    WINAPI DragFinish16(HDROP16 h); | 
|---|
| 37 | void    WINAPI DragFinish(HDROP h); | 
|---|
| 38 |  | 
|---|
| 39 | BOOL16  WINAPI DragQueryPoint16(HDROP16 hDrop, POINT16 *p); | 
|---|
| 40 | BOOL    WINAPI DragQueryPoint(HDROP hDrop, POINT *p); | 
|---|
| 41 |  | 
|---|
| 42 | #define NIF_MESSAGE             0x00000001 | 
|---|
| 43 | #define NIF_ICON                0x00000002 | 
|---|
| 44 | #define NIF_TIP                 0x00000004 | 
|---|
| 45 |  | 
|---|
| 46 | #define NIM_ADD                 0x00000000 | 
|---|
| 47 | #define NIM_MODIFY              0x00000001 | 
|---|
| 48 | #define NIM_DELETE              0x00000002 | 
|---|
| 49 |  | 
|---|
| 50 |  | 
|---|
| 51 |  | 
|---|
| 52 | /****************************************** | 
|---|
| 53 | * Application Bar | 
|---|
| 54 | */ | 
|---|
| 55 | #define ABM_NEW                 0x00000000 | 
|---|
| 56 | #define ABM_REMOVE              0x00000001 | 
|---|
| 57 | #define ABM_QUERYPOS            0x00000002 | 
|---|
| 58 | #define ABM_SETPOS              0x00000003 | 
|---|
| 59 | #define ABM_GETSTATE            0x00000004 | 
|---|
| 60 | #define ABM_GETTASKBARPOS       0x00000005 | 
|---|
| 61 | #define ABM_ACTIVATE            0x00000006 | 
|---|
| 62 | #define ABM_GETAUTOHIDEBAR      0x00000007 | 
|---|
| 63 | #define ABM_SETAUTOHIDEBAR      0x00000008 | 
|---|
| 64 | #define ABM_WINDOWPOSCHANGED    0x00000009 | 
|---|
| 65 |  | 
|---|
| 66 | #define ABN_STATECHANGE         0x00000000 | 
|---|
| 67 | #define ABN_POSCHANGED          0x00000001 | 
|---|
| 68 | #define ABN_FULLSCREENAPP       0x00000002 | 
|---|
| 69 | #define ABN_WINDOWARRANGE       0x00000003 | 
|---|
| 70 |  | 
|---|
| 71 | #define ABS_AUTOHIDE            0x00000001 | 
|---|
| 72 | #define ABS_ALWAYSONTOP         0x00000002 | 
|---|
| 73 |  | 
|---|
| 74 | #define ABE_LEFT                0 | 
|---|
| 75 | #define ABE_TOP                 1 | 
|---|
| 76 | #define ABE_RIGHT               2 | 
|---|
| 77 | #define ABE_BOTTOM              3 | 
|---|
| 78 |  | 
|---|
| 79 | typedef struct _AppBarData | 
|---|
| 80 | {       DWORD   cbSize; | 
|---|
| 81 | HWND    hWnd; | 
|---|
| 82 | UINT    uCallbackMessage; | 
|---|
| 83 | UINT    uEdge; | 
|---|
| 84 | RECT    rc; | 
|---|
| 85 | LPARAM  lParam; | 
|---|
| 86 | } APPBARDATA, *PAPPBARDATA; | 
|---|
| 87 |  | 
|---|
| 88 |  | 
|---|
| 89 | /****************************************** | 
|---|
| 90 | * SHGetFileInfo | 
|---|
| 91 | */ | 
|---|
| 92 |  | 
|---|
| 93 | #define SHGFI_LARGEICON         0x000000000     /* get large icon */ | 
|---|
| 94 | #define SHGFI_SMALLICON         0x000000001     /* get small icon */ | 
|---|
| 95 | #define SHGFI_OPENICON          0x000000002     /* get open icon */ | 
|---|
| 96 | #define SHGFI_SHELLICONSIZE     0x000000004     /* get shell size icon */ | 
|---|
| 97 | #define SHGFI_PIDL              0x000000008     /* pszPath is a pidl */ | 
|---|
| 98 | #define SHGFI_USEFILEATTRIBUTES 0x000000010     /* use passed dwFileAttribute */ | 
|---|
| 99 | #define SHGFI_UNKNOWN1          0x000000020 | 
|---|
| 100 | #define SHGFI_UNKNOWN2          0x000000040 | 
|---|
| 101 | #define SHGFI_UNKNOWN3          0x000000080 | 
|---|
| 102 | #define SHGFI_ICON              0x000000100     /* get icon */ | 
|---|
| 103 | #define SHGFI_DISPLAYNAME       0x000000200     /* get display name */ | 
|---|
| 104 | #define SHGFI_TYPENAME          0x000000400     /* get type name */ | 
|---|
| 105 | #define SHGFI_ATTRIBUTES        0x000000800     /* get attributes */ | 
|---|
| 106 | #define SHGFI_ICONLOCATION      0x000001000     /* get icon location */ | 
|---|
| 107 | #define SHGFI_EXETYPE           0x000002000     /* return exe type */ | 
|---|
| 108 | #define SHGFI_SYSICONINDEX      0x000004000     /* get system icon index */ | 
|---|
| 109 | #define SHGFI_LINKOVERLAY       0x000008000     /* put a link overlay on icon */ | 
|---|
| 110 | #define SHGFI_SELECTED          0x000010000     /* show icon in selected state */ | 
|---|
| 111 | #define SHGFI_ATTR_SPECIFIED    0x000020000     /* get only specified attributes */ | 
|---|
| 112 |  | 
|---|
| 113 | typedef struct tagSHFILEINFOA | 
|---|
| 114 | {       HICON   hIcon;                  /* icon */ | 
|---|
| 115 | int     iIcon;                  /* icon index */ | 
|---|
| 116 | DWORD   dwAttributes;           /* SFGAO_ flags */ | 
|---|
| 117 | CHAR    szDisplayName[MAX_PATH];/* display name (or path) */ | 
|---|
| 118 | CHAR    szTypeName[80];         /* type name */ | 
|---|
| 119 | } SHFILEINFOA; | 
|---|
| 120 |  | 
|---|
| 121 | typedef struct tagSHFILEINFOW | 
|---|
| 122 | {       HICON   hIcon;                  /* icon */ | 
|---|
| 123 | int     iIcon;                  /* icon index */ | 
|---|
| 124 | DWORD   dwAttributes;           /* SFGAO_ flags */ | 
|---|
| 125 | WCHAR   szDisplayName[MAX_PATH];/* display name (or path) */ | 
|---|
| 126 | WCHAR   szTypeName[80];         /* type name */ | 
|---|
| 127 | } SHFILEINFOW; | 
|---|
| 128 |  | 
|---|
| 129 | DECL_WINELIB_TYPE_AW(SHFILEINFO) | 
|---|
| 130 |  | 
|---|
| 131 | DWORD   WINAPI SHGetFileInfoA(LPCSTR,DWORD,SHFILEINFOA*,UINT,UINT); | 
|---|
| 132 | DWORD   WINAPI SHGetFileInfoW(LPCWSTR,DWORD,SHFILEINFOW*,UINT,UINT); | 
|---|
| 133 | #define SHGetFileInfo WINELIB_NAME_AW(SHGetFileInfo) | 
|---|
| 134 |  | 
|---|
| 135 | /****************************************** | 
|---|
| 136 | * SHSetFileInfo | 
|---|
| 137 | */ | 
|---|
| 138 |  | 
|---|
| 139 | /****************************************** | 
|---|
| 140 | * SHFileOperation | 
|---|
| 141 | */ | 
|---|
| 142 | #define FO_MOVE           0x0001 | 
|---|
| 143 | #define FO_COPY           0x0002 | 
|---|
| 144 | #define FO_DELETE         0x0003 | 
|---|
| 145 | #define FO_RENAME         0x0004 | 
|---|
| 146 |  | 
|---|
| 147 | #define FOF_MULTIDESTFILES         0x0001 | 
|---|
| 148 | #define FOF_CONFIRMMOUSE           0x0002 | 
|---|
| 149 | #define FOF_SILENT                 0x0004 | 
|---|
| 150 | #define FOF_RENAMEONCOLLISION      0x0008 | 
|---|
| 151 | #define FOF_NOCONFIRMATION         0x0010 | 
|---|
| 152 | #define FOF_WANTMAPPINGHANDLE      0x0020 | 
|---|
| 153 | #define FOF_ALLOWUNDO              0x0040 | 
|---|
| 154 | #define FOF_FILESONLY              0x0080 | 
|---|
| 155 | #define FOF_SIMPLEPROGRESS         0x0100 | 
|---|
| 156 | #define FOF_NOCONFIRMMKDIR         0x0200 | 
|---|
| 157 | #define FOF_NOERRORUI              0x0400 | 
|---|
| 158 | #define FOF_NOCOPYSECURITYATTRIBS  0x0800 | 
|---|
| 159 |  | 
|---|
| 160 | typedef WORD FILEOP_FLAGS; | 
|---|
| 161 |  | 
|---|
| 162 | #define PO_DELETE       0x0013 | 
|---|
| 163 | #define PO_RENAME       0x0014 | 
|---|
| 164 | #define PO_PORTCHANGE   0x0020 | 
|---|
| 165 |  | 
|---|
| 166 | typedef WORD PRINTEROP_FLAGS; | 
|---|
| 167 |  | 
|---|
| 168 | typedef struct _SHNAMEMAPPINGW { | 
|---|
| 169 | LPWSTR pszOldPath; | 
|---|
| 170 | LPWSTR pszNewPath; | 
|---|
| 171 | int   cchOldPath; | 
|---|
| 172 | int   cchNewPath; | 
|---|
| 173 | } SHNAMEMAPPINGW, *LPSHNAMEMAPPINGW; | 
|---|
| 174 |  | 
|---|
| 175 | typedef struct _SHFILEOPSTRUCTA | 
|---|
| 176 | { HWND          hwnd; | 
|---|
| 177 | UINT          wFunc; | 
|---|
| 178 | LPCSTR          pFrom; | 
|---|
| 179 | LPCSTR          pTo; | 
|---|
| 180 | FILEOP_FLAGS    fFlags; | 
|---|
| 181 | BOOL          fAnyOperationsAborted; | 
|---|
| 182 | LPVOID          hNameMappings; | 
|---|
| 183 | LPCSTR          lpszProgressTitle; | 
|---|
| 184 | } SHFILEOPSTRUCTA, *LPSHFILEOPSTRUCTA; | 
|---|
| 185 |  | 
|---|
| 186 | typedef struct _SHFILEOPSTRUCTW | 
|---|
| 187 | { HWND          hwnd; | 
|---|
| 188 | UINT          wFunc; | 
|---|
| 189 | LPCWSTR         pFrom; | 
|---|
| 190 | LPCWSTR         pTo; | 
|---|
| 191 | FILEOP_FLAGS    fFlags; | 
|---|
| 192 | BOOL          fAnyOperationsAborted; | 
|---|
| 193 | LPVOID          hNameMappings; | 
|---|
| 194 | LPCWSTR         lpszProgressTitle; | 
|---|
| 195 | } SHFILEOPSTRUCTW, *LPSHFILEOPSTRUCTW; | 
|---|
| 196 |  | 
|---|
| 197 | #define  SHFILEOPSTRUCT WINELIB_NAME_AW(SHFILEOPSTRUCT) | 
|---|
| 198 | #define  LPSHFILEOPSTRUCT WINELIB_NAME_AW(LPSHFILEOPSTRUCT) | 
|---|
| 199 |  | 
|---|
| 200 | DWORD   WINAPI SHFileOperationA (LPSHFILEOPSTRUCTA lpFileOp); | 
|---|
| 201 | DWORD   WINAPI SHFileOperationW (LPSHFILEOPSTRUCTW lpFileOp); | 
|---|
| 202 | #define  SHFileOperation WINELIB_NAME_AW(SHFileOperation) | 
|---|
| 203 |  | 
|---|
| 204 |  | 
|---|
| 205 | /************************************* | 
|---|
| 206 | * code that is shared with shlobj.h * | 
|---|
| 207 | *************************************/ | 
|---|
| 208 |  | 
|---|
| 209 | /****************************************** | 
|---|
| 210 | * ShellExecute | 
|---|
| 211 | */ | 
|---|
| 212 | #define SE_ERR_SHARE            26 | 
|---|
| 213 | #define SE_ERR_ASSOCINCOMPLETE  27 | 
|---|
| 214 | #define SE_ERR_DDETIMEOUT       28 | 
|---|
| 215 | #define SE_ERR_DDEFAIL          29 | 
|---|
| 216 | #define SE_ERR_DDEBUSY          30 | 
|---|
| 217 | #define SE_ERR_NOASSOC          31 | 
|---|
| 218 |  | 
|---|
| 219 | HINSTANCE       WINAPI ShellExecuteA(HWND,LPCSTR,LPCSTR,LPCSTR,LPCSTR,INT); | 
|---|
| 220 | HINSTANCE       WINAPI ShellExecuteW(HWND,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR,INT); | 
|---|
| 221 | #define ShellExecute WINELIB_NAME_AW(ShellExecute) | 
|---|
| 222 |  | 
|---|
| 223 | /****************************************** | 
|---|
| 224 | * Tray Notification | 
|---|
| 225 | */ | 
|---|
| 226 | typedef struct _NOTIFYICONDATAA | 
|---|
| 227 | {       DWORD cbSize; | 
|---|
| 228 | HWND hWnd; | 
|---|
| 229 | UINT uID; | 
|---|
| 230 | UINT uFlags; | 
|---|
| 231 | UINT uCallbackMessage; | 
|---|
| 232 | HICON hIcon; | 
|---|
| 233 | CHAR szTip[64]; | 
|---|
| 234 | } NOTIFYICONDATAA, *PNOTIFYICONDATAA; | 
|---|
| 235 |  | 
|---|
| 236 | typedef struct _NOTIFYICONDATAW | 
|---|
| 237 | {       DWORD cbSize; | 
|---|
| 238 | HWND hWnd; | 
|---|
| 239 | UINT uID; | 
|---|
| 240 | UINT uFlags; | 
|---|
| 241 | UINT uCallbackMessage; | 
|---|
| 242 | HICON hIcon; | 
|---|
| 243 | WCHAR szTip[64]; | 
|---|
| 244 | } NOTIFYICONDATAW, *PNOTIFYICONDATAW; | 
|---|
| 245 |  | 
|---|
| 246 | DECL_WINELIB_TYPE_AW(NOTIFYICONDATA) | 
|---|
| 247 |  | 
|---|
| 248 | BOOL WINAPI Shell_NotifyIconA(DWORD dwMessage, PNOTIFYICONDATAA lpData); | 
|---|
| 249 | BOOL WINAPI Shell_NotifyIconW(DWORD dwMessage, PNOTIFYICONDATAW lpData); | 
|---|
| 250 | #define Shell_NotifyIcon WINELIB_NAME_AW(Shell_NotifyIcon) | 
|---|
| 251 |  | 
|---|
| 252 | #define SEE_MASK_CLASSNAME      0x00000001 | 
|---|
| 253 | #define SEE_MASK_CLASSKEY       0x00000003 | 
|---|
| 254 | #define SEE_MASK_IDLIST         0x00000004 | 
|---|
| 255 | #define SEE_MASK_INVOKEIDLIST   0x0000000c | 
|---|
| 256 | #define SEE_MASK_ICON           0x00000010 | 
|---|
| 257 | #define SEE_MASK_HOTKEY         0x00000020 | 
|---|
| 258 | #define SEE_MASK_NOCLOSEPROCESS 0x00000040 | 
|---|
| 259 | #define SEE_MASK_CONNECTNETDRV  0x00000080 | 
|---|
| 260 | #define SEE_MASK_FLAG_DDEWAIT   0x00000100 | 
|---|
| 261 | #define SEE_MASK_DOENVSUBST     0x00000200 | 
|---|
| 262 | #define SEE_MASK_FLAG_NO_UI     0x00000400 | 
|---|
| 263 | #define SEE_MASK_UNICODE        0x00004000 | 
|---|
| 264 | #define SEE_MASK_NO_CONSOLE     0x00008000 | 
|---|
| 265 | #define SEE_MASK_ASYNCOK        0x00100000 | 
|---|
| 266 |  | 
|---|
| 267 |  | 
|---|
| 268 | /****************************************** | 
|---|
| 269 | * Misc | 
|---|
| 270 | */ | 
|---|
| 271 |  | 
|---|
| 272 | HICON   WINAPI ExtractIconA(HINSTANCE,LPCSTR,UINT); | 
|---|
| 273 | HICON   WINAPI ExtractIconW(HINSTANCE,LPCWSTR,UINT); | 
|---|
| 274 |  | 
|---|
| 275 | HICON     WINAPI ExtractAssociatedIconA(HINSTANCE,LPSTR,LPWORD); | 
|---|
| 276 | HICON     WINAPI ExtractAssociatedIconW(HINSTANCE,LPWSTR,LPWORD); | 
|---|
| 277 | UINT WINAPI ExtractIconExA( LPCSTR, INT, HICON *, HICON *, UINT ); | 
|---|
| 278 | UINT WINAPI ExtractIconExW( LPCWSTR, INT, HICON *, HICON *, UINT ); | 
|---|
| 279 | #define     ExtractIconEx WINELIB_NAME_AW(ExtractIconEx) | 
|---|
| 280 | UINT WINAPI ExtractIconExAW(LPCVOID, INT, HICON *, HICON *, UINT ); | 
|---|
| 281 | HINSTANCE WINAPI FindExecutableA(LPCSTR,LPCSTR,LPSTR); | 
|---|
| 282 | HINSTANCE WINAPI FindExecutableW(LPCWSTR,LPCWSTR,LPWSTR); | 
|---|
| 283 | #define FindExecutable WINELIB_NAME_AW(FindExecutable) | 
|---|
| 284 |  | 
|---|
| 285 | BOOL WINAPI ShellAboutA(HWND,LPCSTR,LPCSTR,HICON); | 
|---|
| 286 | BOOL WINAPI ShellAboutW(HWND,LPCWSTR,LPCWSTR,HICON); | 
|---|
| 287 | #define ShellAbout WINELIB_NAME_AW(ShellAbout) | 
|---|
| 288 |  | 
|---|
| 289 | #pragma pack(4) | 
|---|
| 290 |  | 
|---|
| 291 | #endif /* _WINE_SHELLAPI_H */ | 
|---|