ReactOS  0.4.15-dev-1029-g3f30b1e
name.c File Reference
#include <stdarg.h>
#include "windef.h"
#include "winbase.h"
#include "ole2.h"
#include "winsxs.h"
#include "wine/debug.h"
#include "sxs_private.h"
Include dependency graph for name.c:

Go to the source code of this file.

Classes

struct  name
 

Macros

#define COBJMACROS
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (sxs)
 
static struct nameimpl_from_IAssemblyName (IAssemblyName *iface)
 
static HRESULT WINAPI name_QueryInterface (IAssemblyName *iface, REFIID riid, void **obj)
 
static ULONG WINAPI name_AddRef (IAssemblyName *iface)
 
static ULONG WINAPI name_Release (IAssemblyName *iface)
 
static HRESULT WINAPI name_SetProperty (IAssemblyName *iface, DWORD id, LPVOID property, DWORD size)
 
static HRESULT WINAPI name_GetProperty (IAssemblyName *iface, DWORD id, LPVOID buffer, LPDWORD buflen)
 
static HRESULT WINAPI name_Finalize (IAssemblyName *iface)
 
static HRESULT WINAPI name_GetDisplayName (IAssemblyName *iface, LPOLESTR buffer, LPDWORD buflen, DWORD flags)
 
static HRESULT WINAPI name_Reserved (IAssemblyName *iface, REFIID riid, IUnknown *pUnkReserved1, IUnknown *pUnkReserved2, LPCOLESTR szReserved, LONGLONG llReserved, LPVOID pvReserved, DWORD cbReserved, LPVOID *ppReserved)
 
const WCHARget_name_attribute (IAssemblyName *iface, enum name_attr_id id)
 
static HRESULT WINAPI name_GetName (IAssemblyName *iface, LPDWORD buflen, WCHAR *buffer)
 
static HRESULT parse_version (WCHAR *version, DWORD *high, DWORD *low)
 
static HRESULT WINAPI name_GetVersion (IAssemblyName *iface, LPDWORD high, LPDWORD low)
 
static HRESULT WINAPI name_IsEqual (IAssemblyName *name1, IAssemblyName *name2, DWORD flags)
 
static HRESULT WINAPI name_Clone (IAssemblyName *iface, IAssemblyName **name)
 
static WCHARparse_value (const WCHAR *str, unsigned int *len)
 
static HRESULT parse_displayname (struct name *name, const WCHAR *displayname)
 
HRESULT WINAPI CreateAssemblyNameObject (LPASSEMBLYNAME *obj, LPCWSTR assembly, DWORD flags, LPVOID reserved)
 

Variables

static const WCHAR archW [] = {'p','r','o','c','e','s','s','o','r','A','r','c','h','i','t','e','c','t','u','r','e',0}
 
static const WCHAR tokenW [] = {'p','u','b','l','i','c','K','e','y','T','o','k','e','n',0}
 
static const WCHAR typeW [] = {'t','y','p','e',0}
 
static const WCHAR versionW [] = {'v','e','r','s','i','o','n',0}
 
static const IAssemblyNameVtbl name_vtbl
 

Macro Definition Documentation

◆ COBJMACROS

#define COBJMACROS

Definition at line 26 of file name.c.

Function Documentation

◆ CreateAssemblyNameObject()

HRESULT WINAPI CreateAssemblyNameObject ( LPASSEMBLYNAME *  obj,
LPCWSTR  assembly,
DWORD  flags,
LPVOID  reserved 
)

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:2940
#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:484
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
LONG HRESULT
Definition: typedefs.h:79
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:134
Definition: name.c:38
#define HeapFree(x, y, z)
Definition: compat.h:483
WCHAR * name
Definition: name.c:42

Referenced by test_CreateAssemblyNameObject().

◆ get_name_attribute()

const WCHAR* get_name_attribute ( IAssemblyName iface,
enum name_attr_id  id 
)

