*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#ifndef __WINE_SHELLAPI_H
void WINAPI DragFinish(HDROP h);
BOOL WINAPI DragQueryPoint(HDROP hDrop, POINT *p);
-#define NIF_MESSAGE 0x00000001
-#define NIF_ICON 0x00000002
-#define NIF_TIP 0x00000004
-
-#define NIM_ADD 0x00000000
-#define NIM_MODIFY 0x00000001
-#define NIM_DELETE 0x00000002
-
/******************************************
#define SHGFI_SHELLICONSIZE 0x000000004 /* get shell size icon */
#define SHGFI_PIDL 0x000000008 /* pszPath is a pidl */
#define SHGFI_USEFILEATTRIBUTES 0x000000010 /* use passed dwFileAttribute */
-#define SHGFI_UNKNOWN1 0x000000020
-#define SHGFI_UNKNOWN2 0x000000040
-#define SHGFI_UNKNOWN3 0x000000080
+#define SHGFI_ADDOVERLAYS 0x000000020
+#define SHGFI_OVERLAYINDEX 0x000000040
#define SHGFI_ICON 0x000000100 /* get icon */
#define SHGFI_DISPLAYNAME 0x000000200 /* get display name */
#define SHGFI_TYPENAME 0x000000400 /* get type name */
DECL_WINELIB_TYPE_AW(SHFILEINFO)
-DWORD WINAPI SHGetFileInfoA(LPCSTR,DWORD,SHFILEINFOA*,UINT,UINT);
-DWORD WINAPI SHGetFileInfoW(LPCWSTR,DWORD,SHFILEINFOW*,UINT,UINT);
+DWORD_PTR WINAPI SHGetFileInfoA(LPCSTR,DWORD,SHFILEINFOA*,UINT,UINT);
+DWORD_PTR WINAPI SHGetFileInfoW(LPCWSTR,DWORD,SHFILEINFOW*,UINT,UINT);
#define SHGetFileInfo WINELIB_NAME_AW(SHGetFileInfo)
/******************************************
#define FOF_NOCONFIRMMKDIR 0x0200
#define FOF_NOERRORUI 0x0400
#define FOF_NOCOPYSECURITYATTRIBS 0x0800
+#define FOF_NORECURSION 0x1000 /* don't do recursion into directories */
+#define FOF_NO_CONNECTED_ELEMENTS 0x2000 /* don't do connected files */
+#define FOF_WANTNUKEWARNING 0x4000 /* during delete operation, warn if delete instead
+ of recycling (even if FOF_NOCONFIRMATION) */
+#define FOF_NORECURSEREPARSE 0x8000 /* don't do recursion into reparse points */
typedef WORD FILEOP_FLAGS;
#define PO_DELETE 0x0013
#define PO_RENAME 0x0014
#define PO_PORTCHANGE 0x0020
+#define PO_REN_PORT (PO_RENAME | PO_PORTCHANGE)
typedef WORD PRINTEROP_FLAGS;
int WINAPI SHFileOperationW (LPSHFILEOPSTRUCTW lpFileOp);
#define SHFileOperation WINELIB_NAME_AW(SHFileOperation)
+typedef struct _SHNAMEMAPPINGA
+{
+ LPSTR pszOldPath;
+ LPSTR pszNewPath;
+ int cchOldPath;
+ int cchNewPath;
+} SHNAMEMAPPINGA, *LPSHNAMEMAPPINGA;
+
+typedef struct _SHNAMEMAPPINGW
+{
+ LPWSTR pszOldPath;
+ LPWSTR pszNewPath;
+ int cchOldPath;
+ int cchNewPath;
+} SHNAMEMAPPINGW, *LPSHNAMEMAPPINGW;
+
+DECL_WINELIB_TYPE_AW(SHNAMEMAPPING)
+DECL_WINELIB_TYPE_AW(LPSHNAMEMAPPING)
+
+void WINAPI SHFreeNameMappings(HANDLE hNameMappings);
+
/******************************************
* ShellExecute
*/
#define SEE_MASK_NO_CONSOLE 0x00008000
#define SEE_MASK_ASYNCOK 0x00100000
#define SEE_MASK_HMONITOR 0x00200000
+#define SEE_MASK_NOZONECHECKS 0x00800000
+#define SEE_MASK_NOQUERYCLASSSTORE 0x01000000
+#define SEE_MASK_WAITFORINPUTIDLE 0x02000000
+#define SEE_MASK_FLAG_LOG_USAGE 0x04000000
typedef struct _SHELLEXECUTEINFOA
{ DWORD cbSize;
/******************************************
* Tray Notification
*/
+/* notifyicondata.uFlags values*/
+#define NIF_MESSAGE 0x00000001
+#define NIF_ICON 0x00000002
+#define NIF_TIP 0x00000004
+#define NIF_STATE 0x00000008
+#define NIF_INFO 0x00000010
+#define NIF_GUID 0x00000020
+#define NIF_REALTIME 0x00000040
+#define NIF_SHOWTIP 0x00000080
+
+/* notifyicondata.dwState values */
+#define NIS_HIDDEN 0x00000001
+#define NIS_SHAREDICON 0x00000002
+
+/* notifyicondata.dwInfoFlags values */
+#define NIIF_NONE 0x00000000
+#define NIIF_INFO 0x00000001
+#define NIIF_WARNING 0x00000002
+#define NIIF_ERROR 0x00000003
+#define NIIF_USER 0x00000004
+#define NIIF_ICONMASK 0x0000000f
+#define NIIF_NOSOUND 0x00000010
+#define NIIF_LARGEICON 0x00000020
+
+/* dwMessage values */
+#define NIM_ADD 0x00000000
+#define NIM_MODIFY 0x00000001
+#define NIM_DELETE 0x00000002
+#define NIM_SETFOCUS 0x00000003
+#define NIM_SETVERSION 0x00000004
+
+#define NOTIFY_VERSION 3 /* supported by Windows 2000 and later */
+#define NOTIFY_VERSION_4 4 /* supported by Windows Vista */
+
+/* callback message lParam values */
+#define NIN_SELECT (WM_USER+0)
+#define NINF_KEY 1
+#define NIN_KEYSELECT (NIN_SELECT|NINF_KEY) /* WM_USER+1 */
+#define NIN_BALOONSHOW (WM_USER+2)
+#define NIN_BALOONHIDE (WM_USER+3)
+#define NIN_BALOONTIMEOUT (WM_USER+4)
+#define NIN_BALOONCLICK (WM_USER+5)
+#define NIN_POPUPOPEN (WM_USER+6)
+#define NIN_POPUPCLOSE (WM_USER+7)
+
typedef struct _NOTIFYICONDATAA
{ DWORD cbSize;
HWND hWnd;
UINT uFlags;
UINT uCallbackMessage;
HICON hIcon;
- CHAR szTip[64];
+ CHAR szTip[128];
+ DWORD dwState;
+ DWORD dwStateMask;
+ CHAR szInfo[256];
+ union {
+ UINT uTimeout;
+ UINT uVersion;
+ } DUMMYUNIONNAME;
+ CHAR szInfoTitle[64];
+ DWORD dwInfoFlags;
+ GUID guidItem;
+ HICON hBalloonIcon;
} NOTIFYICONDATAA, *PNOTIFYICONDATAA;
typedef struct _NOTIFYICONDATAW
UINT uFlags;
UINT uCallbackMessage;
HICON hIcon;
- WCHAR szTip[64];
+ WCHAR szTip[128];
+ DWORD dwState;
+ DWORD dwStateMask;
+ WCHAR szInfo[256];
+ union {
+ UINT uTimeout;
+ UINT uVersion;
+ } DUMMYUNIONNAME;
+ WCHAR szInfoTitle[64];
+ DWORD dwInfoFlags;
+ GUID guidItem;
+ HICON hBalloonIcon;
} NOTIFYICONDATAW, *PNOTIFYICONDATAW;
DECL_WINELIB_TYPE_AW(NOTIFYICONDATA)
#define Shell_NotifyIcon WINELIB_NAME_AW(Shell_NotifyIcon)
+/* pre IE 5.0 */
+#define NOTIFYICONDATAA_V1_SIZE FIELD_OFFSET(NOTIFYICONDATAA, szTip[64])
+#define NOTIFYICONDATAW_V1_SIZE FIELD_OFFSET(NOTIFYICONDATAW, szTip[64])
+
+/* pre Window XP */
+#define NOTIFYICONDATAA_V2_SIZE FIELD_OFFSET(NOTIFYICONDATAA, guidItem)
+#define NOTIFYICONDATAW_V2_SIZE FIELD_OFFSET(NOTIFYICONDATAW, guidItem)
+
+/* pre Window Vista */
+#define NOTIFYICONDATAA_V3_SIZE FIELD_OFFSET(NOTIFYICONDATAA, hBalloonIcon)
+#define NOTIFYICONDATAW_V3_SIZE FIELD_OFFSET(NOTIFYICONDATAW, hBalloonIcon)
+
+
+/******************************************
+ * Links
+ */
+
+#define SHGNLI_PIDL 0x01
+#define SHGNLI_PREFIXNAME 0x02
+#define SHGNLI_NOUNIQUE 0x04
+#define SHGNLI_NOLNK 0x08
+
+BOOL WINAPI SHGetNewLinkInfoA(LPCSTR,LPCSTR,LPSTR,BOOL*,UINT);
+BOOL WINAPI SHGetNewLinkInfoW(LPCWSTR,LPCWSTR,LPWSTR,BOOL*,UINT);
+#define SHGetNewLinkInfo WINELIB_NAME_AW(SHGetNewLinkInfo)
+
+/******************************************
+ * Recycle bin
+ */
+
+typedef struct _SHQUERYRBINFO
+{
+ DWORD cbSize;
+ DWORDLONG i64Size;
+ DWORDLONG i64NumItems;
+} SHQUERYRBINFO, *LPSHQUERYRBINFO;
+
+HRESULT WINAPI SHEmptyRecycleBinA(HWND,LPCSTR,DWORD);
+HRESULT WINAPI SHEmptyRecycleBinW(HWND,LPCWSTR,DWORD);
+#define SHEmptyRecycleBin WINELIB_NAME_AW(SHEmptyRecycleBin)
+HRESULT WINAPI SHQueryRecycleBinA(LPCSTR,LPSHQUERYRBINFO);
+HRESULT WINAPI SHQueryRecycleBinW(LPCWSTR,LPSHQUERYRBINFO);
+#define SHQueryRecycleBin WINELIB_NAME_AW(SHQueryRecycleBin)
+
/******************************************
* Misc
*/
UINT WINAPI ExtractIconExA(LPCSTR,INT,HICON*,HICON*,UINT);
UINT WINAPI ExtractIconExW(LPCWSTR,INT,HICON*,HICON*,UINT);
#define ExtractIconEx WINELIB_NAME_AW(ExtractIconEx)
-UINT WINAPI ExtractIconExAW(LPCVOID,INT,HICON*,HICON*,UINT);
HINSTANCE WINAPI FindExecutableA(LPCSTR,LPCSTR,LPSTR);
HINSTANCE WINAPI FindExecutableW(LPCWSTR,LPCWSTR,LPWSTR);
#define FindExecutable WINELIB_NAME_AW(FindExecutable)
BOOL WINAPI ShellAboutA(HWND,LPCSTR,LPCSTR,HICON);
BOOL WINAPI ShellAboutW(HWND,LPCWSTR,LPCWSTR,HICON);
#define ShellAbout WINELIB_NAME_AW(ShellAbout)
+int WINAPIV ShellMessageBoxA(HINSTANCE,HWND,LPCSTR,LPCSTR,UINT,...);
+int WINAPIV ShellMessageBoxW(HINSTANCE,HWND,LPCWSTR,LPCWSTR,UINT,...);
+#define ShellMessageBox WINELIB_NAME_AW(ShellMessageBox)
+DWORD WINAPI DoEnvironmentSubstA(LPSTR, UINT);
+DWORD WINAPI DoEnvironmentSubstW(LPWSTR, UINT);
+#define DoEnvironmentSubst WINELIB_NAME_AW(DoEnvironmentSubst)
+
#ifdef __cplusplus
} /* extern "C" */