Moved stuff to the right place.

diff --git a/dlls/shell32/brsfolder.c b/dlls/shell32/brsfolder.c
index 40f8db5..ebc2441 100644
--- a/dlls/shell32/brsfolder.c
+++ b/dlls/shell32/brsfolder.c
@@ -19,9 +19,9 @@
 #include "wine/obj_enumidlist.h"
 #include "wine/obj_shellfolder.h"
 
-#include "shell.h"
 #include "pidl.h"
 #include "shell32_main.h"
+#include "shellapi.h"
 
 DEFAULT_DEBUG_CHANNEL(shell)
 
diff --git a/dlls/shell32/iconcache.c b/dlls/shell32/iconcache.c
index b7118e6..b011972 100644
--- a/dlls/shell32/iconcache.c
+++ b/dlls/shell32/iconcache.c
@@ -12,7 +12,9 @@
 #include "debug.h"
 #include "sysmetrics.h"
 #include "winversion.h"
-#include "shell.h"
+
+
+#include "shellapi.h"
 #include "shlobj.h"
 #include "pidl.h"
 #include "shell32_main.h"
diff --git a/dlls/shell32/regstream.c b/dlls/shell32/regstream.c
index 5e3050c..67aeb8a 100644
--- a/dlls/shell32/regstream.c
+++ b/dlls/shell32/regstream.c
@@ -10,8 +10,6 @@
 #include "winerror.h"
 #include "winreg.h"
 
-#include "shell.h"
-#include "pidl.h"
 #include "shell32_main.h"
 
 DEFAULT_DEBUG_CHANNEL(shell)
diff --git a/dlls/shell32/shell32_main.c b/dlls/shell32/shell32_main.c
index ed37acb..6bb5b92 100644
--- a/dlls/shell32/shell32_main.c
+++ b/dlls/shell32/shell32_main.c
@@ -19,7 +19,6 @@
 #include "authors.h"
 #include "winversion.h"
 
-#include "shell.h"
 #include "shellapi.h"
 #include "pidl.h"
 #include "shlobj.h"
@@ -34,44 +33,45 @@
  * CommandLineToArgvW			[SHELL32.7]
  */
 LPWSTR* WINAPI CommandLineToArgvW(LPWSTR cmdline,LPDWORD numargs)
-{ LPWSTR  *argv,s,t;
+{	LPWSTR  *argv,s,t;
 	int	i;
-  TRACE(shell,"\n");
+	TRACE(shell,"\n");
 
-        /* to get writeable copy */
+	/* to get writeable copy */
 	cmdline = HEAP_strdupW( GetProcessHeap(), 0, cmdline);
 	s=cmdline;i=0;
-  while (*s)
-  { /* space */
-    if (*s==0x0020) 
-    { i++;
-			s++;
-			while (*s && *s==0x0020)
-				s++;
-			continue;
-		}
-		s++;
+	while (*s)
+	{ /* space */
+	  if (*s==0x0020) 
+	  { i++;
+	    s++;
+	    while (*s && *s==0x0020)
+	      s++;
+	    continue;
+	  }
+	  s++;
 	}
 	argv=(LPWSTR*)HeapAlloc( GetProcessHeap(), 0, sizeof(LPWSTR)*(i+1) );
 	s=t=cmdline;
 	i=0;
-  while (*s)
-  { if (*s==0x0020)
-    { *s=0;
-			argv[i++]=HEAP_strdupW( GetProcessHeap(), 0, t );
-			*s=0x0020;
-			while (*s && *s==0x0020)
-				s++;
-			if (*s)
-				t=s+1;
-			else
-				t=s;
-			continue;
-		}
-		s++;
+	while (*s)
+	{ if (*s==0x0020)
+	  { *s=0;
+	    argv[i++]=HEAP_strdupW( GetProcessHeap(), 0, t );
+	    *s=0x0020;
+	    while (*s && *s==0x0020)
+	      s++;
+	    if (*s)
+	      t=s+1;
+	    else
+	      t=s;
+	    continue;
+	  }
+	  s++;
 	}
 	if (*t)
-		argv[i++]=(LPWSTR)HEAP_strdupW( GetProcessHeap(), 0, t );
+	  argv[i++]=(LPWSTR)HEAP_strdupW( GetProcessHeap(), 0, t );
+
 	HeapFree( GetProcessHeap(), 0, cmdline );
 	argv[i]=NULL;
 	*numargs=i;
@@ -670,8 +670,8 @@
 	LocalToWideChar(lpszDisplayName, tpath, 256);
   
 	if (SHGetDesktopFolder(&shellfolder)==S_OK)
-	{ shellfolder->lpvtbl->fnParseDisplayName(shellfolder,hwndOwner, NULL,lpszDisplayName,&pchEaten,ppidl,NULL);
-	  shellfolder->lpvtbl->fnRelease(shellfolder);
+	{ IShellFolder_ParseDisplayName(shellfolder,hwndOwner, NULL,lpszDisplayName,&pchEaten,ppidl,NULL);
+	  IShellFolder_Release(shellfolder);
 	}
 
 	TRACE(shell, "-- (new pidl %p)\n",*ppidl);
@@ -904,7 +904,7 @@
  *	This function is supposed to deal with the systray.
  *	Any ideas on how this is to be implimented?
  */
-BOOL WINAPI Shell_NotifyIcon(	DWORD dwMessage, PNOTIFYICONDATA pnid )
+BOOL WINAPI Shell_NotifyIcon(	DWORD dwMessage, PNOTIFYICONDATAA pnid )
 {   TRACE(shell,"\n");
     return FALSE;
 }
@@ -915,7 +915,7 @@
  *	This function is supposed to deal with the systray.
  *	Any ideas on how this is to be implimented?
  */
-BOOL WINAPI Shell_NotifyIconA(DWORD dwMessage, PNOTIFYICONDATA pnid )
+BOOL WINAPI Shell_NotifyIconA(DWORD dwMessage, PNOTIFYICONDATAA pnid )
 {   TRACE(shell,"\n");
     return FALSE;
 }
@@ -972,8 +972,8 @@
 	}
 	else
 	{ if (SHGetDesktopFolder(&shellfolder)==S_OK)
-	  { shellfolder->lpvtbl->fnGetDisplayNameOf(shellfolder,pidl,SHGDN_FORPARSING,&lpName);
-	    shellfolder->lpvtbl->fnRelease(shellfolder);
+	  { IShellFolder_GetDisplayNameOf(shellfolder,pidl,SHGDN_FORPARSING,&lpName);
+	    IShellFolder_Release(shellfolder);
 	  }
 	  strcpy(pszPath,lpName.u.cStr);
 	}
@@ -1144,7 +1144,7 @@
 	      bShell32IsInitialized = FALSE;
 
 	      if (pdesktopfolder) 
-	      { pdesktopfolder->lpvtbl->fnRelease(pdesktopfolder);
+	      { IShellFolder_Release(pdesktopfolder);
 	      }
 
 	      SIC_Destroy();
diff --git a/dlls/shell32/shellord.c b/dlls/shell32/shellord.c
index 37678ae..1b135e5 100644
--- a/dlls/shell32/shellord.c
+++ b/dlls/shell32/shellord.c
@@ -13,6 +13,7 @@
 #include "winversion.h"
 #include "heap.h"
 
+#include "shellapi.h"
 #include "shlobj.h"
 #include "shell32_main.h"
 
diff --git a/include/shell.h b/include/shell.h
index 6a1c18a..63179be 100644
--- a/include/shell.h
+++ b/include/shell.h
@@ -37,31 +37,6 @@
 /****************************************************************************
 * common shell file structures 
 */
-#define FO_MOVE           0x0001
-#define FO_COPY           0x0002
-#define FO_DELETE         0x0003
-#define FO_RENAME         0x0004
-
-#define FOF_MULTIDESTFILES         0x0001
-#define FOF_CONFIRMMOUSE           0x0002
-#define FOF_SILENT                 0x0004  
-#define FOF_RENAMEONCOLLISION      0x0008
-#define FOF_NOCONFIRMATION         0x0010  
-#define FOF_WANTMAPPINGHANDLE      0x0020  
-#define FOF_ALLOWUNDO              0x0040
-#define FOF_FILESONLY              0x0080  
-#define FOF_SIMPLEPROGRESS         0x0100  
-#define FOF_NOCONFIRMMKDIR         0x0200  
-#define FOF_NOERRORUI              0x0400  
-
-typedef WORD FILEOP_FLAGS;
-
-#define PO_DELETE       0x0013  
-#define PO_RENAME       0x0014  
-#define PO_PORTCHANGE   0x0020  
-
-typedef WORD PRINTEROP_FLAGS;
-
 /******************************
 * DRAG&DROP API
 */
@@ -81,31 +56,6 @@
 } DROPFILESTRUCT, *LPDROPFILESTRUCT; 
 
 
-void        WINAPI DragAcceptFiles16(HWND16 hWnd, BOOL16 b);
-void        WINAPI DragAcceptFiles(HWND hWnd, BOOL b);
-UINT16      WINAPI DragQueryFile16(HDROP16 hDrop, WORD wFile, LPSTR lpszFile, WORD wLength);
-UINT      WINAPI DragQueryFileA(HDROP hDrop, UINT lFile, LPSTR lpszFile, UINT lLength);
-UINT      WINAPI DragQueryFileW(HDROP hDrop, UINT lFile, LPWSTR lpszFile, UINT lLength);
-#define     DragQueryFile WINELIB_NAME_AW(DragQueryFile)
-void        WINAPI DragFinish(HDROP h);
-void        WINAPI DragFinish16(HDROP16 h);
-BOOL      WINAPI DragQueryPoint(HDROP hDrop, POINT *p);
-BOOL16      WINAPI DragQueryPoint16(HDROP16 hDrop, POINT16 *p);
-
-
-/****************************************************************************
-* NOTIFYICONDATA 
-*/
-typedef struct _NOTIFYICONDATA {
-	DWORD cbSize;
-	HWND hWnd;
-	UINT uID;
-	UINT uFlags;
-	UINT uCallbackMessage;
-	HICON hIcon;
-	CHAR szTip[64];
-} NOTIFYICONDATA, *PNOTIFYICONDATA;
-
 /****************************************************************************
 * SHITEMID, ITEMIDLIST, PIDL API 
 */
@@ -124,96 +74,7 @@
 DWORD WINAPI SHGetPathFromIDListW (LPCITEMIDLIST pidl,LPWSTR pszPath);
 #define  SHGetPathFromIDList WINELIB_NAME_AW(SHGetPathFromIDList)
 
-/****************************************************************************
-* SHFILEINFO API 
-*/
-typedef struct tagSHFILEINFOA {
-	HICON	hIcon;			/* icon */
-	int	iIcon;			/* icon index */
-	DWORD	dwAttributes;		/* SFGAO_ flags */
-	CHAR	szDisplayName[MAX_PATH];/* display name (or path) */
-	CHAR	szTypeName[80];		/* type name */
-} SHFILEINFOA;
 
-typedef struct tagSHFILEINFOW {
-	HICON	hIcon;			/* icon */
-	int	iIcon;			/* icon index */
-	DWORD	dwAttributes;		/* SFGAO_ flags */
-	WCHAR	szDisplayName[MAX_PATH];/* display name (or path) */
-	WCHAR	szTypeName[80];		/* type name */
-} SHFILEINFOW;
-
-DECL_WINELIB_TYPE_AW(SHFILEINFO)
-
-DWORD    WINAPI SHGetFileInfoA(LPCSTR,DWORD,SHFILEINFOA*,UINT,UINT);
-DWORD    WINAPI SHGetFileInfoW(LPCWSTR,DWORD,SHFILEINFOW*,UINT,UINT);
-#define  SHGetFileInfo WINELIB_NAME_AW(SHGetFileInfo)
-
-/****************************************************************************
-* SHFILEOPSTRUCT API 
-*/
-typedef struct _SHFILEOPSTRUCTA
-{ HWND          hwnd;
-  UINT          wFunc;
-  LPCSTR          pFrom;
-  LPCSTR          pTo;
-  FILEOP_FLAGS    fFlags;
-  BOOL          fAnyOperationsAborted;
-  LPVOID          hNameMappings;
-  LPCSTR          lpszProgressTitle;
-} SHFILEOPSTRUCTA, *LPSHFILEOPSTRUCTA;
-
-typedef struct _SHFILEOPSTRUCTW
-{ HWND          hwnd;
-  UINT          wFunc;
-  LPCWSTR         pFrom;
-  LPCWSTR         pTo;
-  FILEOP_FLAGS    fFlags;
-  BOOL          fAnyOperationsAborted;
-  LPVOID          hNameMappings;
-  LPCWSTR         lpszProgressTitle;
-} SHFILEOPSTRUCTW, *LPSHFILEOPSTRUCTW;
-
-#define  SHFILEOPSTRUCT WINELIB_NAME_AW(SHFILEOPSTRUCT)
-#define  LPSHFILEOPSTRUCT WINELIB_NAME_AW(LPSHFILEOPSTRUCT)
-
-DWORD WINAPI SHFileOperationA (LPSHFILEOPSTRUCTA lpFileOp);  
-DWORD WINAPI SHFileOperationW (LPSHFILEOPSTRUCTW lpFileOp);
-#define  SHFileOperation WINELIB_NAME_AW(SHFileOperation)
-
-DWORD WINAPI SHFileOperationAW(DWORD x);
-
-/****************************************************************************
-* APPBARDATA 
-*/
-typedef struct _AppBarData {
-	DWORD	cbSize;
-	HWND	hWnd;
-	UINT	uCallbackMessage;
-	UINT	uEdge;
-	RECT	rc;
-	LPARAM	lParam;
-} APPBARDATA, *PAPPBARDATA;
-
-#define SHGFI_LARGEICON         0x000000000     /* get large icon */
-#define SHGFI_SMALLICON         0x000000001     /* get small icon */
-#define SHGFI_OPENICON          0x000000002     /* get open icon */
-#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_ICON              0x000000100     /* get icon */
-#define SHGFI_DISPLAYNAME       0x000000200     /* get display name */
-#define SHGFI_TYPENAME          0x000000400     /* get type name */
-#define SHGFI_ATTRIBUTES        0x000000800     /* get attributes */
-#define SHGFI_ICONLOCATION      0x000001000     /* get icon location */
-#define SHGFI_EXETYPE           0x000002000     /* return exe type */
-#define SHGFI_SYSICONINDEX      0x000004000     /* get system icon index */
-#define SHGFI_LINKOVERLAY       0x000008000     /* put a link overlay on icon */
-#define SHGFI_SELECTED          0x000010000     /* show icon in selected state */
-#define SHGFI_ATTR_SPECIFIED    0x000020000     /* get only specified attributes */
 
 /****************************************************************************
 * SHChangeNotifyRegister API
@@ -313,22 +174,10 @@
 /****************************************************************************
 *  other functions
 */
-HICON16 WINAPI ExtractIconEx16 ( LPCSTR, INT16, HICON16 *, HICON16 *, UINT16 );
-HICON WINAPI ExtractIconExA( LPCSTR, INT, HICON *, HICON *, UINT );
-HICON WINAPI ExtractIconExW( LPCWSTR, INT, HICON *, HICON *, UINT );
-#define  ExtractIconEx WINELIB_NAME_AW(ExtractIconEx)
-HICON WINAPI ExtractIconExAW(LPCVOID, INT, HICON *, HICON *, UINT );
 
 LPVOID WINAPI SHAlloc(DWORD len);
 DWORD WINAPI SHFree(LPVOID x);
 
-#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	CSIDL_DESKTOP		0x0000
 #define	CSIDL_PROGRAMS		0x0002
 #define	CSIDL_CONTROLS		0x0003
diff --git a/include/shellapi.h b/include/shellapi.h
index 2f112b7..b0b4c8b 100644
--- a/include/shellapi.h
+++ b/include/shellapi.h
@@ -3,26 +3,258 @@
 
 #include "windef.h"
 
-HICON16     WINAPI ExtractIcon16(HINSTANCE16,LPCSTR,UINT16);
-HICON     WINAPI ExtractIconA(HINSTANCE,LPCSTR,UINT);
-HICON     WINAPI ExtractIconW(HINSTANCE,LPCWSTR,UINT);
+#pragma pack(1)
+
+/******************************************
+ * DragObject
+ */
+
+typedef struct _DRAGINFOA 
+{	UINT uSize;
+	POINT pt;
+	BOOL fNC;
+	LPSTR   lpFileList;
+	DWORD grfKeyState;
+} DRAGINFOA, * LPDRAGINFOA;
+
+typedef struct _DRAGINFOW 
+{	UINT uSize;
+	POINT pt;
+	BOOL fNC;
+	LPWSTR  lpFileList;
+	DWORD grfKeyState;
+} DRAGINFOW, LPDRAGINFOW;
+
+void	WINAPI DragAcceptFiles(HWND hWnd, BOOL b);
+void	WINAPI DragAcceptFiles16(HWND16 hWnd, BOOL16 b);
+
+UINT16	WINAPI DragQueryFile16(HDROP16 hDrop, WORD wFile, LPSTR lpszFile, WORD wLength);
+UINT	WINAPI DragQueryFileA(HDROP hDrop, UINT lFile, LPSTR lpszFile, UINT lLength);
+UINT	WINAPI DragQueryFileW(HDROP hDrop, UINT lFile, LPWSTR lpszFile, UINT lLength);
+#define     DragQueryFile WINELIB_NAME_AW(DragQueryFile)
+
+void	WINAPI DragFinish16(HDROP16 h);
+void	WINAPI DragFinish(HDROP h);
+
+BOOL16	WINAPI DragQueryPoint16(HDROP16 hDrop, POINT16 *p);
+BOOL	WINAPI DragQueryPoint(HDROP hDrop, POINT *p);
+
+
+/******************************************
+ * Application Bar
+ */
+#define ABM_NEW			0x00000000
+#define ABM_REMOVE		0x00000001
+#define ABM_QUERYPOS		0x00000002
+#define ABM_SETPOS		0x00000003
+#define ABM_GETSTATE		0x00000004
+#define ABM_GETTASKBARPOS	0x00000005
+#define ABM_ACTIVATE		0x00000006
+#define ABM_GETAUTOHIDEBAR	0x00000007
+#define ABM_SETAUTOHIDEBAR	0x00000008
+#define ABM_WINDOWPOSCHANGED	0x00000009
+
+#define ABN_STATECHANGE		0x00000000
+#define ABN_POSCHANGED		0x00000001
+#define ABN_FULLSCREENAPP	0x00000002
+#define ABN_WINDOWARRANGE	0x00000003
+
+#define ABS_AUTOHIDE		0x00000001
+#define ABS_ALWAYSONTOP		0x00000002
+
+#define ABE_LEFT		0
+#define ABE_TOP			1
+#define ABE_RIGHT		2
+#define ABE_BOTTOM		3
+
+typedef struct _AppBarData 
+{	DWORD	cbSize;
+	HWND	hWnd;
+	UINT	uCallbackMessage;
+	UINT	uEdge;
+	RECT	rc;
+	LPARAM	lParam;
+} APPBARDATA, *PAPPBARDATA;
+
+
+/******************************************
+ * SHGetFileInfo
+ */
+
+#define SHGFI_LARGEICON         0x000000000     /* get large icon */
+#define SHGFI_SMALLICON         0x000000001     /* get small icon */
+#define SHGFI_OPENICON          0x000000002     /* get open icon */
+#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_ICON              0x000000100     /* get icon */
+#define SHGFI_DISPLAYNAME       0x000000200     /* get display name */
+#define SHGFI_TYPENAME          0x000000400     /* get type name */
+#define SHGFI_ATTRIBUTES        0x000000800     /* get attributes */
+#define SHGFI_ICONLOCATION      0x000001000     /* get icon location */
+#define SHGFI_EXETYPE           0x000002000     /* return exe type */
+#define SHGFI_SYSICONINDEX      0x000004000     /* get system icon index */
+#define SHGFI_LINKOVERLAY       0x000008000     /* put a link overlay on icon */
+#define SHGFI_SELECTED          0x000010000     /* show icon in selected state */
+#define SHGFI_ATTR_SPECIFIED    0x000020000     /* get only specified attributes */
+
+typedef struct tagSHFILEINFOA 
+{	HICON	hIcon;			/* icon */
+	int	iIcon;			/* icon index */
+	DWORD	dwAttributes;		/* SFGAO_ flags */
+	CHAR	szDisplayName[MAX_PATH];/* display name (or path) */
+	CHAR	szTypeName[80];		/* type name */
+} SHFILEINFOA;
+
+typedef struct tagSHFILEINFOW 
+{	HICON	hIcon;			/* icon */
+	int	iIcon;			/* icon index */
+	DWORD	dwAttributes;		/* SFGAO_ flags */
+	WCHAR	szDisplayName[MAX_PATH];/* display name (or path) */
+	WCHAR	szTypeName[80];		/* type name */
+} SHFILEINFOW;
+
+DECL_WINELIB_TYPE_AW(SHFILEINFO)
+
+DWORD	WINAPI SHGetFileInfoA(LPCSTR,DWORD,SHFILEINFOA*,UINT,UINT);
+DWORD	WINAPI SHGetFileInfoW(LPCWSTR,DWORD,SHFILEINFOW*,UINT,UINT);
+#define  SHGetFileInfo WINELIB_NAME_AW(SHGetFileInfo)
+
+/******************************************
+ * SHSetFileInfo
+ */
+
+/******************************************
+* SHFileOperation
+*/
+#define FO_MOVE           0x0001
+#define FO_COPY           0x0002
+#define FO_DELETE         0x0003
+#define FO_RENAME         0x0004
+
+#define FOF_MULTIDESTFILES         0x0001
+#define FOF_CONFIRMMOUSE           0x0002
+#define FOF_SILENT                 0x0004  
+#define FOF_RENAMEONCOLLISION      0x0008
+#define FOF_NOCONFIRMATION         0x0010  
+#define FOF_WANTMAPPINGHANDLE      0x0020  
+#define FOF_ALLOWUNDO              0x0040
+#define FOF_FILESONLY              0x0080  
+#define FOF_SIMPLEPROGRESS         0x0100  
+#define FOF_NOCONFIRMMKDIR         0x0200  
+#define FOF_NOERRORUI              0x0400  
+
+typedef WORD FILEOP_FLAGS;
+
+#define PO_DELETE       0x0013  
+#define PO_RENAME       0x0014  
+#define PO_PORTCHANGE   0x0020  
+
+typedef WORD PRINTEROP_FLAGS;
+
+typedef struct _SHFILEOPSTRUCTA
+{ HWND          hwnd;
+  UINT          wFunc;
+  LPCSTR          pFrom;
+  LPCSTR          pTo;
+  FILEOP_FLAGS    fFlags;
+  BOOL          fAnyOperationsAborted;
+  LPVOID          hNameMappings;
+  LPCSTR          lpszProgressTitle;
+} SHFILEOPSTRUCTA, *LPSHFILEOPSTRUCTA;
+
+typedef struct _SHFILEOPSTRUCTW
+{ HWND          hwnd;
+  UINT          wFunc;
+  LPCWSTR         pFrom;
+  LPCWSTR         pTo;
+  FILEOP_FLAGS    fFlags;
+  BOOL          fAnyOperationsAborted;
+  LPVOID          hNameMappings;
+  LPCWSTR         lpszProgressTitle;
+} SHFILEOPSTRUCTW, *LPSHFILEOPSTRUCTW;
+
+#define  SHFILEOPSTRUCT WINELIB_NAME_AW(SHFILEOPSTRUCT)
+#define  LPSHFILEOPSTRUCT WINELIB_NAME_AW(LPSHFILEOPSTRUCT)
+
+DWORD	WINAPI SHFileOperationA (LPSHFILEOPSTRUCTA lpFileOp);  
+DWORD	WINAPI SHFileOperationW (LPSHFILEOPSTRUCTW lpFileOp);
+#define  SHFileOperation WINELIB_NAME_AW(SHFileOperation)
+
+DWORD WINAPI SHFileOperationAW(DWORD x);
+
+/******************************************
+ * ShellExecute
+ */
+#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
+
+HINSTANCE16	WINAPI ShellExecute16(HWND16,LPCSTR,LPCSTR,LPCSTR,LPCSTR,INT16);
+HINSTANCE	WINAPI ShellExecuteA(HWND,LPCSTR,LPCSTR,LPCSTR,LPCSTR,INT);
+HINSTANCE	WINAPI ShellExecuteW(HWND,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR,INT);
+#define     ShellExecute WINELIB_NAME_AW(ShellExecute)
+
+/******************************************
+ * Tray Notification
+ */
+typedef struct _NOTIFYICONDATAA
+{	DWORD cbSize;
+	HWND hWnd;
+	UINT uID;
+	UINT uFlags;
+	UINT uCallbackMessage;
+	HICON hIcon;
+	CHAR szTip[64];
+} NOTIFYICONDATAA, *PNOTIFYICONDATAA;
+
+typedef struct _NOTIFYICONDATAW
+{	DWORD cbSize;
+	HWND hWnd;
+	UINT uID;
+	UINT uFlags;
+	UINT uCallbackMessage;
+	HICON hIcon;
+	WCHAR szTip[64];
+} NOTIFYICONDATAW, *PNOTIFYICONDATAW;
+
+
+/******************************************
+ * Misc
+ */
+
+HICON16	WINAPI ExtractIcon16(HINSTANCE16,LPCSTR,UINT16);
+HICON	WINAPI ExtractIconA(HINSTANCE,LPCSTR,UINT);
+HICON	WINAPI ExtractIconW(HINSTANCE,LPCWSTR,UINT);
 #define     ExtractIcon WINELIB_NAME_AW(ExtractIcon)
+
 HICON16     WINAPI ExtractAssociatedIcon16(HINSTANCE16,LPSTR,LPWORD);
 HICON     WINAPI ExtractAssociatedIconA(HINSTANCE,LPSTR,LPWORD);
 HICON     WINAPI ExtractAssociatedIconW(HINSTANCE,LPWSTR,LPWORD);
 #define     ExtractAssociatedIcon WINELIB_NAME_AW(ExtractAssociatedIcon)
+
+HICON16 WINAPI ExtractIconEx16 ( LPCSTR, INT16, HICON16 *, HICON16 *, UINT16 );
+HICON WINAPI ExtractIconExA( LPCSTR, INT, HICON *, HICON *, UINT );
+HICON WINAPI ExtractIconExW( LPCWSTR, INT, HICON *, HICON *, UINT );
+#define  ExtractIconEx WINELIB_NAME_AW(ExtractIconEx)
+HICON WINAPI ExtractIconExAW(LPCVOID, INT, HICON *, HICON *, UINT );
+
 HINSTANCE16 WINAPI FindExecutable16(LPCSTR,LPCSTR,LPSTR);
 HINSTANCE WINAPI FindExecutableA(LPCSTR,LPCSTR,LPSTR);
 HINSTANCE WINAPI FindExecutableW(LPCWSTR,LPCWSTR,LPWSTR);
 #define     FindExecutable WINELIB_NAME_AW(FindExecutable)
+
 BOOL16      WINAPI ShellAbout16(HWND16,LPCSTR,LPCSTR,HICON16);
 BOOL      WINAPI ShellAboutA(HWND,LPCSTR,LPCSTR,HICON);
 BOOL      WINAPI ShellAboutW(HWND,LPCWSTR,LPCWSTR,HICON);
 #define     ShellAbout WINELIB_NAME_AW(ShellAbout)
-HINSTANCE16 WINAPI ShellExecute16(HWND16,LPCSTR,LPCSTR,LPCSTR,LPCSTR,INT16);
-HINSTANCE WINAPI ShellExecuteA(HWND,LPCSTR,LPCSTR,LPCSTR,LPCSTR,INT);
-HINSTANCE WINAPI ShellExecuteW(HWND,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR,INT);
-#define     ShellExecute WINELIB_NAME_AW(ShellExecute)
 
+#pragma pack(4)
 
 #endif /* _WINE_SHELLAPI_H */
diff --git a/include/shlobj.h b/include/shlobj.h
index d89c725..a89da1b 100644
--- a/include/shlobj.h
+++ b/include/shlobj.h
@@ -397,18 +397,6 @@
 #define	FM_BLANK_ICON		-1
 #define	FM_DEFAULT_HEIGHT	0
 
-/* fixme: move to ShellApi.h */
-#define ABM_NEW			0x00000000
-#define ABM_REMOVE		0x00000001
-#define ABM_QUERYPOS		0x00000002
-#define ABM_SETPOS		0x00000003
-#define ABM_GETSTATE		0x00000004
-#define ABM_GETTASKBARPOS	0x00000005
-#define ABM_ACTIVATE		0x00000006
-#define ABM_GETAUTOHIDEBAR	0x00000007
-#define ABM_SETAUTOHIDEBAR	0x00000008
-#define ABM_WINDOWPOSCHANGED	0x00000009
-
 /**********************************************************************
  * SHGetSettings ()
  */
@@ -447,8 +435,6 @@
 #define SSF_MAPNETDRVBUTTON		0x1000
 #define SSF_NOCONFIRMRECYCLE		0x8000
 #define SSF_HIDEICONS			0x4000
-#define ABS_AUTOHIDE			0x00000001
-#define ABS_ALWAYSONTOP			0x00000002
 
 /**********************************************************************/