Author: cwittich Date: Sun Sep 4 07:48:41 2016 New Revision: 72560 URL: http://svn.reactos.org/svn/reactos?rev=72560&view=rev Log: [SHELL32] sync shellole.c with wine 1.9.16
Modified: trunk/reactos/dll/win32/shell32/wine/shellole.c Modified: trunk/reactos/dll/win32/shell32/wine/shellole.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/wine/shellole.c?rev=72560&r1=72559&r2=72560&view=diff ============================================================================== --- trunk/reactos/dll/win32/shell32/wine/shellole.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/wine/shellole.c [iso-8859-1] Sun Sep 4 07:48:41 2016 @@ -57,7 +57,7 @@ /* this table contains all CLSIDs of shell32 objects */ static const struct { - REFIID riid; + REFIID clsid; LPFNCREATEINSTANCE lpfnCI; } InterfaceTable[] = { @@ -205,8 +205,8 @@ */ 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 @@ *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 @@ 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 @@ if(lpDropFileStruct->fWide == FALSE) { LPSTR lpszFileA = NULL; - if(lpszwFile) { + if(lpszwFile && lFile != 0xFFFFFFFF) { lpszFileA = HeapAlloc(GetProcessHeap(), 0, lLength); if(lpszFileA == NULL) { goto end;