ReactOS 0.4.16-dev-2359-g4b75ec5
metadata.c File Reference
#include <stdio.h>
#include <stdarg.h>
#include <assert.h>
#include "windef.h"
#include "winbase.h"
#include "winreg.h"
#include "ole2.h"
#include "cor.h"
#include "mscoree.h"
#include "corhdr.h"
#include "cordebug.h"
#include "metahost.h"
#include "wine/list.h"
#include "mscoree_private.h"
#include "wine/debug.h"
Include dependency graph for metadata.c:

Go to the source code of this file.

Classes

struct  MetaDataDispenser
 

Macros

#define COBJMACROS
 

Typedefs

typedef struct MetaDataDispenser MetaDataDispenser
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (mscoree)
 
static MetaDataDispenserimpl_from_IMetaDataDispenserEx (IMetaDataDispenserEx *iface)
 
static HRESULT WINAPI MetaDataDispenser_QueryInterface (IMetaDataDispenserEx *iface, REFIID riid, void **ppvObject)
 
static ULONG WINAPI MetaDataDispenser_AddRef (IMetaDataDispenserEx *iface)
 
static ULONG WINAPI MetaDataDispenser_Release (IMetaDataDispenserEx *iface)
 
static HRESULT WINAPI MetaDataDispenser_DefineScope (IMetaDataDispenserEx *iface, REFCLSID rclsid, DWORD dwCreateFlags, REFIID riid, IUnknown **ppIUnk)
 
static HRESULT WINAPI MetaDataDispenser_OpenScope (IMetaDataDispenserEx *iface, LPCWSTR szScope, DWORD dwOpenFlags, REFIID riid, IUnknown **ppIUnk)
 
static HRESULT WINAPI MetaDataDispenser_OpenScopeOnMemory (IMetaDataDispenserEx *iface, const void *pData, ULONG cbData, DWORD dwOpenFlags, REFIID riid, IUnknown **ppIUnk)
 
static HRESULT WINAPI MetaDataDispenser_SetOption (IMetaDataDispenserEx *iface, REFGUID optionid, const VARIANT *value)
 
static HRESULT WINAPI MetaDataDispenser_GetOption (IMetaDataDispenserEx *iface, REFGUID optionid, VARIANT *pvalue)
 
static HRESULT WINAPI MetaDataDispenser_OpenScopeOnITypeInfo (IMetaDataDispenserEx *iface, ITypeInfo *pITI, DWORD dwOpenFlags, REFIID riid, IUnknown **ppIUnk)
 
static HRESULT WINAPI MetaDataDispenser_GetCORSystemDirectory (IMetaDataDispenserEx *iface, LPWSTR szBuffer, DWORD cchBuffer, DWORD *pchBuffer)
 
static HRESULT WINAPI MetaDataDispenser_FindAssembly (IMetaDataDispenserEx *iface, LPCWSTR szAppBase, LPCWSTR szPrivateBin, LPCWSTR szGlobalBin, LPCWSTR szAssemblyName, LPWSTR szName, ULONG cchName, ULONG *pcName)
 
static HRESULT WINAPI MetaDataDispenser_FindAssemblyModule (IMetaDataDispenserEx *iface, LPCWSTR szAppBase, LPCWSTR szPrivateBin, LPCWSTR szGlobalBin, LPCWSTR szAssemblyName, LPCWSTR szModuleName, LPWSTR szName, ULONG cchName, ULONG *pcName)
 
HRESULT MetaDataDispenser_CreateInstance (IUnknown **ppUnk)
 

Variables

static const struct IMetaDataDispenserExVtbl MetaDataDispenserVtbl
 

Macro Definition Documentation

◆ COBJMACROS

#define COBJMACROS

Definition at line 25 of file metadata.c.

Typedef Documentation

◆ MetaDataDispenser

Function Documentation

◆ impl_from_IMetaDataDispenserEx()

static MetaDataDispenser * impl_from_IMetaDataDispenserEx ( IMetaDataDispenserEx iface)
inlinestatic

Definition at line 49 of file metadata.c.

