27 #define WIN32_NO_STATUS 69 {
'P',
'u',
'b',
'l',
'i',
'c',
'K',
'e',
'y',
'T',
'o',
'k',
'e',
'n',0};
71 'A',
'r',
'c',
'h',
'i',
't',
'e',
'c',
't',
'u',
'r',
'e',0};
73 #define CHARS_PER_PUBKEY 16 92 IAssemblyName_AddRef(iface);
93 *ppobj = &
This->IAssemblyName_iface;
106 TRACE(
"(%p)->(ref before = %u)\n",
This, refCount - 1);
116 TRACE(
"(%p)->(ref before = %u)\n",
This, refCount + 1);
136 FIXME(
"(%p, %d, %p, %d) stub!\n", iface,
PropertyId, pvProperty, cbProperty);
148 TRACE(
"(%p, %d, %p, %p)\n", iface,
PropertyId, pvProperty, pcbProperty);
153 case ASM_NAME_NULL_PUBLIC_KEY:
154 case ASM_NAME_NULL_PUBLIC_KEY_TOKEN:
159 case ASM_NAME_NULL_CUSTOM:
167 if (
size < *pcbProperty)
173 case ASM_NAME_MAJOR_VERSION:
175 if (
name->versize >= 1)
177 *pcbProperty =
sizeof(
WORD);
178 if (
size < *pcbProperty)
184 case ASM_NAME_MINOR_VERSION:
186 if (
name->versize >= 2)
188 *pcbProperty =
sizeof(
WORD);
189 if (
size < *pcbProperty)
195 case ASM_NAME_BUILD_NUMBER:
197 if (
name->versize >= 3)
199 *pcbProperty =
sizeof(
WORD);
200 if (
size < *pcbProperty)
206 case ASM_NAME_REVISION_NUMBER:
208 if (
name->versize >= 4)
210 *pcbProperty =
sizeof(
WORD);
211 if (
size < *pcbProperty)
217 case ASM_NAME_CULTURE:
222 if (
size < *pcbProperty)
228 case ASM_NAME_PUBLIC_KEY_TOKEN:
232 *pcbProperty =
sizeof(
DWORD) * 2;
233 if (
size < *pcbProperty)
239 case ASM_NAME_ARCHITECTURE:
243 *pcbProperty =
sizeof(
PEKIND);
244 if (
size < *pcbProperty)
260 FIXME(
"(%p) stub!\n", iface);
267 DWORD dwDisplayFlags)
269 static const WCHAR equals[] = {
'=',0};
274 TRACE(
"(%p, %p, %p, %d)\n", iface, szDisplayName,
275 pccDisplayName, dwDisplayFlags);
277 if (dwDisplayFlags == 0)
279 if (!
name->displayname || !*
name->displayname)
284 if (*pccDisplayName <
size)
286 *pccDisplayName =
size;
290 if (szDisplayName)
lstrcpyW(szDisplayName,
name->displayname);
291 *pccDisplayName =
size;
302 if ((dwDisplayFlags & ASM_DISPLAYF_VERSION) && (
name->versize > 0))
304 static const WCHAR spec[] = {
'%',
'd',0};
305 static const WCHAR period[] = {
'.',0};
310 for (
i = 1;
i <
name->versize;
i++)
322 if ((dwDisplayFlags & ASM_DISPLAYF_CULTURE) && (
name->culture))
324 static const WCHAR neutral[] = {
'n',
'e',
'u',
't',
'r',
'a',
'l', 0};
330 if ((dwDisplayFlags & ASM_DISPLAYF_PUBLIC_KEY_TOKEN) && (
name->haspubkey))
333 if ((dwDisplayFlags & ASM_DISPLAYF_PROCESSORARCHITECTURE) && (
name->procarch))
336 if (
size > *pccDisplayName)
338 *pccDisplayName =
size;
345 if ((dwDisplayFlags & ASM_DISPLAYF_VERSION) && (
name->versize > 0))
354 if ((dwDisplayFlags & ASM_DISPLAYF_CULTURE) && (
name->culture))
360 lstrcatW(szDisplayName, cultureval);
363 if ((dwDisplayFlags & ASM_DISPLAYF_PUBLIC_KEY_TOKEN) && (
name->haspubkey))
366 static const WCHAR spec[] = {
'%',
'0',
'2',
'x',
'%',
'0',
'2',
'x',
'%',
'0',
'2',
'x',
367 '%',
'0',
'2',
'x',
'%',
'0',
'2',
'x',
'%',
'0',
'2',
'x',
'%',
'0',
'2',
'x',
'%',
'0',
'2',
'x',0};
381 if ((dwDisplayFlags & ASM_DISPLAYF_PROCESSORARCHITECTURE) && (
name->procarch))
390 *pccDisplayName =
size;
398 LPCOLESTR szReserved,
404 TRACE(
"(%p, %s, %p, %p, %s, %s, %p, %d, %p)\n", iface,
419 TRACE(
"(%p, %p, %p)\n", iface, lpcwBuffer, pwzName);
426 if (*lpcwBuffer <
len)
444 TRACE(
"(%p, %p, %p)\n", iface, pdwVersionHi, pdwVersionLow);
449 if (
name->versize != 4)
468 if (
flags & ~ASM_CMPF_IL_ALL)
FIXME(
"unsupported flags\n");
473 if ((
flags & ASM_CMPF_MAJOR_VERSION) &&
475 if ((
flags & ASM_CMPF_MINOR_VERSION) &&
477 if ((
flags & ASM_CMPF_BUILD_NUMBER) &&
479 if ((
flags & ASM_CMPF_REVISION_NUMBER) &&
482 if ((
flags & ASM_CMPF_PUBLIC_KEY_TOKEN) &&
486 if ((
flags & ASM_CMPF_CULTURE) &&
594 return ((
c >=
'a' &&
c <=
'f') ||
595 (
c >=
'A' &&
c <=
'F') ||
596 (
c >=
'0' &&
c <=
'9'));
601 if(
c >=
'0' &&
c <=
'9')
603 if(
c >=
'A' &&
c <=
'F')
605 if(
c >=
'a' &&
c <=
'f')
614 static const WCHAR nullstr[] = {
'n',
'u',
'l',
'l',0};
639 static const WCHAR msilW[] = {
'm',
's',
'i',
'l',0};
640 static const WCHAR x86W[] = {
'x',
'8',
'6',0};
641 static const WCHAR ia64W[] = {
'i',
'a',
'6',
'4',0};
642 static const WCHAR amd64W[] = {
'a',
'm',
'd',
'6',
'4',0};
674 while (*
p && *
p !=
'\"')
ret[
i++] = *
p++;
675 if ((quoted && *
p !=
'\"') || (!quoted && *
p ==
'\"'))
694 if (!
name->displayname)
759 while (*
str ==
' ')
str++;
804 TRACE(
"(%p, %s, %08x, %p)\n", ppAssemblyNameObj,
807 if (!ppAssemblyNameObj)
int WINAPIV wsprintfW(_Out_ LPWSTR, _In_ _Printf_format_string_ LPCWSTR,...)
static HRESULT WINAPI IAssemblyNameImpl_GetProperty(IAssemblyName *iface, DWORD PropertyId, LPVOID pvProperty, LPDWORD pcbProperty)
static HRESULT parse_version(IAssemblyNameImpl *name, LPWSTR version)
static HRESULT WINAPI IAssemblyNameImpl_GetName(IAssemblyName *iface, LPDWORD lpcwBuffer, WCHAR *pwzName)
static const WCHAR separator[]
static WCHAR * parse_value(const WCHAR *str, unsigned int len)
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
static HRESULT WINAPI IAssemblyNameImpl_Finalize(IAssemblyName *iface)
static WCHAR * strdupW(const WCHAR *src)
static const WCHAR pubkey[]
char * wine_dbgstr_w(const wchar_t *wstr)
int WINAPI lstrcmpW(LPCWSTR lpString1, LPCWSTR lpString2)
#define FUSION_E_PRIVATE_ASM_DISALLOWED
static HRESULT WINAPI IAssemblyNameImpl_GetVersion(IAssemblyName *iface, LPDWORD pdwVersionHi, LPDWORD pdwVersionLow)
static HRESULT WINAPI IAssemblyNameImpl_SetProperty(IAssemblyName *iface, DWORD PropertyId, LPVOID pvProperty, DWORD cbProperty)
static LPCWSTR szAssemblyName
IAssemblyName IAssemblyName_iface
static HRESULT WINAPI IAssemblyNameImpl_Clone(IAssemblyName *iface, IAssemblyName **pName)
_Check_return_ long __cdecl wcstol(_In_z_ const wchar_t *_Str, _Out_opt_ _Deref_post_z_ wchar_t **_EndPtr, _In_ int _Radix)
static IAssemblyNameImpl * impl_from_IAssemblyName(IAssemblyName *iface)
#define STRSAFE_E_INSUFFICIENT_BUFFER
static const WCHAR procarch[]
static void * heap_alloc(size_t len)
static IAssemblyNameImpl * unsafe_impl_from_IAssemblyName(IAssemblyName *iface)
int WINAPI lstrcmpiW(LPCWSTR lpString1, LPCWSTR lpString2)
GLenum GLuint GLenum GLsizei const GLchar * buf
static LPCWSTR DWORD LPVOID pvReserved
static HRESULT WINAPI IAssemblyNameImpl_IsEqual(IAssemblyName *iface, IAssemblyName *pName, DWORD flags)
static void buffer_size(GLcontext *ctx, GLuint *width, GLuint *height)
static const WCHAR version[]
static HRESULT parse_procarch(IAssemblyNameImpl *name, LPCWSTR procarch)
static const IAssemblyNameVtbl AssemblyNameVtbl
static BOOL is_hex(WCHAR c)
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)
static HRESULT parse_display_name(IAssemblyNameImpl *name, LPCWSTR szAssemblyName)
static ULONG WINAPI IAssemblyNameImpl_AddRef(IAssemblyName *iface)
WINE_DEFAULT_DEBUG_CHANNEL(fusion)
_CONST_RETURN wchar_t *__cdecl wcschr(_In_z_ const wchar_t *_Str, wchar_t _Ch)
#define FUSION_E_INVALID_NAME
HRESULT WINAPI CreateAssemblyNameObject(IAssemblyName **ppAssemblyNameObj, LPCWSTR szAssemblyName, DWORD dwFlags, LPVOID pvReserved)
#define InterlockedDecrement
static HRESULT parse_culture(IAssemblyNameImpl *name, LPCWSTR culture)
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
#define memcpy(s1, s2, n)
GLsizei const GLfloat * value
static HRESULT WINAPI IAssemblyNameImpl_Reserved(IAssemblyName *iface, REFIID refIID, IUnknown *pUnkReserved1, IUnknown *pUnkReserved2, LPCOLESTR szReserved, LONGLONG llReserved, LPVOID pvReserved, DWORD cbReserved, LPVOID *ppReserved)
#define E_NOT_SUFFICIENT_BUFFER
static HRESULT WINAPI IAssemblyNameImpl_GetDisplayName(IAssemblyName *iface, LPOLESTR szDisplayName, LPDWORD pccDisplayName, DWORD dwDisplayFlags)
static HRESULT WINAPI IAssemblyNameImpl_QueryInterface(IAssemblyName *iface, REFIID riid, LPVOID *ppobj)
HRESULT IAssemblyName_SetPath(IAssemblyName *iface, LPCWSTR path)
#define InterlockedIncrement
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
HRESULT IAssemblyName_GetPath(IAssemblyName *iface, LPWSTR buf, ULONG *len)
_In_ PSTORAGE_PROPERTY_ID PropertyId
static __inline const char * wine_dbgstr_longlong(ULONGLONG ll)
static const WCHAR culture[]
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
IAssemblyName IAssemblyName_iface
static ULONG WINAPI IAssemblyNameImpl_Release(IAssemblyName *iface)
#define IsEqualIID(riid1, riid2)
static HRESULT parse_pubkey(IAssemblyNameImpl *name, LPCWSTR pubkey)
static BYTE hextobyte(WCHAR c)
static BOOL heap_free(void *mem)
GLuint const GLchar * name