Definition at line 185 of file name.c.

186 {
187  struct name *name = impl_from_IAssemblyName( iface );
188 
189  switch (id)
190  {
191  case NAME_ATTR_ID_NAME: return name->name;
192  case NAME_ATTR_ID_ARCH: return name->arch;
193  case NAME_ATTR_ID_TOKEN: return name->token;
194  case NAME_ATTR_ID_TYPE: return name->type;
195  case NAME_ATTR_ID_VERSION: return name->version;
196  default:
197  ERR("unhandled name attribute %u\n", id);
198  break;
199  }
200  return NULL;
201 }
WCHAR * token
Definition: name.c:44
WCHAR * version
Definition: name.c:46
WCHAR * type
Definition: name.c:45
smooth NULL
Definition: ftsmooth.c:416
static struct name * impl_from_IAssemblyName(IAssemblyName *iface)
Definition: name.c:54
WCHAR * arch
Definition: name.c:43
#define ERR(fmt,...)
Definition: debug.h:110
Definition: name.c:38
WCHAR * name
Definition: name.c:42

Referenced by cache_QueryAssemblyInfo(), cache_UninstallAssembly(), and name_GetName().

◆ impl_from_IAssemblyName()

static struct name* impl_from_IAssemblyName ( IAssemblyName iface)
inlinestatic

Definition at line 54 of file name.c.

55 {
56  return CONTAINING_RECORD( iface, struct name, IAssemblyName_iface );
57 }
IAssemblyName IAssemblyName_iface
Definition: name.c:40
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
Definition: Messaging.c:560
Definition: name.c:38

Referenced by get_name_attribute(), name_AddRef(), name_GetDisplayName(), name_GetVersion(), name_QueryInterface(), and name_Release().

◆ name_AddRef()

static ULONG WINAPI name_AddRef ( IAssemblyName iface)
static

Definition at line 81 of file name.c.

83 {
84  struct name *name = impl_from_IAssemblyName( iface );
85  return InterlockedIncrement( &name->refs );
86 }
static struct name * impl_from_IAssemblyName(IAssemblyName *iface)
Definition: name.c:54
LONG refs
Definition: name.c:41
#define InterlockedIncrement
Definition: armddk.h:53
Definition: name.c:38

◆ name_Clone()

static HRESULT WINAPI name_Clone ( IAssemblyName iface,
IAssemblyName **  name 
)
static

Definition at line 275 of file name.c.

278 {
279  FIXME("%p, %p\n", iface, name);
280  return E_NOTIMPL;
281 }
#define FIXME(fmt,...)
Definition: debug.h:111
#define E_NOTIMPL
Definition: ddrawi.h:99
Definition: name.c:38

◆ name_Finalize()

static HRESULT WINAPI name_Finalize ( IAssemblyName iface)
static

Definition at line 126 of file name.c.

128 {
129  FIXME("%p\n", iface);
130  return E_NOTIMPL;
131 }
#define FIXME(fmt,...)
Definition: debug.h:111
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ name_GetDisplayName()

static HRESULT WINAPI name_GetDisplayName ( IAssemblyName iface,
LPOLESTR  buffer,
LPDWORD  buflen,
DWORD  flags 
)
static

Definition at line 133 of file name.c.

