fusion: Add implementation for CreateAssemblyCacheItem.
This commit is contained in:
parent
3488f88fe6
commit
bf70fe3611
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue