comctl32: Cast-qual warnings fix.
[wine] / include / shellapi.h
index ae229e9..46083e7 100644 (file)
@@ -13,7 +13,7 @@
  *
  * 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
@@ -57,14 +57,6 @@ UINT WINAPI DragQueryFileW(HDROP hDrop, UINT lFile, LPWSTR lpszFile, UINT lLengt
 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
-
 
 
 /******************************************
@@ -115,9 +107,8 @@ UINT    WINAPI SHAppBarMessage(DWORD,PAPPBARDATA);
 #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 */
@@ -147,8 +138,8 @@ typedef struct tagSHFILEINFOW
 
 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)
 
 /******************************************
@@ -175,12 +166,18 @@ DWORD     WINAPI SHGetFileInfoW(LPCWSTR,DWORD,SHFILEINFOW*,UINT,UINT);
 #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;
 
@@ -213,6 +210,27 @@ int        WINAPI SHFileOperationA (LPSHFILEOPSTRUCTA lpFileOp);
 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
  */
@@ -254,6 +272,10 @@ HINSTANCE  WINAPI ShellExecuteW(HWND,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR,INT);
 #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;
@@ -313,6 +335,51 @@ void WINAPI WinExecErrorW(HWND hwnd,INT error, LPCWSTR lpstrFileName, LPCWSTR lp
 /******************************************
  * 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;
@@ -320,7 +387,18 @@ typedef struct _NOTIFYICONDATAA
        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
@@ -330,7 +408,18 @@ 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)
@@ -341,6 +430,50 @@ BOOL WINAPI Shell_NotifyIconW(DWORD dwMessage, PNOTIFYICONDATAW lpData);
 
 #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
  */
@@ -358,13 +491,19 @@ HICON       WINAPI ExtractAssociatedIconExW(HINSTANCE,LPWSTR,LPWORD,LPWORD);
 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" */