138 {
139  static const WCHAR fmtW[] = {',','%','s','=','\"','%','s','\"',0};
140  struct name *name = impl_from_IAssemblyName( iface );
141  WCHAR version[30];
142  unsigned int len;
143 
144  TRACE("%p, %p, %p, 0x%08x\n", iface, buffer, buflen, flags);
145 
146  if (!buflen || flags) return E_INVALIDARG;
147 
148  len = lstrlenW( name->name ) + 1;
149  if (name->arch) len += lstrlenW( archW ) + lstrlenW( name->arch ) + 4;
150  if (name->token) len += lstrlenW( tokenW ) + lstrlenW( name->token ) + 4;
151  if (name->type) len += lstrlenW( typeW ) + lstrlenW( name->type ) + 4;
152  if (name->version) len += lstrlenW( versionW ) + lstrlenW( version ) + 4;
153  if (len > *buflen)
154  {
155  *buflen = len;
157  }
158  lstrcpyW( buffer, name->name );
159  len = lstrlenW( buffer );
160  if (name->arch) len += swprintf( buffer + len, fmtW, archW, name->arch );
161  if (name->token) len += swprintf( buffer + len, fmtW, tokenW, name->token );
162  if (name->type) len += swprintf( buffer + len, fmtW, typeW, name->type );
163  if (name->version) len += swprintf( buffer + len, fmtW, versionW, name->version );
164  return S_OK;
165 }
#define HRESULT_FROM_WIN32(x)
Definition: winerror.h:92
WCHAR * token
Definition: name.c:44
WCHAR * version
Definition: name.c:46
static const WCHAR typeW[]
Definition: name.c:51
GLuint buffer
Definition: glext.h:5915
WCHAR * type
Definition: name.c:45
#define lstrlenW
Definition: compat.h:498
static const WCHAR archW[]
Definition: name.c:49
#define E_INVALIDARG
Definition: ddrawi.h:101
static const WCHAR version[]
Definition: asmname.c:66
static struct name * impl_from_IAssemblyName(IAssemblyName *iface)
Definition: name.c:54
#define TRACE(s)
Definition: solgame.cpp:4
__wchar_t WCHAR
Definition: xmlstorage.h:180
#define swprintf(buf, format,...)
Definition: sprintf.c:56
WCHAR * arch
Definition: name.c:43
GLbitfield flags
Definition: glext.h:7161
GLenum GLsizei len
Definition: glext.h:6722
#define S_OK
Definition: intsafe.h:59
#define lstrcpyW
Definition: compat.h:497
Definition: name.c:38
static const WCHAR tokenW[]
Definition: name.c:50
static const WCHAR versionW[]
Definition: name.c:52
WCHAR * name
Definition: name.c:42
#define ERROR_INSUFFICIENT_BUFFER
Definition: dderror.h:10

◆ name_GetName()

static HRESULT WINAPI name_GetName ( IAssemblyName iface,
LPDWORD  buflen,
WCHAR buffer 
)
static

Definition at line 203 of file name.c.

207 {
208  const WCHAR *name;
209  int len;
210 
211  TRACE("%p, %p, %p\n", iface, buflen, buffer);
212 
213  if (!buflen || !buffer) return E_INVALIDARG;
214 
216  len = lstrlenW( name ) + 1;
217  if (len > *buflen)
218  {
219  *buflen = len;
221  }
222  lstrcpyW( buffer, name );
223  *buflen = len + 3;
224  return S_OK;
225 }
#define HRESULT_FROM_WIN32(x)
Definition: winerror.h:92
const WCHAR * get_name_attribute(IAssemblyName *iface, enum name_attr_id id)
Definition: name.c:185
GLuint buffer
Definition: glext.h:5915
#define lstrlenW
Definition: compat.h:498
LPCSTR name
Definition: name.c:34
#define E_INVALIDARG
Definition: ddrawi.h:101
#define TRACE(s)
Definition: solgame.cpp:4
__wchar_t WCHAR
Definition: xmlstorage.h:180
GLenum GLsizei len
Definition: glext.h:6722
#define S_OK
Definition: intsafe.h:59
#define lstrcpyW
Definition: compat.h:497
Definition: name.c:38
#define ERROR_INSUFFICIENT_BUFFER
Definition: dderror.h:10

◆ name_GetProperty()

static HRESULT WINAPI name_GetProperty ( IAssemblyName iface,
DWORD  id,
LPVOID  buffer,
LPDWORD  buflen 
)
static

