Cleanup, small fixes, a few new stubs.

diff --git a/include/shell.h b/include/shell.h
index 64c9dbc..7278c00 100644
--- a/include/shell.h
+++ b/include/shell.h
@@ -253,10 +253,15 @@
 /****************************************************************************
 *  string and path functions
 */
-LPSTR  WINAPI PathAddBackslash32A(LPSTR path);	
-LPWSTR WINAPI PathAddBackslash32W(LPWSTR path);	
+LPSTR  WINAPI PathAddBackslash32A(LPCSTR path);	
+LPWSTR WINAPI PathAddBackslash32W(LPCWSTR path);	
 #define  PathAddBackslash WINELIB_NAME_AW(PathAddBackslash)
-LPVOID  WINAPI PathAddBackslash32AW(LPVOID path);	
+LPVOID  WINAPI PathAddBackslash32AW(LPCVOID path);	
+
+LPSTR  WINAPI PathQuoteSpaces32A(LPCSTR path);	
+LPWSTR WINAPI PathQuoteSpaces32W(LPCWSTR path);	
+#define  PathQuoteSpaces WINELIB_NAME_AW(PathQuoteSpaces)
+LPVOID  WINAPI PathQuoteSpaces32AW(LPCVOID path);	
 
 LPSTR  WINAPI PathCombine32A(LPSTR szDest, LPCSTR lpszDir, LPCSTR lpszFile);
 LPWSTR WINAPI PathCombine32W(LPWSTR szDest, LPCWSTR lpszDir, LPCWSTR lpszFile);
@@ -278,10 +283,15 @@
 #define  PathFindFilename WINELIB_NAME_AW(PathFindFilename)
 LPCVOID WINAPI PathFindFilename32AW(LPCVOID path); 
 
-LPSTR WINAPI PathRemoveBlanks(LPSTR str);
+LPSTR WINAPI PathRemoveBlanks(LPCSTR str);
 /****************************************************************************
 *  other functions
 */
+HICON32 WINAPI ExtractIconEx32A ( LPSTR, INT32, HICON32 *, HICON32 *, UINT32 );
+HICON32 WINAPI ExtractIconEx32W ( LPWSTR, INT32, HICON32 *, HICON32 *, UINT32 );
+#define  ExtractIconEx WINELIB_NAME_AW(ExtractIconEx)
+HICON32 WINAPI ExtractIconEx32AW ( LPVOID, INT32, HICON32 *, HICON32 *, UINT32 );
+
 LPVOID WINAPI SHAlloc(DWORD len);
 DWORD WINAPI SHFree(LPVOID x);
 
diff --git a/include/shlobj.h b/include/shlobj.h
index f908096..5751a91 100644
--- a/include/shlobj.h
+++ b/include/shlobj.h
@@ -534,7 +534,7 @@
 { FVM_ICON =              1,
   FVM_SMALLICON =         2,
   FVM_LIST =              3,
-  FVM_DETAILS =           4,
+  FVM_DETAILS =           4
 } FOLDERVIEWMODE;
 
 typedef struct
@@ -626,10 +626,10 @@
 struct tagSHELLFOLDER {
 	LPSHELLFOLDER_VTABLE	lpvtbl;
 	DWORD			ref;
-	LPSTR			mlpszFolder;
-	LPITEMIDLIST	mpidl;
-	LPITEMIDLIST	mpidlNSRoot;
-	LPSHELLFOLDER	mpSFParent;
+	LPSTR			sMyPath;
+	LPITEMIDLIST		pMyPidl;
+	LPITEMIDLIST		mpidl;
+	LPSHELLFOLDER		mpSFParent;
 };
 
 extern LPSHELLFOLDER pdesktopfolder;
@@ -676,7 +676,15 @@
 #define FCT_MERGE       0x0001
 #define FCT_CONFIGABLE  0x0002
 #define FCT_ADDTOEND    0x0004