50{
51 return CONTAINING_RECORD(iface, MetaDataDispenser, IMetaDataDispenserEx_iface);
52}
#define CONTAINING_RECORD(address, type, field)
Definition: typedefs.h:260

Referenced by MetaDataDispenser_AddRef(), and MetaDataDispenser_Release().

◆ MetaDataDispenser_AddRef()

static ULONG WINAPI MetaDataDispenser_AddRef ( IMetaDataDispenserEx iface)
static

Definition at line 76 of file metadata.c.

77{
80
81 TRACE("%p ref=%lu\n", This, ref);
82
83 return ref;
84}
#define InterlockedIncrement
Definition: armddk.h:53
static MetaDataDispenser * impl_from_IMetaDataDispenserEx(IMetaDataDispenserEx *iface)
Definition: metadata.c:49
#define TRACE(s)
Definition: solgame.cpp:4
Definition: send.c:48
uint32_t ULONG
Definition: typedefs.h:59

◆ MetaDataDispenser_CreateInstance()

HRESULT MetaDataDispenser_CreateInstance ( IUnknown **  ppUnk)

Definition at line 189 of file metadata.c.

190{
192
193 This = malloc(sizeof(MetaDataDispenser));
194
195 if (!This)
196 return E_OUTOFMEMORY;
197
198 This->IMetaDataDispenserEx_iface.lpVtbl = &MetaDataDispenserVtbl;
199 This->ref = 1;
200
201 *ppUnk = (IUnknown*)&This->IMetaDataDispenserEx_iface;
202
203 return S_OK;
204}
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
#define malloc
Definition: debug_ros.c:4
static const struct IMetaDataDispenserExVtbl MetaDataDispenserVtbl
Definition: metadata.c:173
#define S_OK
Definition: intsafe.h:52

Referenced by RuntimeHost_GetInterface().

◆ MetaDataDispenser_DefineScope()

static HRESULT WINAPI MetaDataDispenser_DefineScope ( IMetaDataDispenserEx iface,
REFCLSID  rclsid,
DWORD  dwCreateFlags,
REFIID  riid,
IUnknown **  ppIUnk 
)
static

Definition at line 101 of file metadata.c.

103{
104 FIXME("%p %s %lx %s %p\n", iface, debugstr_guid(rclsid), dwCreateFlags,
105 debugstr_guid(riid), ppIUnk);
106 return E_NOTIMPL;
107}
#define FIXME(fmt,...)
Definition: precomp.h:53
#define E_NOTIMPL
Definition: ddrawi.h:99
REFIID riid
Definition: atlbase.h:39
#define debugstr_guid
Definition: kernel32.h:35

◆ MetaDataDispenser_FindAssembly()

static HRESULT WINAPI MetaDataDispenser_FindAssembly ( IMetaDataDispenserEx iface,
LPCWSTR  szAppBase,
LPCWSTR  szPrivateBin,
LPCWSTR  szGlobalBin,
LPCWSTR  szAssemblyName,
LPWSTR  szName,
ULONG  cchName,
ULONG pcName 
)
static

Definition at line 153 of file metadata.c.