Definition at line 116 of file name.c.

121 {
122  FIXME("%p, %d, %p, %p\n", iface, id, buffer, buflen);
123  return E_NOTIMPL;
124 }
GLuint buffer
Definition: glext.h:5915
#define FIXME(fmt,...)
Definition: debug.h:111
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ name_GetVersion()

static HRESULT WINAPI name_GetVersion ( IAssemblyName iface,
LPDWORD  high,
LPDWORD  low 
)
static

Definition at line 248 of file name.c.

252 {
253  struct name *name = impl_from_IAssemblyName( iface );
254  WCHAR *version;
255  HRESULT hr;
256 
257  TRACE("%p, %p, %p\n", iface, high, low);
258 
260  if (!(version = strdupW( name->version ))) return E_OUTOFMEMORY;
261  hr = parse_version( version, high, low );
263  return hr;
264 }
#define HRESULT_FROM_WIN32(x)
Definition: winerror.h:92
WCHAR * version
Definition: name.c:46
HRESULT hr
Definition: shlfolder.c:183
static WCHAR * strdupW(const WCHAR *src)
Definition: main.c:92
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
static const WCHAR version[]
Definition: asmname.c:66
static struct name * impl_from_IAssemblyName(IAssemblyName *iface)
Definition: name.c:54
#define TRACE(s)
Definition: solgame.cpp:4
#define GetProcessHeap()
Definition: compat.h:484
__wchar_t WCHAR
Definition: xmlstorage.h:180
LONG HRESULT
Definition: typedefs.h:79
static HRESULT parse_version(WCHAR *version, DWORD *high, DWORD *low)
Definition: name.c:227
#define ERROR_NOT_FOUND
Definition: winerror.h:690
Definition: name.c:38
#define HeapFree(x, y, z)
Definition: compat.h:483

◆ name_IsEqual()

static HRESULT WINAPI name_IsEqual ( IAssemblyName name1,
IAssemblyName name2,
DWORD  flags 
)
static

Definition at line 266 of file name.c.

270 {
271  FIXME("%p, %p, 0x%08x\n", name1, name2, flags);
272  return E_NOTIMPL;
273 }
static WCHAR name1[]
Definition: record.c:34
#define FIXME(fmt,...)
Definition: debug.h:111
GLbitfield flags
Definition: glext.h:7161
#define E_NOTIMPL
Definition: ddrawi.h:99
static WCHAR name2[]
Definition: record.c:35

◆ name_QueryInterface()

static HRESULT WINAPI name_QueryInterface ( IAssemblyName iface,
REFIID  riid,
void **  obj 
)
static

Definition at line 59 of file name.c.

63 {
64  struct name *name = impl_from_IAssemblyName( iface );
65 
66  TRACE("%p, %s, %p\n", name, debugstr_guid(riid), obj);
67 
68  *obj = NULL;
69 
70  if (IsEqualIID( riid, &IID_IUnknown ) ||
71  IsEqualIID( riid, &IID_IAssemblyName ))
72  {
73  IAssemblyName_AddRef( iface );
74  *obj = name;
75  return S_OK;
76  }
77 
78  return E_NOINTERFACE;
79 }
#define E_NOINTERFACE
Definition: winerror.h:2364
REFIID riid
Definition: precomp.h:44
LPCSTR name
Definition: name.c:34
smooth NULL
Definition: ftsmooth.c:416
#define debugstr_guid
Definition: kernel32.h:35
static struct name * impl_from_IAssemblyName(IAssemblyName *iface)
Definition: name.c:54
#define TRACE(s)
Definition: solgame.cpp:4
const GUID IID_IUnknown
#define S_OK
Definition: intsafe.h:59
Definition: name.c:38
#define IsEqualIID(riid1, riid2)
Definition: guiddef.h:95

◆ name_Release()

static ULONG WINAPI name_Release ( IAssemblyName iface)
static

Definition at line 88 of file name.c.

89 {
90  struct name *name = impl_from_IAssemblyName( iface );
92 
93  if (!refs)
94  {
95  TRACE("destroying %p\n", name);
96  HeapFree( GetProcessHeap(), 0, name->name );
97  HeapFree( GetProcessHeap(), 0, name->arch );
99  HeapFree( GetProcessHeap(), 0, name->type );
101  HeapFree( GetProcessHeap(), 0, name );
102  }
103  return refs;
104 }
WCHAR * token
Definition: name.c:44
WCHAR * version
Definition: name.c:46
WCHAR * type
Definition: name.c:45
static struct name * impl_from_IAssemblyName(IAssemblyName *iface)
Definition: name.c:54
#define TRACE(s)
Definition: solgame.cpp:4
#define GetProcessHeap()
Definition: compat.h:484
LONG refs
Definition: name.c:41
WCHAR * arch
Definition: name.c:43
#define InterlockedDecrement
Definition: armddk.h:52
Definition: name.c:38
unsigned int ULONG
Definition: retypes.h:1
#define HeapFree(x, y, z)
Definition: compat.h:483
WCHAR * name
Definition: name.c:42

◆ name_Reserved()

static HRESULT WINAPI name_Reserved ( IAssemblyName iface,
REFIID  riid,
IUnknown pUnkReserved1,
IUnknown pUnkReserved2,
LPCOLESTR  szReserved,
LONGLONG  llReserved,
LPVOID  pvReserved,
DWORD  cbReserved,
LPVOID ppReserved 
)
static

Definition at line 167 of file name.c.

177 {
178  FIXME("%p, %s, %p, %p, %s, %s, %p, %d, %p\n", iface,
179  debugstr_guid(riid), pUnkReserved1, pUnkReserved2,
180  debugstr_w(szReserved), wine_dbgstr_longlong(llReserved),
181  pvReserved, cbReserved, ppReserved);
182  return E_NOTIMPL;
183 }
REFIID riid
Definition: precomp.h:44
#define debugstr_w
Definition: kernel32.h:32
#define FIXME(fmt,...)
Definition: debug.h:111
#define debugstr_guid
Definition: kernel32.h:35
static LPCSTR DWORD void * pvReserved
Definition: str.c:196
#define E_NOTIMPL
Definition: ddrawi.h:99
static __inline const char * wine_dbgstr_longlong(ULONGLONG ll)
Definition: compat.h:49

◆ name_SetProperty()

static HRESULT WINAPI name_SetProperty ( IAssemblyName iface,
DWORD  id,
LPVOID  property,
DWORD  size 
)
static

Definition at line 106 of file name.c.

111 {
112  FIXME("%p, %d, %p, %d\n", iface, id, property, size);
113  return E_NOTIMPL;
114 }
#define FIXME(fmt,...)
Definition: debug.h:111
GLsizeiptr size
Definition: glext.h:5919
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ parse_displayname()

static HRESULT parse_displayname ( struct name name,
const WCHAR displayname 
)
static

Definition at line 315 of file name.c.

