From: Amine Khaldi Date: Sun, 19 Jul 2015 13:16:45 +0000 (+0000) Subject: [FUSION] Sync with Wine Staging 1.7.47. CORE-9924 X-Git-Tag: ReactOS-0.4.0~1587 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=c2ad444c9799789c9bba9f45573a5dda45f3a8e6 [FUSION] Sync with Wine Staging 1.7.47. CORE-9924 svn path=/trunk/; revision=68429 --- diff --git a/reactos/dll/win32/fusion/asmcache.c b/reactos/dll/win32/fusion/asmcache.c index 673d180a907..c8f389a9a03 100644 --- a/reactos/dll/win32/fusion/asmcache.c +++ b/reactos/dll/win32/fusion/asmcache.c @@ -151,7 +151,7 @@ static HRESULT WINAPI IAssemblyCacheImpl_QueryInterface(IAssemblyCache *iface, IsEqualIID(riid, &IID_IAssemblyCache)) { IAssemblyCache_AddRef(iface); - *ppobj = This; + *ppobj = &This->IAssemblyCache_iface; return S_OK; } @@ -580,7 +580,7 @@ static HRESULT WINAPI IAssemblyCacheItemImpl_QueryInterface(IAssemblyCacheItem * IsEqualIID(riid, &IID_IAssemblyCacheItem)) { IAssemblyCacheItem_AddRef(iface); - *ppobj = This; + *ppobj = &This->IAssemblyCacheItem_iface; return S_OK; } diff --git a/reactos/dll/win32/fusion/asmenum.c b/reactos/dll/win32/fusion/asmenum.c index 42c7ca25e93..4a87768e166 100644 --- a/reactos/dll/win32/fusion/asmenum.c +++ b/reactos/dll/win32/fusion/asmenum.c @@ -55,7 +55,7 @@ static HRESULT WINAPI IAssemblyEnumImpl_QueryInterface(IAssemblyEnum *iface, IsEqualIID(riid, &IID_IAssemblyEnum)) { IAssemblyEnum_AddRef(iface); - *ppobj = This; + *ppobj = &This->IAssemblyEnum_iface; return S_OK; } diff --git a/reactos/dll/win32/fusion/asmname.c b/reactos/dll/win32/fusion/asmname.c index 0c74538e82c..cc9995b1908 100644 --- a/reactos/dll/win32/fusion/asmname.c +++ b/reactos/dll/win32/fusion/asmname.c @@ -70,7 +70,7 @@ static HRESULT WINAPI IAssemblyNameImpl_QueryInterface(IAssemblyName *iface, IsEqualIID(riid, &IID_IAssemblyName)) { IAssemblyName_AddRef(iface); - *ppobj = This; + *ppobj = &This->IAssemblyName_iface; return S_OK; } @@ -213,12 +213,10 @@ static HRESULT WINAPI IAssemblyNameImpl_GetDisplayName(IAssemblyName *iface, LPDWORD pccDisplayName, DWORD dwDisplayFlags) { + static const WCHAR equals[] = {'=',0}; IAssemblyNameImpl *name = impl_from_IAssemblyName(iface); - WCHAR verstr[30]; + WCHAR verstr[30], *cultureval = NULL; DWORD size; - LPWSTR cultureval = 0; - - static const WCHAR equals[] = {'=',0}; TRACE("(%p, %p, %p, %d)\n", iface, szDisplayName, pccDisplayName, dwDisplayFlags); @@ -228,9 +226,15 @@ static HRESULT WINAPI IAssemblyNameImpl_GetDisplayName(IAssemblyName *iface, if (!name->displayname || !*name->displayname) return FUSION_E_INVALID_NAME; - size = min(*pccDisplayName, lstrlenW(name->displayname) + 1); + size = strlenW(name->displayname) + 1; + + if (*pccDisplayName < size) + { + *pccDisplayName = size; + return E_NOT_SUFFICIENT_BUFFER; + } - lstrcpynW(szDisplayName, name->displayname, size); + if (szDisplayName) strcpyW(szDisplayName, name->displayname); *pccDisplayName = size; return S_OK; @@ -354,19 +358,24 @@ static HRESULT WINAPI IAssemblyNameImpl_GetName(IAssemblyName *iface, WCHAR *pwzName) { IAssemblyNameImpl *name = impl_from_IAssemblyName(iface); + DWORD len; TRACE("(%p, %p, %p)\n", iface, lpcwBuffer, pwzName); - if (!name->name) + if (name->name) + len = strlenW(name->name) + 1; + else + len = 0; + + if (*lpcwBuffer < len) { - *pwzName = '\0'; - *lpcwBuffer = 0; - return S_OK; + *lpcwBuffer = len; + return E_NOT_SUFFICIENT_BUFFER; } + if (!name->name) lpcwBuffer[0] = 0; + else strcpyW(pwzName, name->name); - lstrcpyW(pwzName, name->name); - *lpcwBuffer = lstrlenW(pwzName) + 1; - + *lpcwBuffer = len; return S_OK; } diff --git a/reactos/media/doc/README.WINE b/reactos/media/doc/README.WINE index a8116380f62..d27234550da 100644 --- a/reactos/media/doc/README.WINE +++ b/reactos/media/doc/README.WINE @@ -69,7 +69,7 @@ reactos/dll/win32/dciman32 # Synced to WineStaging-1.7.37 reactos/dll/win32/dwmapi # Synced to WineStaging-1.7.37 reactos/dll/win32/faultrep # Synced to WineStaging-1.7.37 reactos/dll/win32/fltlib # Synced to WineStaging-1.7.47 -reactos/dll/win32/fusion # Synced to WineStaging-1.7.37 +reactos/dll/win32/fusion # Synced to WineStaging-1.7.47 reactos/dll/win32/gdiplus # Synced to WineStaging-1.7.37 reactos/dll/win32/hhctrl.ocx # Synced to WineStaging-1.7.37 reactos/dll/win32/hlink # Synced to WineStaging-1.7.37