156{
157 FIXME("%p %s %s %s %s %p %lu %p\n", iface, debugstr_w(szAppBase),
158 debugstr_w(szPrivateBin), debugstr_w(szGlobalBin),
160 return E_NOTIMPL;
161}
#define debugstr_w
Definition: kernel32.h:32
static LPCWSTR szAssemblyName
Definition: asmenum.c:37
static const WCHAR szName[]
Definition: powrprof.c:45
_In_ PSID _Out_writes_to_opt_ cchName LPSTR _Inout_ LPDWORD cchName
Definition: winbase.h:2521

◆ MetaDataDispenser_FindAssemblyModule()

static HRESULT WINAPI MetaDataDispenser_FindAssemblyModule ( IMetaDataDispenserEx iface,
LPCWSTR  szAppBase,
LPCWSTR  szPrivateBin,
LPCWSTR  szGlobalBin,
LPCWSTR  szAssemblyName,
LPCWSTR  szModuleName,
LPWSTR  szName,
ULONG  cchName,
ULONG pcName 
)
static

Definition at line 163 of file metadata.c.

166{
167 FIXME("%p %s %s %s %s %s %p %lu %p\n", iface, debugstr_w(szAppBase),
168 debugstr_w(szPrivateBin), debugstr_w(szGlobalBin), debugstr_w(szAssemblyName),
170 return E_NOTIMPL;
171}
LPCWSTR LPCWSTR szModuleName
Definition: env.c:37

◆ MetaDataDispenser_GetCORSystemDirectory()

static HRESULT WINAPI MetaDataDispenser_GetCORSystemDirectory ( IMetaDataDispenserEx iface,
LPWSTR  szBuffer,
DWORD  cchBuffer,
DWORD pchBuffer 
)
static

Definition at line 146 of file metadata.c.

148{
149 FIXME("%p %p %lu %p\n", iface, szBuffer, cchBuffer, pchBuffer);
150 return E_NOTIMPL;
151}
static DWORD cchBuffer
Definition: fusion.c:85

◆ MetaDataDispenser_GetOption()

static HRESULT WINAPI MetaDataDispenser_GetOption ( IMetaDataDispenserEx iface,
REFGUID  optionid,
VARIANT pvalue 
)
static

Definition at line 132 of file metadata.c.

134{
135 FIXME("%p %s\n", iface, debugstr_guid(optionid));
136 return E_NOTIMPL;
137}

◆ MetaDataDispenser_OpenScope()

static HRESULT WINAPI MetaDataDispenser_OpenScope ( IMetaDataDispenserEx iface,
LPCWSTR  szScope,
DWORD  dwOpenFlags,
REFIID  riid,
IUnknown **  ppIUnk 
)
static

Definition at line 109 of file metadata.c.

111{
112 FIXME("%p %s %lx %s %p\n", iface, debugstr_w(szScope), dwOpenFlags,
113 debugstr_guid(riid), ppIUnk);
114 return E_NOTIMPL;
115}

◆ MetaDataDispenser_OpenScopeOnITypeInfo()

static HRESULT WINAPI MetaDataDispenser_OpenScopeOnITypeInfo ( IMetaDataDispenserEx iface,
ITypeInfo pITI,
DWORD  dwOpenFlags,
REFIID  riid,
IUnknown **  ppIUnk 
)
static

Definition at line 139 of file metadata.c.

141{
142 FIXME("%p %p %lu %s %p\n", iface, pITI, dwOpenFlags, debugstr_guid(riid), ppIUnk);
143 return E_NOTIMPL;
144}

◆ MetaDataDispenser_OpenScopeOnMemory()

static HRESULT WINAPI MetaDataDispenser_OpenScopeOnMemory ( IMetaDataDispenserEx iface,
const void pData,
ULONG  cbData,
DWORD  dwOpenFlags,
REFIID  riid,
IUnknown **  ppIUnk 
)
static

Definition at line 117 of file metadata.c.

119{
120 FIXME("%p %p %lu %lx %s %p\n", iface, pData, cbData, dwOpenFlags,
121 debugstr_guid(riid), ppIUnk);
122 return E_NOTIMPL;
123}
_In_opt_ _In_opt_ _In_ _In_ DWORD cbData
Definition: shlwapi.h:761
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
Definition: twain.h:1830

◆ MetaDataDispenser_QueryInterface()

static HRESULT WINAPI MetaDataDispenser_QueryInterface ( IMetaDataDispenserEx iface,
REFIID  riid,
void **  ppvObject 
)
static

Definition at line 54 of file metadata.c.

56{
57 TRACE("%p %s %p\n", iface, debugstr_guid(riid), ppvObject);
58
59 if (IsEqualGUID(riid, &IID_IMetaDataDispenserEx) ||
60 IsEqualGUID(riid, &IID_IMetaDataDispenser) ||
62 {
63 *ppvObject = iface;
64 }
65 else
66 {
67 FIXME("Unsupported interface %s\n", debugstr_guid(riid));
68 return E_NOINTERFACE;
69 }
70
71 IMetaDataDispenserEx_AddRef( iface );
72
73 return S_OK;
74}
const GUID IID_IUnknown
#define IsEqualGUID(rguid1, rguid2)
Definition: guiddef.h:147
#define E_NOINTERFACE
Definition: winerror.h:3479

◆ MetaDataDispenser_Release()

static ULONG WINAPI MetaDataDispenser_Release ( IMetaDataDispenserEx iface)
static

Definition at line 86 of file metadata.c.

87{
90
91 TRACE("%p ref=%lu\n", This, ref);
92
93 if (ref == 0)
94 {
95 free(This);
96 }
97
98 return ref;
99}
#define InterlockedDecrement
Definition: armddk.h:52
#define free
Definition: debug_ros.c:5

◆ MetaDataDispenser_SetOption()

static HRESULT WINAPI MetaDataDispenser_SetOption ( IMetaDataDispenserEx iface,
REFGUID  optionid,
const VARIANT value 
)
static

Definition at line 125 of file metadata.c.

127{
128 FIXME("%p %s\n", iface, debugstr_guid(optionid));
129 return E_NOTIMPL;
130}

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( mscoree  )

Variable Documentation

◆ MetaDataDispenserVtbl

const struct IMetaDataDispenserExVtbl MetaDataDispenserVtbl
static
Initial value:
=
{
}
static HRESULT WINAPI MetaDataDispenser_QueryInterface(IMetaDataDispenserEx *iface, REFIID riid, void **ppvObject)
Definition: metadata.c:54
static ULONG WINAPI MetaDataDispenser_Release(IMetaDataDispenserEx *iface)
Definition: metadata.c:86
static HRESULT WINAPI MetaDataDispenser_GetOption(IMetaDataDispenserEx *iface, REFGUID optionid, VARIANT *pvalue)
Definition: metadata.c:132
static HRESULT WINAPI MetaDataDispenser_FindAssemblyModule(IMetaDataDispenserEx *iface, LPCWSTR szAppBase, LPCWSTR szPrivateBin, LPCWSTR szGlobalBin, LPCWSTR szAssemblyName, LPCWSTR szModuleName, LPWSTR szName, ULONG cchName, ULONG *pcName)
Definition: metadata.c:163
static HRESULT WINAPI MetaDataDispenser_OpenScopeOnMemory(IMetaDataDispenserEx *iface, const void *pData, ULONG cbData, DWORD dwOpenFlags, REFIID riid, IUnknown **ppIUnk)
Definition: metadata.c:117
static ULONG WINAPI MetaDataDispenser_AddRef(IMetaDataDispenserEx *iface)
Definition: metadata.c:76
static HRESULT WINAPI MetaDataDispenser_DefineScope(IMetaDataDispenserEx *iface, REFCLSID rclsid, DWORD dwCreateFlags, REFIID riid, IUnknown **ppIUnk)
Definition: metadata.c:101
static HRESULT WINAPI MetaDataDispenser_FindAssembly(IMetaDataDispenserEx *iface, LPCWSTR szAppBase, LPCWSTR szPrivateBin, LPCWSTR szGlobalBin, LPCWSTR szAssemblyName, LPWSTR szName, ULONG cchName, ULONG *pcName)
Definition: metadata.c:153
static HRESULT WINAPI MetaDataDispenser_OpenScopeOnITypeInfo(IMetaDataDispenserEx *iface, ITypeInfo *pITI, DWORD dwOpenFlags, REFIID riid, IUnknown **ppIUnk)
Definition: metadata.c:139
static HRESULT WINAPI MetaDataDispenser_SetOption(IMetaDataDispenserEx *iface, REFGUID optionid, const VARIANT *value)
Definition: metadata.c:125
static HRESULT WINAPI MetaDataDispenser_OpenScope(IMetaDataDispenserEx *iface, LPCWSTR szScope, DWORD dwOpenFlags, REFIID riid, IUnknown **ppIUnk)
Definition: metadata.c:109
static HRESULT WINAPI MetaDataDispenser_GetCORSystemDirectory(IMetaDataDispenserEx *iface, LPWSTR szBuffer, DWORD cchBuffer, DWORD *pchBuffer)
Definition: metadata.c:146

Definition at line 173 of file metadata.c.

Referenced by MetaDataDispenser_CreateInstance().