316 {
317  const WCHAR *p, *q;
318  unsigned int len;
319 
320  p = q = displayname;
321  while (*q && *q != ',') q++;
322  len = q - p;
323  if (!(name->name = HeapAlloc( GetProcessHeap(), 0, (len + 1) * sizeof(WCHAR) ))) return E_OUTOFMEMORY;
324  memcpy( name->name, p, len * sizeof(WCHAR) );
325  name->name[len] = 0;
326  if (!*q) return S_OK;
327 
328  for (;;)
329  {
330  p = ++q;
331  while (*q && *q != '=') q++;
332  if (!*q) return E_INVALIDARG;
333  len = q - p;
334  if (len == ARRAY_SIZE(archW) - 1 && !memcmp( p, archW, len * sizeof(WCHAR) ))
335  {
336  p = ++q;
337  if (!(name->arch = parse_value( p, &len ))) return E_INVALIDARG;
338  q += len;
339  }
340  else if (len == ARRAY_SIZE(tokenW) - 1 && !memcmp( p, tokenW, len * sizeof(WCHAR) ))
341  {
342  p = ++q;
343  if (!(name->token = parse_value( p, &len ))) return E_INVALIDARG;
344  q += len;
345  }
346  else if (len == ARRAY_SIZE(typeW) - 1 && !memcmp( p, typeW, len * sizeof(WCHAR) ))
347  {
348  p = ++q;
349  if (!(name->type = parse_value( p, &len ))) return E_INVALIDARG;
350  q += len;
351  }
352  else if (len == ARRAY_SIZE(versionW) - 1 && !memcmp( p, versionW, len * sizeof(WCHAR) ))
353  {
354  p = ++q;
355  if (!(name->version = parse_value( p, &len ))) return E_INVALIDARG;
356  q += len;
357  }
359  while (*q && *q != ',') q++;
360  if (!*q) break;
361  }
362  return S_OK;
363 }
#define HRESULT_FROM_WIN32(x)
Definition: winerror.h:92
WCHAR * token
Definition: name.c:44
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
Definition: utclib.c:112
WCHAR * version
Definition: name.c:46
#define ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE_NAME
Definition: winerror.h:2221
static const WCHAR typeW[]
Definition: name.c:51
WCHAR * type
Definition: name.c:45
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
static const WCHAR archW[]
Definition: name.c:49
#define E_INVALIDARG
Definition: ddrawi.h:101
#define GetProcessHeap()
Definition: compat.h:484
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
__wchar_t WCHAR
Definition: xmlstorage.h:180
static WCHAR * parse_value(const WCHAR *str, unsigned int *len)
Definition: name.c:299
GLdouble GLdouble GLdouble GLdouble q
Definition: gl.h:2063
WCHAR * arch
Definition: name.c:43
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
GLenum GLsizei len
Definition: glext.h:6722
#define S_OK
Definition: intsafe.h:59
#define ARRAY_SIZE(a)
Definition: main.h:24
Definition: name.c:38
static const WCHAR tokenW[]
Definition: name.c:50
GLfloat GLfloat p
Definition: glext.h:8902
static const WCHAR versionW[]
Definition: name.c:52
WCHAR * name
Definition: name.c:42

Referenced by CreateAssemblyNameObject().

◆ parse_value()

static WCHAR* parse_value ( const WCHAR str,
unsigned int len 
)
static

Definition at line 299 of file name.c.

300 {
301  WCHAR *ret;
302  const WCHAR *p = str;
303 
304  if (*p++ != '\"') return NULL;
305  while (*p && *p != '\"') p++;
306  if (!*p) return NULL;
307 
308  *len = p - str;
309  if (!(ret = HeapAlloc( GetProcessHeap(), 0, *len * sizeof(WCHAR) ))) return NULL;
310  memcpy( ret, str + 1, (*len - 1) * sizeof(WCHAR) );
311  ret[*len - 1] = 0;
312  return ret;
313 }
const WCHAR * str
smooth NULL
Definition: ftsmooth.c:416
#define GetProcessHeap()
Definition: compat.h:484
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
__wchar_t WCHAR
Definition: xmlstorage.h:180
int ret
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
GLenum GLsizei len
Definition: glext.h:6722
GLfloat GLfloat p
Definition: glext.h:8902

Referenced by parse_displayname().

◆ parse_version()

static HRESULT parse_version ( WCHAR version,
DWORD high,
DWORD low 
)
static

Definition at line 227 of file name.c.

