From 09dc7fbe19f14c153c81ed643cfe2f3b33f13bac Mon Sep 17 00:00:00 2001 From: Christoph von Wittich Date: Sun, 4 Sep 2016 07:48:41 +0000 Subject: [PATCH] [SHELL32] sync shellole.c with wine 1.9.16 svn path=/trunk/; revision=72560 --- reactos/dll/win32/shell32/wine/shellole.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/reactos/dll/win32/shell32/wine/shellole.c b/reactos/dll/win32/shell32/wine/shellole.c index 4b0d2d67cbf..8d58a00da02 100644 --- a/reactos/dll/win32/shell32/wine/shellole.c +++ b/reactos/dll/win32/shell32/wine/shellole.c @@ -57,7 +57,7 @@ static IClassFactory * IDefClF_fnConstructor(LPFNCREATEINSTANCE lpfnCI, PLONG pc /* this table contains all CLSIDs of shell32 objects */ static const struct { - REFIID riid; + REFIID clsid; LPFNCREATEINSTANCE lpfnCI; } InterfaceTable[] = { @@ -205,8 +205,8 @@ end: */ HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID iid, LPVOID *ppv) { - HRESULT hres = E_OUTOFMEMORY; IClassFactory * pcf = NULL; + HRESULT hres; int i; TRACE("CLSID:%s,IID:%s\n",shdebugstr_guid(rclsid),shdebugstr_guid(iid)); @@ -215,10 +215,11 @@ HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID iid, LPVOID *ppv) *ppv = NULL; /* search our internal interface table */ - for(i=0;InterfaceTable[i].riid;i++) { - if(IsEqualIID(InterfaceTable[i].riid, rclsid)) { + for(i=0;InterfaceTable[i].clsid;i++) { + if(IsEqualIID(InterfaceTable[i].clsid, rclsid)) { TRACE("index[%u]\n", i); pcf = IDefClF_fnConstructor(InterfaceTable[i].lpfnCI, NULL, NULL); + break; } } @@ -587,7 +588,7 @@ UINT WINAPI DragQueryFileA( if(lpDropFileStruct->fWide) { LPWSTR lpszFileW = NULL; - if(lpszFile) { + if(lpszFile && lFile != 0xFFFFFFFF) { lpszFileW = HeapAlloc(GetProcessHeap(), 0, lLength*sizeof(WCHAR)); if(lpszFileW == NULL) { goto end; @@ -642,7 +643,7 @@ UINT WINAPI DragQueryFileW( if(lpDropFileStruct->fWide == FALSE) { LPSTR lpszFileA = NULL; - if(lpszwFile) { + if(lpszwFile && lFile != 0xFFFFFFFF) { lpszFileA = HeapAlloc(GetProcessHeap(), 0, lLength); if(lpszFileA == NULL) { goto end;