Sorry, forgot to include the entire patch. ChangeLog SHGetMalloc() returns a HRESULT, not a DWORD. Index: include/shlobj.h =================================================================== RCS file: /var/cvs/wine/include/shlobj.h,v retrieving revision 1.56 diff -u -r1.56 shlobj.h --- include/shlobj.h 23 Dec 2002 01:33:16 -0000 1.56 +++ include/shlobj.h 2 Jan 2003 06:57:53 -0000 @@ -375,7 +375,7 @@ DWORD viewmode; /* NF_* enum */ } SHELLVIEWDATA, * LPSHELLVIEWDATA; -DWORD WINAPI SHGetMalloc(LPMALLOC *lpmal) ; +HRESULT WINAPI SHGetMalloc(LPMALLOC *lpmal) ; /********************************************************************** * SHGetSetSettings () Index: dlls/shell32/shellole.c =================================================================== RCS file: /var/cvs/wine/dlls/shell32/shellole.c,v retrieving revision 1.54 diff -u -r1.54 shellole.c --- dlls/shell32/shellole.c 16 Dec 2002 23:48:30 -0000 1.54 +++ dlls/shell32/shellole.c 2 Jan 2003 21:47:46 -0000 @@ -423,7 +423,7 @@ * uses OLE32.CoGetMalloc if OLE32.DLL is already loaded. * if not it uses a internal implementations as fallback. */ -DWORD WINAPI SHGetMalloc(LPMALLOC *lpmal) +HRESULT WINAPI SHGetMalloc(LPMALLOC *lpmal) { HRESULT (WINAPI *pCoGetMalloc)(DWORD,LPMALLOC *); HMODULE hOle32; -- Dimi.