228 {
229  WORD ver[4];
230  WCHAR *p, *q;
231  unsigned int i;
232 
233  memset( ver, 0, sizeof(ver) );
234  for (i = 0, p = version; i < 4; i++)
235  {
236  if (!*p) break;
237  q = wcschr( p, '.' );
238  if (q) *q = 0;
239  ver[i] = wcstol( p, NULL, 10 );
240  if (!q && i < 3) break;
241  p = q + 1;
242  }
243  *high = (ver[0] << 16) + ver[1];
244  *low = (ver[2] << 16) + ver[3];
245  return S_OK;
246 }
_Check_return_ long __cdecl wcstol(_In_z_ const wchar_t *_Str, _Out_opt_ _Deref_post_z_ wchar_t **_EndPtr, _In_ int _Radix)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
smooth NULL
Definition: ftsmooth.c:416
static const WCHAR version[]
Definition: asmname.c:66
_CONST_RETURN wchar_t *__cdecl wcschr(_In_z_ const wchar_t *_Str, wchar_t _Ch)
__wchar_t WCHAR
Definition: xmlstorage.h:180
unsigned short WORD
Definition: ntddk_ex.h:93
GLdouble GLdouble GLdouble GLdouble q
Definition: gl.h:2063
#define S_OK
Definition: intsafe.h:59
GLfloat GLfloat p
Definition: glext.h:8902
#define memset(x, y, z)
Definition: compat.h:39

Referenced by name_GetVersion().

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( sxs  )

Variable Documentation

◆ archW

const WCHAR archW[] = {'p','r','o','c','e','s','s','o','r','A','r','c','h','i','t','e','c','t','u','r','e',0}
static

Definition at line 49 of file name.c.

Referenced by build_assembly_id(), name_GetDisplayName(), and parse_displayname().

◆ name_vtbl

const IAssemblyNameVtbl name_vtbl
static
Initial value:
=
{
}
static HRESULT WINAPI name_Finalize(IAssemblyName *iface)
Definition: name.c:126
static HRESULT WINAPI name_QueryInterface(IAssemblyName *iface, REFIID riid, void **obj)
Definition: name.c:59
static HRESULT WINAPI name_Reserved(IAssemblyName *iface, REFIID riid, IUnknown *pUnkReserved1, IUnknown *pUnkReserved2, LPCOLESTR szReserved, LONGLONG llReserved, LPVOID pvReserved, DWORD cbReserved, LPVOID *ppReserved)
Definition: name.c:167
static ULONG WINAPI name_Release(IAssemblyName *iface)
Definition: name.c:88
static HRESULT WINAPI name_GetProperty(IAssemblyName *iface, DWORD id, LPVOID buffer, LPDWORD buflen)
Definition: name.c:116
static ULONG WINAPI name_AddRef(IAssemblyName *iface)
Definition: name.c:81
static HRESULT WINAPI name_GetName(IAssemblyName *iface, LPDWORD buflen, WCHAR *buffer)
Definition: name.c:203
static HRESULT WINAPI name_Clone(IAssemblyName *iface, IAssemblyName **name)
Definition: name.c:275
static HRESULT WINAPI name_SetProperty(IAssemblyName *iface, DWORD id, LPVOID property, DWORD size)
Definition: name.c:106
static HRESULT WINAPI name_IsEqual(IAssemblyName *name1, IAssemblyName *name2, DWORD flags)
Definition: name.c:266
static HRESULT WINAPI name_GetVersion(IAssemblyName *iface, LPDWORD high, LPDWORD low)
Definition: name.c:248
static HRESULT WINAPI name_GetDisplayName(IAssemblyName *iface, LPOLESTR buffer, LPDWORD buflen, DWORD flags)
Definition: name.c:133

Definition at line 283 of file name.c.

Referenced by CreateAssemblyNameObject().

◆ tokenW

const WCHAR tokenW[] = {'p','u','b','l','i','c','K','e','y','T','o','k','e','n',0}
static

Definition at line 50 of file name.c.

Referenced by name_GetDisplayName(), parse_assembly(), and parse_displayname().

◆ typeW

◆ versionW