Commit bf70fe36 authored by André Hentschel's avatar André Hentschel Committed by Alexandre Julliard

fusion: Add implementation for CreateAssemblyCacheItem.

parent 3488f88f
......@@ -41,6 +41,19 @@
WINE_DEFAULT_DEBUG_CHANNEL(fusion);
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};
......@@ -141,13 +154,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);
......@@ -351,16 +357,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,
......@@ -560,12 +583,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);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment