[FUSION] Sync with Wine Staging 1.7.37. CORE-9246

svn path=/trunk/; revision=66848
This commit is contained in:
Amine Khaldi 2015-03-21 12:21:40 +00:00
parent 5930d62892
commit 9e40fb7db8
4 changed files with 35 additions and 18 deletions

View file

@ -20,6 +20,19 @@
#include "fusionpriv.h"
typedef struct {
IAssemblyCache IAssemblyCache_iface;
LONG ref;
HANDLE lock;
} IAssemblyCacheImpl;
typedef struct {
IAssemblyCacheItem IAssemblyCacheItem_iface;
LONG ref;
} IAssemblyCacheItemImpl;
static const WCHAR cache_mutex_nameW[] =
{'_','_','W','I','N','E','_','F','U','S','I','O','N','_','C','A','C','H','E','_','M','U','T','E','X','_','_',0};
@ -120,13 +133,6 @@ static BOOL get_assembly_directory(LPWSTR dir, DWORD size, const char *version,
/* IAssemblyCache */
typedef struct {
IAssemblyCache IAssemblyCache_iface;
LONG ref;
HANDLE lock;
} IAssemblyCacheImpl;
static inline IAssemblyCacheImpl *impl_from_IAssemblyCache(IAssemblyCache *iface)
{
return CONTAINING_RECORD(iface, IAssemblyCacheImpl, IAssemblyCache_iface);
@ -330,16 +336,33 @@ done:
return hr;
}
static const IAssemblyCacheItemVtbl AssemblyCacheItemVtbl;
static HRESULT WINAPI IAssemblyCacheImpl_CreateAssemblyCacheItem(IAssemblyCache *iface,
DWORD dwFlags,
PVOID pvReserved,
IAssemblyCacheItem **ppAsmItem,
LPCWSTR pszAssemblyName)
{
FIXME("(%p, %d, %p, %p, %s) stub!\n", iface, dwFlags, pvReserved,
IAssemblyCacheItemImpl *item;
FIXME("(%p, %d, %p, %p, %s) semi-stub!\n", iface, dwFlags, pvReserved,
ppAsmItem, debugstr_w(pszAssemblyName));
return E_NOTIMPL;
if (!ppAsmItem)
return E_INVALIDARG;
*ppAsmItem = NULL;
item = HeapAlloc(GetProcessHeap(), 0, sizeof(IAssemblyCacheItemImpl));
if (!item)
return E_OUTOFMEMORY;
item->IAssemblyCacheItem_iface.lpVtbl = &AssemblyCacheItemVtbl;
item->ref = 1;
*ppAsmItem = &item->IAssemblyCacheItem_iface;
return S_OK;
}
static HRESULT WINAPI IAssemblyCacheImpl_CreateAssemblyScavenger(IAssemblyCache *iface,
@ -539,12 +562,6 @@ HRESULT WINAPI CreateAssemblyCache(IAssemblyCache **ppAsmCache, DWORD dwReserved
/* IAssemblyCacheItem */
typedef struct {
IAssemblyCacheItem IAssemblyCacheItem_iface;
LONG ref;
} IAssemblyCacheItemImpl;
static inline IAssemblyCacheItemImpl *impl_from_IAssemblyCacheItem(IAssemblyCacheItem *iface)
{
return CONTAINING_RECORD(iface, IAssemblyCacheItemImpl, IAssemblyCacheItem_iface);

View file

@ -482,7 +482,7 @@ HRESULT IAssemblyName_GetPath(IAssemblyName *iface, LPWSTR buf, ULONG *len)
if (*len <= buffer_size)
lstrcpyW(buf, name->path);
else
return HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER);
return E_NOT_SUFFICIENT_BUFFER;
return S_OK;
}

View file

@ -148,7 +148,7 @@ HRESULT WINAPI GetCachePath(ASM_CACHE_FLAGS dwCacheFlags, LPWSTR pwzCachePath,
len++;
if (*pcchPath <= len || !pwzCachePath)
hr = HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER);
hr = E_NOT_SUFFICIENT_BUFFER;
else if (pwzCachePath)
strcpyW(pwzCachePath, path);

View file

@ -75,7 +75,7 @@ reactos/dll/win32/dciman32 # Synced to Wine-1.7.27
reactos/dll/win32/dwmapi # Synced to WineStaging-1.7.37
reactos/dll/win32/faultrep # Synced to Wine-1.7.27
reactos/dll/win32/fltlib # Synced to Wine-1.7.27
reactos/dll/win32/fusion # Synced to Wine-1.7.27
reactos/dll/win32/fusion # Synced to WineStaging-1.7.37
reactos/dll/win32/gdiplus # Synced to Wine-1.7.27
reactos/dll/win32/hhctrl.ocx # Synced to Wine-1.7.27
reactos/dll/win32/hlink # Synced to Wine-1.7.27