ReactOS  0.4.14-dev-614-gbfd8a84
winsxs.idl File Reference

Go to the source code of this file.

Classes

struct  _FUSION_INSTALL_REFERENCE_
 
struct  _ASSEMBLY_INFO
 
interface  IAssemblyCache
 
interface  IAssemblyCacheItem
 
interface  unique
 

Typedefs

typedef struct _FUSION_INSTALL_REFERENCE_ FUSION_INSTALL_REFERENCE
 
typedef struct _FUSION_INSTALL_REFERENCE_LPFUSION_INSTALL_REFERENCE
 
typedef struct _ASSEMBLY_INFO ASSEMBLY_INFO
 
typedef const struct _FUSION_INSTALL_REFERENCE_LPCFUSION_INSTALL_REFERENCE
 

Enumerations

enum  CREATE_ASM_NAME_OBJ_FLAGS { CANOF_PARSE_DISPLAY_NAME = 0x1, CANOF_SET_DEFAULT_VALUES = 0x2 }
 

Functions

HRESULT WINAPI CreateAssemblyCache (IAssemblyCache **, DWORD)
 
HRESULT WINAPI CreateAssemblyNameObject (LPASSEMBLYNAME *, LPCWSTR, DWORD, LPVOID)
 

Typedef Documentation

◆ ASSEMBLY_INFO

◆ FUSION_INSTALL_REFERENCE

◆ LPCFUSION_INSTALL_REFERENCE

◆ LPFUSION_INSTALL_REFERENCE

Enumeration Type Documentation

◆ CREATE_ASM_NAME_OBJ_FLAGS

Enumerator
CANOF_PARSE_DISPLAY_NAME 
CANOF_SET_DEFAULT_VALUES 

Definition at line 191 of file winsxs.idl.

Function Documentation

◆ CreateAssemblyCache()

HRESULT WINAPI CreateAssemblyCache ( IAssemblyCache **  ,
DWORD   
)

Definition at line 555 of file asmcache.c.

556 {
558 
559  TRACE("(%p, %d)\n", ppAsmCache, dwReserved);
560 
561  if (!ppAsmCache)
562  return E_INVALIDARG;
563 
564  *ppAsmCache = NULL;
565 
566  if (!(cache = heap_alloc(sizeof(*cache)))) return E_OUTOFMEMORY;
567 
569  cache->ref = 1;
571  if (!cache->lock)
572  {
573  heap_free( cache );
574  return HRESULT_FROM_WIN32( GetLastError() );
575  }
576  *ppAsmCache = &cache->IAssemblyCache_iface;
577  return S_OK;
578 }
Definition: cache.c:48
#define HRESULT_FROM_WIN32(x)
Definition: winerror.h:92
DWORD WINAPI GetLastError(VOID)
Definition: except.c:1059
static void * heap_alloc(size_t len)
Definition: appwiz.h:65
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
_In_ HANDLE _In_ DWORD _In_ DWORD _Inout_opt_ LPOVERLAPPED _In_opt_ LPTRANSMIT_FILE_BUFFERS _In_ DWORD dwReserved
Definition: mswsock.h:90
#define E_INVALIDARG
Definition: ddrawi.h:101
smooth NULL
Definition: ftsmooth.c:416
HANDLE lock
Definition: cache.c:52
#define TRACE(s)
Definition: solgame.cpp:4
static const IAssemblyCacheVtbl AssemblyCacheVtbl
Definition: asmcache.c:541
static IOleCache * cache
Definition: ole2.c:75
IAssemblyCache IAssemblyCache_iface
Definition: cache.c:50
#define S_OK
Definition: intsafe.h:59
HANDLE WINAPI DECLSPEC_HOTPATCH CreateMutexW(IN LPSECURITY_ATTRIBUTES lpMutexAttributes OPTIONAL, IN BOOL bInitialOwner, IN LPCWSTR lpName OPTIONAL)
Definition: synch.c:576
static const WCHAR cache_mutex_nameW[]
Definition: asmcache.c:59
static BOOL heap_free(void *mem)
Definition: appwiz.h:75

Referenced by test_QueryAssemblyInfo().

◆ CreateAssemblyNameObject()

HRESULT WINAPI CreateAssemblyNameObject ( LPASSEMBLYNAME *  ,
LPCWSTR  ,
DWORD  ,
LPVOID   
)

Definition at line 368 of file name.c.

373 {
374  struct name *name;
375  HRESULT hr;
376 
377  TRACE("%p, %s, 0x%08x, %p\n", obj, debugstr_w(assembly), flags, reserved);
378 
379  if (!obj) return E_INVALIDARG;
380 
381  *obj = NULL;
383  return E_INVALIDARG;
384 
385  if (!(name = HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*name) )))
386  return E_OUTOFMEMORY;
387 
389  name->refs = 1;
390 
392  if (hr != S_OK)
393  {
394  HeapFree( GetProcessHeap(), 0, name->name );
395  HeapFree( GetProcessHeap(), 0, name->arch );
396  HeapFree( GetProcessHeap(), 0, name->token );
397  HeapFree( GetProcessHeap(), 0, name->type );
399  HeapFree( GetProcessHeap(), 0, name );
400  return hr;
401  }
403  return S_OK;
404 }
WCHAR * token
Definition: name.c:44
WCHAR * version
Definition: name.c:46
HRESULT hr
Definition: shlfolder.c:183
IAssemblyName IAssemblyName_iface
Definition: name.c:40
WCHAR * type
Definition: name.c:45
LPCSTR name
Definition: name.c:34
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
#define debugstr_w
Definition: kernel32.h:32
r reserved
Definition: btrfs.c:2865
#define E_INVALIDARG
Definition: ddrawi.h:101
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
#define GetProcessHeap()
Definition: compat.h:403
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
LONG HRESULT
Definition: typedefs.h:77
LONG refs
Definition: name.c:41
WCHAR * arch
Definition: name.c:43
GLbitfield flags
Definition: glext.h:7161
#define S_OK
Definition: intsafe.h:59
static const IAssemblyNameVtbl name_vtbl
Definition: name.c:283
static HRESULT parse_displayname(struct name *name, const WCHAR *displayname)
Definition: name.c:315
#define HEAP_ZERO_MEMORY
Definition: compat.h:123
Definition: name.c:38
#define HeapFree(x, y, z)
Definition: compat.h:402
WCHAR * name
Definition: name.c:42

Referenced by test_CreateAssemblyNameObject().