- 
+
+/* undocumented, found in the web posted by Chris Becke */ 
+#define CWM_SETPATH	(WM_USER+2)
+#define CWM_WANTIDLE	(WM_USER+3)
+#define CWM_GETSETCURRENTINFO	(WM_USER+4)
+#define CWM_SELECTITEM	(WM_USER+5)
+#define CWM_STOPWAITING	(WM_USER+6)
+#define CWM_GETISHELLBROWSER (WM_USER+7)
+
 typedef struct IShellBrowser_VTable 
 {    // *** IUnknown methods ***
     STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE;
@@ -703,7 +711,7 @@
     STDMETHOD(QueryActiveShellView)(THIS_ IShellView ** ppshv) PURE;
     STDMETHOD(OnViewWindowActive)(THIS_ IShellView * ppshv) PURE;
     STDMETHOD(SetToolbarItems)(THIS_ LPTBBUTTON lpButtons, UINT32 nButtons, UINT32 uFlags) PURE;
-} *LPSHELLBROWSER_VTABLE,IShellBrowser_VTable;;
+} *LPSHELLBROWSER_VTABLE,IShellBrowser_VTable;
 
 struct tagSHELLBROWSER 
 { LPSHELLBROWSER_VTABLE	lpvtbl;
@@ -741,12 +749,35 @@
   FCIDM_BROWSERFIRST/LAST     for the explorer frame (IShellBrowser)
   FCIDM_GLOBAL/LAST           for the explorer's submenu IDs
 */
-#define FCIDM_SHVIEWFIRST           0x0000
-#define FCIDM_SHVIEWLAST            0x7fff
-#define FCIDM_BROWSERFIRST          0xa000
-#define FCIDM_BROWSERLAST           0xbf00
-#define FCIDM_GLOBALFIRST           0x8000
-#define FCIDM_GLOBALLAST            0x9fff
+#define FCIDM_SHVIEWFIRST	0x0000
+/* undocumented */
+#define FCIDM_SHVIEW_ARRANGE	0x7001
+#define FCIDM_SHVIEW_DELETE	0x7011
+#define FCIDM_SHVIEW_PROPERTIES	0x7013
+#define FCIDM_SHVIEW_CUT	0x7018
+#define FCIDM_SHVIEW_COPY	0x7019
+#define FCIDM_SHVIEW_INSERT	0x701A
+#define FCIDM_SHVIEW_UNDO	0x701B
+#define FCIDM_SHVIEW_INSERTLINK	0x701C
+#define FCIDM_SHVIEW_SELECTALL	0x7021
+#define FCIDM_SHVIEW_INVERTSELECTION	0x7022
+#define FCIDM_SHVIEW_BIGICON	0x7029
+#define FCIDM_SHVIEW_SMALLICON	0x702A
+#define FCIDM_SHVIEW_LISTVIEW	0x702B	
+#define FCIDM_SHVIEW_REPORTVIEW	0x702C
+#define FCIDM_SHVIEW_AUTOARRANGE	0x7031  
+#define FCIDM_SHVIEW_SNAPTOGRID	0x7032
+#define FCIDM_SHVIEW_HELP	0x7041
+
+#define FCIDM_SHVIEWLAST	0x7fff
+#define FCIDM_BROWSERFIRST	0xA000
+/* undocumented toolbar items from stddlg's*/
+#define FCIDM_TB_SMALLICON	0xA003
+#define FCIDM_TB_REPORTVIEW	0xA004
+
+#define FCIDM_BROWSERLAST	0xbf00
+#define FCIDM_GLOBALFIRST	0x8000
+#define FCIDM_GLOBALLAST	0x9fff
 
 /*
 * Global submenu IDs and separator IDs
@@ -953,6 +984,9 @@
 };
 
 #undef THIS
+
+DWORD WINAPI SHMapPIDLToSystemImageListIndex(LPSHELLFOLDER sh,LPITEMIDLIST pidl,DWORD z);
+
 /****************************************************************************
  * IShellIcon interface
  */
@@ -1026,14 +1060,14 @@
  * Class constructors
  */
 #ifdef __WINE__
-extern LPDATAOBJECT	IDataObject_Constructor();
+extern LPDATAOBJECT	IDataObject_Constructor(HWND32 hwndOwner, LPSHELLFOLDER psf, LPITEMIDLIST * apidl, UINT32 cidl);
 extern LPENUMFORMATETC	IEnumFORMATETC_Constructor(UINT32, const FORMATETC32 []);
 
-extern LPCLASSFACTORY	IClassFactory_Constructor();
+extern LPCLASSFACTORY	IClassFactory_Constructor(void);
 extern LPCONTEXTMENU	IContextMenu_Constructor(LPSHELLFOLDER, LPCITEMIDLIST *, UINT32);
 extern LPSHELLFOLDER	IShellFolder_Constructor(LPSHELLFOLDER,LPITEMIDLIST);
 extern LPSHELLVIEW	IShellView_Constructor(LPSHELLFOLDER, LPCITEMIDLIST);
-extern LPSHELLLINK	IShellLink_Constructor();
+extern LPSHELLLINK	IShellLink_Constructor(void);
 extern LPENUMIDLIST	IEnumIDList_Constructor(LPCSTR,DWORD);
 extern LPEXTRACTICON	IExtractIcon_Constructor(LPITEMIDLIST);
 #endif