ReactOS  0.4.13-dev-99-g7e18b6d
asmname.c File Reference
#include <stdio.h>
#include <windows.h>
#include <mscoree.h>
#include <fusion.h>
#include <corerror.h>
#include <strsafe.h>
#include "wine/test.h"
Include dependency graph for asmname.c:

Go to the source code of this file.

Classes

struct  _tagASMPROP_RES
 

Macros

#define COBJMACROS
 
#define ok_aw(aString, wString)
 
#define test_assembly_name_props(name, vals)   test_assembly_name_props_line(name, vals, __LINE__);
 

Typedefs

typedef struct _tagASMPROP_RES ASMPROP_RES
 

Functions

static HRESULT (WINAPI *pCreateAssemblyNameObject)(IAssemblyName **ppAssemblyNameObj
 
static BOOL init_functionpointers (void)
 
static void to_widechar (LPWSTR dest, LPCSTR src)
 
static void test_assembly_name_props_line (IAssemblyName *name, const ASMPROP_RES *vals, int line)
 
static void test_CreateAssemblyNameObject (void)
 
static void test_IAssemblyName_IsEqual (void)
 
 START_TEST (asmname)
 

Variables

static CHAR string1 [MAX_PATH]
 
static LPCWSTR szAssemblyName
 
static LPCWSTR DWORD dwFlags
 
static LPCWSTR DWORD LPVOID pvReserved
 
static LPCWSTR szVersion
 
static LPCWSTR LPVOID HMODULEphModDll
 
static const ASMPROP_RES defaults [ASM_NAME_MAX_PARAMS]
 
static const ASMPROP_RES emptyname [ASM_NAME_MAX_PARAMS]
 
static const ASMPROP_RES winename [ASM_NAME_MAX_PARAMS]
 
static const ASMPROP_RES vername [ASM_NAME_MAX_PARAMS]
 
static const ASMPROP_RES badvername [ASM_NAME_MAX_PARAMS]
 
static const ASMPROP_RES neutralname [ASM_NAME_MAX_PARAMS]
 
static const ASMPROP_RES enname [ASM_NAME_MAX_PARAMS]
 
static const ASMPROP_RES pubkeyname [ASM_NAME_MAX_PARAMS]
 

Macro Definition Documentation

◆ COBJMACROS

#define COBJMACROS

Definition at line 19 of file asmname.c.

◆ ok_aw

#define ok_aw (   aString,
  wString 
)
Value:
if (lstrcmpA(string1, aString) != 0) \
ok(0, "Expected \"%s\", got \"%s\"\n", aString, string1);
#define WideCharToMultiByte
Definition: compat.h:101
#define CP_ACP
Definition: compat.h:99
static CHAR string1[MAX_PATH]
Definition: asmname.c:32
int WINAPI lstrcmpA(LPCSTR lpString1, LPCSTR lpString2)
Definition: lstring.c:18
smooth NULL
Definition: ftsmooth.c:416
#define MAX_PATH
Definition: compat.h:26

Definition at line 34 of file asmname.c.

◆ test_assembly_name_props

#define test_assembly_name_props (   name,
  vals 
)    test_assembly_name_props_line(name, vals, __LINE__);

Definition at line 391 of file asmname.c.

Typedef Documentation

◆ ASMPROP_RES

Function Documentation

◆ HRESULT()

static HRESULT ( WINAPI pCreateAssemblyNameObject)
static

◆ init_functionpointers()

static BOOL init_functionpointers ( void  )
static

Definition at line 45 of file asmname.c.

46 {
47  HRESULT hr;
48  HMODULE hfusion;
50 
51  static const WCHAR szFusion[] = {'f','u','s','i','o','n','.','d','l','l',0};
52 
53  hmscoree = LoadLibraryA("mscoree.dll");
54  if (!hmscoree)
55  return FALSE;
56 
57  pLoadLibraryShim = (void *)GetProcAddress(hmscoree, "LoadLibraryShim");
58  if (!pLoadLibraryShim)
59  {
61  return FALSE;
62  }
63 
64  hr = pLoadLibraryShim(szFusion, NULL, NULL, &hfusion);
65  if (FAILED(hr))
66  return FALSE;
67 
68  pCreateAssemblyNameObject = (void *)GetProcAddress(hfusion, "CreateAssemblyNameObject");
69  if (!pCreateAssemblyNameObject)
70  return FALSE;
71 
72  return TRUE;
73 }
#define TRUE
Definition: types.h:120
HRESULT hr
Definition: shlfolder.c:183
static HMODULE hmscoree
Definition: assembly.c:44
HINSTANCE WINAPI DECLSPEC_HOTPATCH LoadLibraryA(LPCSTR lpLibFileName)
Definition: loader.c:111
smooth NULL
Definition: ftsmooth.c:416
#define FreeLibrary(x)
Definition: compat.h:405
__wchar_t WCHAR
Definition: xmlstorage.h:180
LONG HRESULT
Definition: typedefs.h:77
#define GetProcAddress(x, y)
Definition: compat.h:410

Referenced by START_TEST().

◆ START_TEST()

START_TEST ( asmname  )

Definition at line 1084 of file asmname.c.

1085 {
1086  if (!init_functionpointers())
1087  {
1088  win_skip("fusion.dll not available\n");
1089  return;
1090  }
1091 
1094 }
static BOOL init_functionpointers(void)
Definition: asmname.c:45
static void test_IAssemblyName_IsEqual(void)
Definition: asmname.c:1009
static void test_CreateAssemblyNameObject(void)
Definition: asmname.c:394
#define win_skip
Definition: test.h:141

◆ test_assembly_name_props_line()

static void test_assembly_name_props_line ( IAssemblyName name,
const ASMPROP_RES vals,
int  line 
)
static

Definition at line 343 of file asmname.c.

345 {
346  HRESULT hr;
347  DWORD i, size;
349  WCHAR str[MAX_PATH];
350 
351  for (i = 0; i < ASM_NAME_MAX_PARAMS; i++)
352  {
353  to_widechar(expect, vals[i].val);
354 
355  size = MAX_PATH;
356  memset( str, 0xcc, sizeof(str) );
357  hr = IAssemblyName_GetProperty(name, i, str, &size);
358 
359  ok(hr == vals[i].hr ||
360  broken(i >= ASM_NAME_CONFIG_MASK && hr == E_INVALIDARG) || /* .NET 1.1 */
361  broken(i >= ASM_NAME_FILE_MAJOR_VERSION && hr == E_INVALIDARG), /* .NET 1.0 */
362  "%d: prop %d: Expected %08x, got %08x\n", line, i, vals[i].hr, hr);
363  if (hr != E_INVALIDARG)
364  {
365  ok(size == vals[i].size, "%d: prop %d: Expected %d, got %d\n", line, i, vals[i].size, size);
366  if (!size)
367  {
368  ok(str[0] == 0xcccc, "%d: prop %d: str[0] = %x\n", line, i, str[0]);
369  }
370  else if (size != MAX_PATH)
371  {
372  if (i != ASM_NAME_NAME && i != ASM_NAME_CULTURE)
373  ok( !memcmp( vals[i].val, str, size ), "%d: prop %d: wrong value\n", line, i );
374  else
375  ok( !lstrcmpW( expect, str ), "%d: prop %d: Expected %s, got %s\n",
377  }
378 
379  if (size != 0 && size != MAX_PATH)
380  {
381  size--;
382  hr = IAssemblyName_GetProperty(name, i, str, &size);
384  "%d: prop %d: Expected STRSAFE_E_INSUFFICIENT_BUFFER, got %08x\n", line, i, hr);
385  ok(size == vals[i].size, "%d: prop %d: Expected %d, got %d\n", line, i, vals[i].size, size);
386  }
387  }
388  }
389 }
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
Definition: utclib.c:112
HRESULT hr
Definition: shlfolder.c:183
int WINAPI lstrcmpW(LPCWSTR lpString1, LPCWSTR lpString2)
Definition: lstring.c:170
#define wine_dbgstr_w
Definition: kernel32.h:34
#define STRSAFE_E_INSUFFICIENT_BUFFER
Definition: strsafe.h:103
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
#define ok(value,...)
#define E_INVALIDARG
Definition: ddrawi.h:101
const WCHAR * str
Definition: parser.c:48
GLuint GLfloat * val
Definition: glext.h:7180
GLsizeiptr size
Definition: glext.h:5919
__wchar_t WCHAR
Definition: xmlstorage.h:180
LONG HRESULT
Definition: typedefs.h:77
static void to_widechar(LPWSTR dest, LPCSTR src)
Definition: asmname.c:338
#define MAX_PATH
Definition: compat.h:26
unsigned long DWORD
Definition: ntddk_ex.h:95
#define broken(x)
Definition: _sntprintf.h:21
#define expect(expected, got)
Definition: combo.c:36
Definition: name.c:36
#define memset(x, y, z)
Definition: compat.h:39

◆ test_CreateAssemblyNameObject()

static void test_CreateAssemblyNameObject ( void  )
static

Definition at line 394 of file asmname.c.

395 {
397  WCHAR str[MAX_PATH];
398  WCHAR namestr[MAX_PATH];
399  DWORD size, hi, lo;
400  PEKIND arch;
401  HRESULT hr;
402 
403  static const WCHAR empty[] = {0};
404 
405  /* NULL ppAssemblyNameObj */
406  to_widechar(namestr, "wine.dll");
407  hr = pCreateAssemblyNameObject(NULL, namestr, 0, NULL);
408  ok(hr == E_INVALIDARG, "Expected E_INVALIDARG, got %08x\n", hr);
409 
410  /* NULL szAssemblyName, CANOF_PARSE_DISPLAY_NAME */
411  name = (IAssemblyName *)0xdeadbeef;
412  hr = pCreateAssemblyNameObject(&name, NULL, CANOF_PARSE_DISPLAY_NAME, NULL);
413  ok(hr == E_INVALIDARG, "Expected E_INVALIDARG, got %08x\n", hr);
414  ok(name == (IAssemblyName *)0xdeadbeef, "Expected 0xdeadbeef, got %p\n", name);
415 
416  /* empty szAssemblyName, CANOF_PARSE_DISPLAY_NAME */
417  name = (IAssemblyName *)0xdeadbeef;
418  hr = pCreateAssemblyNameObject(&name, empty, CANOF_PARSE_DISPLAY_NAME, NULL);
419  ok(hr == E_INVALIDARG, "Expected E_INVALIDARG, got %08x\n", hr);
420  ok(name == (IAssemblyName *)0xdeadbeef, "Expected 0xdeadbeef, got %p\n", name);
421 
422  /* check the contents of the AssemblyName for default values */
423 
424  /* NULL szAssemblyName */
425  name = NULL;
426  hr = pCreateAssemblyNameObject(&name, NULL, CANOF_SET_DEFAULT_VALUES, NULL);
427  ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
428  ok(name != NULL, "Expected non-NULL name\n");
429 
430  size = MAX_PATH;
431  hr = IAssemblyName_GetDisplayName(name, str, &size, ASM_DISPLAYF_FULL);
433  broken(hr == E_INVALIDARG), /* .NET 1.x */
434  "Expected FUSION_E_INVALID_NAME, got %08x\n", hr);
435 
436  str[0] = 'a';
437  size = MAX_PATH;
438  hr = IAssemblyName_GetName(name, &size, str);
439  ok(hr == S_OK, "got %08x\n", hr);
440  ok(str[0] == 'a', "got %c\n", str[0]);
441  ok(!size, "got %u\n", size);
442 
443  hi = 0xbeefcace;
444  lo = 0xcafebabe;
445  hr = IAssemblyName_GetVersion(name, &hi, &lo);
447  broken(hr == S_OK), /* .NET 1.x */
448  "Expected FUSION_E_INVALID_NAME, got %08x\n", hr);
449  ok(hi == 0, "Expected 0, got %08x\n", hi);
450  ok(lo == 0, "Expected 0, got %08x\n", lo);
451 
452  if (hr == S_OK)
453  win_skip(".NET 1.x doesn't handle ASM_NAME_PROCESSOR_ID_ARRAY"
454  " and ASM_NAME_OSINFO_ARRAY correctly\n");
455  else
457 
458  IAssemblyName_Release(name);
459 
460  /* empty szAssemblyName */
461  name = NULL;
462  hr = pCreateAssemblyNameObject(&name, empty, CANOF_SET_DEFAULT_VALUES, NULL);
463  ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
464  ok(name != NULL, "Expected non-NULL name\n");
465 
466  size = MAX_PATH;
467  hr = IAssemblyName_GetDisplayName(name, str, &size, ASM_DISPLAYF_FULL);
469  broken(hr == S_OK), /* .NET 1.x */
470  "Expected FUSION_E_INVALID_NAME, got %08x\n", hr);
471 
472  size = 0;
473  hr = IAssemblyName_GetName(name, &size, NULL);
474  ok(hr == E_NOT_SUFFICIENT_BUFFER, "got %08x\n", hr);
475  ok(size == 1, "got %u\n", size);
476 
477  if (0) /* crash */
478  {
479  str[0] = '\0';
480  hr = IAssemblyName_GetName(name, NULL, str);
481  ok(hr == E_NOT_SUFFICIENT_BUFFER, "got %08x\n", hr);
482  ok(!str[0], "got %c\n", str[0]);
483  }
484 
485  size = 0;
486  str[0] = '\0';
487  hr = IAssemblyName_GetName(name, &size, str);
488  ok(hr == E_NOT_SUFFICIENT_BUFFER, "got %08x\n", hr);
489  ok(!str[0], "got %c\n", str[0]);
490  ok(size == 1, "got %u\n", size);
491 
492  size = MAX_PATH;
493  str[0] = '\0';
494  hr = IAssemblyName_GetName(name, &size, str);
495  ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
496  ok(!str[0], "Expected empty name\n");
497  ok(size == 1, "Expected 1, got %d\n", size);
498 
499  hi = 0xbeefcace;
500  lo = 0xcafebabe;
501  hr = IAssemblyName_GetVersion(name, &hi, &lo);
503  broken(hr == S_OK), /* .NET 1.x */
504  "Expected FUSION_E_INVALID_NAME, got %08x\n", hr);
505  ok(hi == 0, "Expected 0, got %08x\n", hi);
506  ok(lo == 0, "Expected 0, got %08x\n", lo);
507 
508  if (hr == S_OK)
509  win_skip(".NET 1.x doesn't handle ASM_NAME_PROCESSOR_ID_ARRAY"
510  " and ASM_NAME_OSINFO_ARRAY correctly\n");
511  else
513 
514  IAssemblyName_Release(name);
515 
516  /* 'wine' */
517  to_widechar(namestr, "wine");
518  name = NULL;
519  hr = pCreateAssemblyNameObject(&name, namestr, CANOF_SET_DEFAULT_VALUES, NULL);
520  ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
521  ok(name != NULL, "Expected non-NULL name\n");
522 
523  size = 0;
524  hr = IAssemblyName_GetDisplayName(name, NULL, &size, 0);
525  ok(hr == E_NOT_SUFFICIENT_BUFFER, "got %08x\n", hr);
526  ok(size == 5, "got %u\n", size);
527 
528  size = 3;
529  hr = IAssemblyName_GetDisplayName(name, NULL, &size, 0);
530  ok(hr == E_NOT_SUFFICIENT_BUFFER || broken(hr == E_INVALIDARG), "got %08x\n", hr);
531  ok(size == 5 || broken(size == 3), "got %u\n", size);
532 
533  size = 3;
534  str[0] = 'a';
535  hr = IAssemblyName_GetDisplayName(name, str, &size, 0);
536  ok(hr == E_NOT_SUFFICIENT_BUFFER, "got %08x\n", hr);
537  ok(str[0] == 'a', "got %c\n", str[0]);
538  ok(size == 5, "got %u\n", size);
539 
540  size = 0;
541  str[0] = 'a';
542  hr = IAssemblyName_GetDisplayName(name, str, &size, ASM_DISPLAYF_FULL);
543  ok(hr == E_NOT_SUFFICIENT_BUFFER, "got %08x\n", hr);
544  ok(str[0] == 'a', "got %c\n", str[0]);
545  ok(size == 5, "Wrong size %u\n", size);
546 
547  size = MAX_PATH;
548  hr = IAssemblyName_GetDisplayName(name, str, &size, ASM_DISPLAYF_FULL);
549  ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
550  ok_aw("wine", str);
551  ok(size == 5, "Expected 5, got %d\n", size);
552 
553  size = 0;
554  str[0] = 0;
555  hr = IAssemblyName_GetName(name, &size, str);
556  ok(hr == E_NOT_SUFFICIENT_BUFFER, "got %08x\n", hr);
557  ok(!str[0], "got %c\n", str[0]);
558  ok(size == 5, "got %u\n", size);
559 
560  size = MAX_PATH;
561  str[0] = '\0';
562  hr = IAssemblyName_GetName(name, &size, str);
563  ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
564  ok_aw("wine", str);
565  ok(size == 5, "Expected 5, got %d\n", size);
566 
567  hi = 0xbeefcace;
568  lo = 0xcafebabe;
569  hr = IAssemblyName_GetVersion(name, &hi, &lo);
571  broken(hr == S_OK), /* .NET 1.x */
572  "Expected FUSION_E_INVALID_NAME, got %08x\n", hr);
573  ok(hi == 0, "Expected 0, got %08x\n", hi);
574  ok(lo == 0, "Expected 0, got %08x\n", lo);
575 
576  if (hr == S_OK)
577  win_skip(".NET 1.x doesn't handle ASM_NAME_PROCESSOR_ID_ARRAY"
578  " and ASM_NAME_OSINFO_ARRAY correctly\n");
579  else
581 
582  IAssemblyName_Release(name);
583 
584  /* check the contents of the AssemblyName with parsing */
585 
586  /* 'wine' */
587  to_widechar(namestr, "wine");
588  name = NULL;
589  hr = pCreateAssemblyNameObject(&name, namestr, CANOF_PARSE_DISPLAY_NAME, NULL);
590  ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
591  ok(name != NULL, "Expected non-NULL name\n");
592 
593  size = MAX_PATH;
594  hr = IAssemblyName_GetDisplayName(name, str, &size, ASM_DISPLAYF_FULL);
595  ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
596  ok_aw("wine", str);
597  ok(size == 5, "Expected 5, got %d\n", size);
598 
599  size = MAX_PATH;
600  str[0] = '\0';
601  hr = IAssemblyName_GetName(name, &size, str);
602  ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
603  ok_aw("wine", str);
604  ok(size == 5, "Expected 5, got %d\n", size);
605 
606  hi = 0xbeefcace;
607  lo = 0xcafebabe;
608  hr = IAssemblyName_GetVersion(name, &hi, &lo);
610  broken(hr == S_OK), /* .NET 1.x */
611  "Expected FUSION_E_INVALID_NAME, got %08x\n", hr);
612  ok(hi == 0, "Expected 0, got %08x\n", hi);
613  ok(lo == 0, "Expected 0, got %08x\n", lo);
614 
616 
617  IAssemblyName_Release(name);
618 
619  /* 'wine, Version=1.2.3.4' */
620  to_widechar(namestr, "wine, Version=1.2.3.4");
621  name = NULL;
622  hr = pCreateAssemblyNameObject(&name, namestr, CANOF_PARSE_DISPLAY_NAME, NULL);
623  ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
624  ok(name != NULL, "Expected non-NULL name\n");
625 
626  size = MAX_PATH;
627  hr = IAssemblyName_GetDisplayName(name, str, &size, ASM_DISPLAYF_FULL);
628  ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
629  ok_aw("wine, Version=1.2.3.4", str);
630  ok(size == 22, "Expected 22, got %d\n", size);
631 
632  size = MAX_PATH;
633  str[0] = '\0';
634  hr = IAssemblyName_GetName(name, &size, str);
635  ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
636  ok_aw("wine", str);
637  ok(size == 5, "Expected 5, got %d\n", size);
638 
639  hi = 0xbeefcace;
640  lo = 0xcafebabe;
641  hr = IAssemblyName_GetVersion(name, &hi, &lo);
642  ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
643  ok(hi == 0x00010002, "Expected 0x00010002, got %08x\n", hi);
644  ok(lo == 0x00030004, "Expected 0x00030004, got %08x\n", lo);
645 
647 
648  IAssemblyName_Release(name);
649 
650  /* Version isn't of the form 1.x.x.x */
651  to_widechar(namestr, "wine, Version=1.5");
652  name = NULL;
653  hr = pCreateAssemblyNameObject(&name, namestr, CANOF_PARSE_DISPLAY_NAME, NULL);
654  ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
655  ok(name != NULL, "Expected non-NULL name\n");
656 
657  size = MAX_PATH;
658  hr = IAssemblyName_GetDisplayName(name, str, &size, ASM_DISPLAYF_FULL);
659  ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
660  ok_aw("wine, Version=1.5", str);
661  ok(size == 18, "Expected 18, got %d\n", size);
662 
663  size = MAX_PATH;
664  str[0] = '\0';
665  hr = IAssemblyName_GetName(name, &size, str);
666  ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
667  ok_aw("wine", str);
668  ok(size == 5, "Expected 5, got %d\n", size);
669 
670  hi = 0xbeefcace;
671  lo = 0xcafebabe;
672  hr = IAssemblyName_GetVersion(name, &hi, &lo);
674  broken(hr == S_OK), /* .NET 1.x */
675  "Expected FUSION_E_INVALID_NAME, got %08x\n", hr);
676  ok(hi == 0 ||
677  broken(hi == 0x10005), /* .NET 1.x */
678  "Expected 0, got %08x\n", hi);
679  ok(lo == 0, "Expected 0, got %08x\n", lo);
680 
682 
683  IAssemblyName_Release(name);
684 
685  /* 'wine, Culture=neutral' */
686  to_widechar(namestr, "wine, Culture=neutral");
687  name = NULL;
688  hr = pCreateAssemblyNameObject(&name, namestr, CANOF_PARSE_DISPLAY_NAME, NULL);
689  ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
690  ok(name != NULL, "Expected non-NULL name\n");
691 
692  size = MAX_PATH;
693  hr = IAssemblyName_GetDisplayName(name, str, &size, ASM_DISPLAYF_FULL);
694  ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
695  ok_aw("wine, Culture=neutral", str);
696  ok(size == 22, "Expected 22, got %d\n", size);
697 
698  size = MAX_PATH;
699  str[0] = '\0';
700  hr = IAssemblyName_GetName(name, &size, str);
701  ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
702  ok_aw("wine", str);
703  ok(size == 5, "Expected 5, got %d\n", size);
704 
705  hi = 0xbeefcace;
706  lo = 0xcafebabe;
707  hr = IAssemblyName_GetVersion(name, &hi, &lo);
709  broken(hr == S_OK), /* .NET 1.x */
710  "Expected FUSION_E_INVALID_NAME, got %08x\n", hr);
711  ok(hi == 0, "Expected 0, got %08x\n", hi);
712  ok(lo == 0, "Expected 0, got %08x\n", lo);
713 
715 
716  IAssemblyName_Release(name);
717 
718  /* 'wine, Culture=en' */
719  to_widechar(namestr, "wine, Culture=en");
720  name = NULL;
721  hr = pCreateAssemblyNameObject(&name, namestr, CANOF_PARSE_DISPLAY_NAME, NULL);
722  ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
723  ok(name != NULL, "Expected non-NULL name\n");
724 
725  size = MAX_PATH;
726  hr = IAssemblyName_GetDisplayName(name, str, &size, ASM_DISPLAYF_FULL);
727  ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
728  ok_aw("wine, Culture=en", str);
729  ok(size == 17, "Expected 17, got %d\n", size);
730 
731  size = MAX_PATH;
732  str[0] = '\0';
733  hr = IAssemblyName_GetName(name, &size, str);
734  ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
735  ok_aw("wine", str);
736  ok(size == 5, "Expected 5, got %d\n", size);
737 
738  hi = 0xbeefcace;
739  lo = 0xcafebabe;
740  hr = IAssemblyName_GetVersion(name, &hi, &lo);
742  broken(hr == S_OK), /* .NET 1.x */
743  "Expected FUSION_E_INVALID_NAME, got %08x\n", hr);
744  ok(hi == 0, "Expected 0, got %08x\n", hi);
745  ok(lo == 0, "Expected 0, got %08x\n", lo);
746 
748 
749  IAssemblyName_Release(name);
750 
751  /* 'wine, PublicKeyToken=01234567890abcde' */
752  to_widechar(namestr, "wine, PublicKeyToken=01234567890abcde");
753  name = NULL;
754  hr = pCreateAssemblyNameObject(&name, namestr, CANOF_PARSE_DISPLAY_NAME, NULL);
755  ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
756  ok(name != NULL, "Expected non-NULL name\n");
757 
758  size = MAX_PATH;
759  hr = IAssemblyName_GetDisplayName(name, str, &size, ASM_DISPLAYF_FULL);
760  ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
761  ok_aw("wine, PublicKeyToken=01234567890abcde", str);
762  ok(size == 38, "Expected 38, got %d\n", size);
763 
764  size = MAX_PATH;
765  str[0] = '\0';
766  hr = IAssemblyName_GetName(name, &size, str);
767  ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
768  ok_aw("wine", str);
769  ok(size == 5, "Expected 5, got %d\n", size);
770 
771  hi = 0xbeefcace;
772  lo = 0xcafebabe;
773  hr = IAssemblyName_GetVersion(name, &hi, &lo);
775  broken(hr == S_OK), /* .NET 1.x */
776  "Expected FUSION_E_INVALID_NAME, got %08x\n", hr);
777  ok(hi == 0, "Expected 0, got %08x\n", hi);
778  ok(lo == 0, "Expected 0, got %08x\n", lo);
779 
781 
782  IAssemblyName_Release(name);
783 
784  /* Processor architecture tests */
785  to_widechar(namestr, "wine, processorArchitecture=x86");
786  name = NULL;
787  hr = pCreateAssemblyNameObject(&name, namestr, CANOF_PARSE_DISPLAY_NAME, NULL);
788  ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
789 
790  ok(name != NULL, "Expected non-NULL name\n");
791 
792  size = MAX_PATH;
793  hr = IAssemblyName_GetDisplayName(name, str, &size, ASM_DISPLAYF_PROCESSORARCHITECTURE);
794  ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
795 
797 
798  if (lstrcmpA(string1, "wine") == 0)
799  win_skip("processorArchitecture not supported on .NET 1.x\n");
800  else
801  {
802  ok_aw("wine, processorArchitecture=x86", str);
803  ok(size == 32, "Expected 32, got %d\n", size);
804 
805  size = sizeof(arch);
806  hr = IAssemblyName_GetProperty(name, ASM_NAME_ARCHITECTURE, &arch, &size);
807  ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
808  ok(arch == peI386, "Expected peI386, got %d\n", arch);
809  ok(size == sizeof(arch), "Wrong size %d\n", size);
810 
811  IAssemblyName_Release(name);
812 
813  /* amd64 */
814  to_widechar(namestr, "wine, processorArchitecture=AMD64");
815  name = NULL;
816  hr = pCreateAssemblyNameObject(&name, namestr, CANOF_PARSE_DISPLAY_NAME, NULL);
817  ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
818 
819  size = MAX_PATH;
820  hr = IAssemblyName_GetDisplayName(name, str, &size, ASM_DISPLAYF_PROCESSORARCHITECTURE);
821  ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
822  ok_aw("wine, processorArchitecture=AMD64", str);
823  ok(size == 34, "Expected 34, got %d\n", size);
824 
825  size = sizeof(arch);
826  hr = IAssemblyName_GetProperty(name, ASM_NAME_ARCHITECTURE, &arch, &size);
827  ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
828  ok(arch == peAMD64, "Expected peAMD64, got %d\n", arch);
829  ok(size == sizeof(arch), "Wrong size %d\n", size);
830 
831  IAssemblyName_Release(name);
832 
833  /* ia64 */
834  to_widechar(namestr, "wine, processorArchitecture=IA64");
835  name = NULL;
836  hr = pCreateAssemblyNameObject(&name, namestr, CANOF_PARSE_DISPLAY_NAME, NULL);
837  ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
838 
839  size = MAX_PATH;
840  hr = IAssemblyName_GetDisplayName(name, str, &size, ASM_DISPLAYF_PROCESSORARCHITECTURE);
841  ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
842  ok_aw("wine, processorArchitecture=IA64", str);
843  ok(size == 33, "Expected 33, got %d\n", size);
844 
845  size = sizeof(arch);
846  hr = IAssemblyName_GetProperty(name, ASM_NAME_ARCHITECTURE, &arch, &size);
847  ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
848  ok(arch == peIA64, "Expected peIA64, got %d\n", arch);
849  ok(size == sizeof(arch), "Wrong size %d\n", size);
850 
851  IAssemblyName_Release(name);
852 
853  /* msil */
854  to_widechar(namestr, "wine, processorArchitecture=MSIL");
855  name = NULL;
856  hr = pCreateAssemblyNameObject(&name, namestr, CANOF_PARSE_DISPLAY_NAME, NULL);
857  ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
858 
859  size = MAX_PATH;
860  hr = IAssemblyName_GetDisplayName(name, str, &size, ASM_DISPLAYF_PROCESSORARCHITECTURE);
861  ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
862  ok_aw("wine, processorArchitecture=MSIL", str);
863  ok(size == 33, "Expected 33, got %d\n", size);
864 
865  size = sizeof(arch);
866  hr = IAssemblyName_GetProperty(name, ASM_NAME_ARCHITECTURE, &arch, &size);
867  ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
868  ok(arch == peMSIL, "Expected peMSIL, got %d\n", arch);
869  ok(size == sizeof(arch), "Wrong size %d\n", size);
870 
871  IAssemblyName_Release(name);
872  }
873 
874  /* Pulling out various different values */
875  to_widechar(namestr, "wine, Version=1.2.3.4, Culture=en, PublicKeyToken=1234567890abcdef");
876  name = NULL;
877  hr = pCreateAssemblyNameObject(&name, namestr, CANOF_PARSE_DISPLAY_NAME, NULL);
878  ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
879  ok(name != NULL, "Expected non-NULL name\n");
880 
881  size = MAX_PATH;
882  hr = IAssemblyName_GetDisplayName(name, str, &size, ASM_DISPLAYF_VERSION | ASM_DISPLAYF_CULTURE);
883  ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
884  ok_aw("wine, Version=1.2.3.4, Culture=en", str);
885  ok(size == 34, "Expected 34, got %d\n", size);
886 
887  size = MAX_PATH;
888  hr = IAssemblyName_GetDisplayName(name, str, &size, ASM_DISPLAYF_CULTURE | ASM_DISPLAYF_PUBLIC_KEY_TOKEN);
889  ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
890  ok_aw("wine, Culture=en, PublicKeyToken=1234567890abcdef", str);
891  ok(size == 50, "Expected 50, got %d\n", size);
892 
893  size = MAX_PATH;
894  hr = IAssemblyName_GetDisplayName(name, str, &size, ASM_DISPLAYF_FULL);
895  ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
896  ok_aw("wine, Version=1.2.3.4, Culture=en, PublicKeyToken=1234567890abcdef", str);
897  ok(size == 67, "Expected 67, got %d\n", size);
898 
899  IAssemblyName_Release(name);
900 
901  /* invalid property */
902  to_widechar(namestr, "wine, BadProp=42");
903  name = NULL;
904  hr = pCreateAssemblyNameObject(&name, namestr, CANOF_PARSE_DISPLAY_NAME, NULL);
905  ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
906  ok(name != NULL, "Expected non-NULL name\n");
907 
908  size = MAX_PATH;
909  str[0] = '\0';
910  hr = IAssemblyName_GetDisplayName(name, str, &size, ASM_DISPLAYF_FULL);
911  ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
912  ok_aw("wine", str);
913  ok(size == 5, "Expected 5, got %d\n", size);
914 
915  size = MAX_PATH;
916  str[0] = '\0';
917  hr = IAssemblyName_GetName(name, &size, str);
918  ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
919  ok_aw("wine", str);
920  ok(size == 5, "Expected 5, got %d\n", size);
921 
922  hi = 0xbeefcace;
923  lo = 0xcafebabe;
924  hr = IAssemblyName_GetVersion(name, &hi, &lo);
926  broken(hr == S_OK), /* .NET 1.x */
927  "Expected FUSION_E_INVALID_NAME, got %08x\n", hr);
928  ok(hi == 0, "Expected 0, got %08x\n", hi);
929  ok(lo == 0, "Expected 0, got %08x\n", lo);
930 
932 
933  IAssemblyName_Release(name);
934 
935  /* PublicKeyToken is not 16 chars long */
936  to_widechar(namestr, "wine, PublicKeyToken=567890abcdef");
937  name = (IAssemblyName *)0xdeadbeef;
938  hr = pCreateAssemblyNameObject(&name, namestr, CANOF_PARSE_DISPLAY_NAME, NULL);
939  if (hr == S_OK && name != (IAssemblyName *)0xdeadbeef)
940  {
941  win_skip(".NET 1.x doesn't check PublicKeyToken correctly\n");
942  IAssemblyName_Release(name);
943  return;
944  }
946  "Expected FUSION_E_INVALID_NAME, got %08x\n", hr);
947  ok(name == (IAssemblyName *)0xdeadbeef, "Expected 0xdeadbeef, got %p\n", name);
948 
949  /* PublicKeyToken contains invalid chars */
950  to_widechar(namestr, "wine, PublicKeyToken=1234567890ghijkl");
951  name = (IAssemblyName *)0xdeadbeef;
952  hr = pCreateAssemblyNameObject(&name, namestr, CANOF_PARSE_DISPLAY_NAME, NULL);
954  "Expected FUSION_E_INVALID_NAME, got %08x\n", hr);
955  ok(name == (IAssemblyName *)0xdeadbeef, "Expected 0xdeadbeef, got %p\n", name);
956 
957  /* no comma separator */
958  to_widechar(namestr, "wine PublicKeyToken=1234567890abcdef");
959  name = (IAssemblyName *)0xdeadbeef;
960  hr = pCreateAssemblyNameObject(&name, namestr, CANOF_PARSE_DISPLAY_NAME, NULL);
962  "Expected FUSION_E_INVALID_NAME, got %08x\n", hr);
963  ok(name == (IAssemblyName *)0xdeadbeef, "Expected 0xdeadbeef, got %p\n", name);
964  if(SUCCEEDED(hr)) IAssemblyName_Release(name);
965 
966  /* no '=' */
967  to_widechar(namestr, "wine, PublicKeyToken");
968  name = (IAssemblyName *)0xdeadbeef;
969  hr = pCreateAssemblyNameObject(&name, namestr, CANOF_PARSE_DISPLAY_NAME, NULL);
971  "Expected FUSION_E_INVALID_NAME, got %08x\n", hr);
972  ok(name == (IAssemblyName *)0xdeadbeef, "Expected 0xdeadbeef, got %p\n", name);
973 
974  /* no value */
975  to_widechar(namestr, "wine, PublicKeyToken=");
976  name = (IAssemblyName *)0xdeadbeef;
977  hr = pCreateAssemblyNameObject(&name, namestr, CANOF_PARSE_DISPLAY_NAME, NULL);
979  "Expected FUSION_E_INVALID_NAME, got %08x\n", hr);
980  ok(name == (IAssemblyName *)0xdeadbeef, "Expected 0xdeadbeef, got %p\n", name);
981 
982  /* no spaces */
983  to_widechar(namestr, "wine,version=1.0.0.0");
984  name = (IAssemblyName *)0xdeadbeef;
985  hr = pCreateAssemblyNameObject(&name, namestr, CANOF_PARSE_DISPLAY_NAME, NULL);
986  ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
987  ok(name != NULL, "Expected non-NULL name\n");
988  hi = lo = 0xdeadbeef;
989  hr = IAssemblyName_GetVersion(name, &hi, &lo);
990  ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
991  ok(hi == 65536, "Expected 536, got %u\n", hi);
992  ok(lo == 0, "Expected 0, got %u\n", lo);
993  IAssemblyName_Release(name);
994 
995  /* quoted values */
996  to_widechar(namestr, "wine, version=\"1.0.0.0\",culture=\"en\"");
997  name = (IAssemblyName *)0xdeadbeef;
998  hr = pCreateAssemblyNameObject(&name, namestr, CANOF_PARSE_DISPLAY_NAME, NULL);
999  ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
1000  ok(name != NULL, "Expected non-NULL name\n");
1001  hi = lo = 0xdeadbeef;
1002  hr = IAssemblyName_GetVersion(name, &hi, &lo);
1003  ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
1004  ok(hi == 65536, "Expected 65536, got %u\n", hi);
1005  ok(lo == 0, "Expected 0, got %u\n", lo);
1006  IAssemblyName_Release(name);
1007 }
static const ASMPROP_RES enname[ASM_NAME_MAX_PARAMS]
Definition: asmname.c:274
#define WideCharToMultiByte
Definition: compat.h:101
HRESULT hr
Definition: shlfolder.c:183
static const ASMPROP_RES emptyname[ASM_NAME_MAX_PARAMS]
Definition: asmname.c:114
static const ASMPROP_RES neutralname[ASM_NAME_MAX_PARAMS]
Definition: asmname.c:242
static const WCHAR empty[]
Definition: main.c:49
#define CP_ACP
Definition: compat.h:99
#define ok_aw(aString, wString)
Definition: asmname.c:34
static CHAR string1[MAX_PATH]
Definition: asmname.c:32
int WINAPI lstrcmpA(LPCSTR lpString1, LPCSTR lpString2)
Definition: lstring.c:18
static const ASMPROP_RES defaults[ASM_NAME_MAX_PARAMS]
Definition: asmname.c:82
#define ok(value,...)
#define E_INVALIDARG
Definition: ddrawi.h:101
const WCHAR * str
smooth NULL
Definition: ftsmooth.c:416
GLsizeiptr size
Definition: glext.h:5919
static const ASMPROP_RES winename[ASM_NAME_MAX_PARAMS]
Definition: asmname.c:146
static const ASMPROP_RES badvername[ASM_NAME_MAX_PARAMS]
Definition: asmname.c:210
__wchar_t WCHAR
Definition: xmlstorage.h:180
LONG HRESULT
Definition: typedefs.h:77
static void to_widechar(LPWSTR dest, LPCSTR src)
Definition: asmname.c:338
#define MAX_PATH
Definition: compat.h:26
#define FUSION_E_INVALID_NAME
Definition: corerror.h:123
unsigned long DWORD
Definition: ntddk_ex.h:95
PEKIND
Definition: fusion.idl:35
#define E_NOT_SUFFICIENT_BUFFER
Definition: winerror.h:2345
#define broken(x)
Definition: _sntprintf.h:21
#define S_OK
Definition: intsafe.h:59
static const ASMPROP_RES pubkeyname[ASM_NAME_MAX_PARAMS]
Definition: asmname.c:306
Definition: name.c:36
#define win_skip
Definition: test.h:141
#define test_assembly_name_props(name, vals)
Definition: asmname.c:391
#define SUCCEEDED(hr)
Definition: intsafe.h:57
static const ASMPROP_RES vername[ASM_NAME_MAX_PARAMS]
Definition: asmname.c:178
GLuint const GLchar * name
Definition: glext.h:6031

Referenced by START_TEST().

◆ test_IAssemblyName_IsEqual()

static void test_IAssemblyName_IsEqual ( void  )
static

Definition at line 1009 of file asmname.c.

1010 {
1011  static const WCHAR wine1[] =
1012  {'w','i','n','e',0};
1013  static const WCHAR wine2[] =
1014  {'w','i','n','e',',','v','e','r','s','i','o','n','=','1','.','0','.','0','.','0',0};
1015  static const WCHAR wine3[] =
1016  {'w','i','n','e',',','v','e','r','s','i','o','n','=','1','.','0','.','0','.','0',',',
1017  'c','u','l','t','u','r','e','=','n','e','u','t','r','a','l',0};
1018  static const WCHAR wine4[] =
1019  {'w','i','n','e',',','v','e','r','s','i','o','n','=','1','.','0','.','0','.','0',',',
1020  'c','u','l','t','u','r','e','=','e','n',0};
1021  static const WCHAR wine5[] =
1022  {'w','i','n','e',',','v','e','r','s','i','o','n','=','1','.','0','.','0','.','0',',',
1023  'p','u','b','l','i','c','K','e','y','T','o','k','e','n','=','1','2','3','4','5','6',
1024  '7','8','9','0','a','b','c','d','e','f',0};
1025  HRESULT hr;
1027 
1028  hr = pCreateAssemblyNameObject( &name1, wine1, CANOF_PARSE_DISPLAY_NAME, NULL );
1029  ok( hr == S_OK, "got %08x\n", hr );
1030 
1031  hr = pCreateAssemblyNameObject( &name2, wine1, CANOF_PARSE_DISPLAY_NAME, NULL );
1032  ok( hr == S_OK, "got %08x\n", hr );
1033 
1034  if (0) { /* crashes on some old version */
1035  hr = IAssemblyName_IsEqual( name1, NULL, 0 );
1036  ok( hr == S_FALSE, "got %08x\n", hr );
1037 
1038  hr = IAssemblyName_IsEqual( name1, NULL, ASM_CMPF_IL_ALL );
1039  ok( hr == S_FALSE, "got %08x\n", hr );
1040  }
1041 
1042  hr = IAssemblyName_IsEqual( name1, name1, ASM_CMPF_IL_ALL );
1043  ok( hr == S_OK, "got %08x\n", hr );
1044 
1045  hr = IAssemblyName_IsEqual( name1, name2, ASM_CMPF_IL_ALL );
1046  ok( hr == S_OK, "got %08x\n", hr );
1047 
1048  IAssemblyName_Release( name2 );
1049  hr = pCreateAssemblyNameObject( &name2, wine2, CANOF_PARSE_DISPLAY_NAME, NULL );
1050  ok( hr == S_OK, "got %08x\n", hr );
1051 
1052  hr = IAssemblyName_IsEqual( name1, name2, ASM_CMPF_IL_ALL );
1053  ok( hr == S_OK, "got %08x\n", hr );
1054 
1055  IAssemblyName_Release( name2 );
1056  hr = pCreateAssemblyNameObject( &name2, wine3, CANOF_PARSE_DISPLAY_NAME, NULL );
1057  ok( hr == S_OK, "got %08x\n", hr );
1058 
1059  hr = IAssemblyName_IsEqual( name1, name2, ASM_CMPF_IL_ALL );
1060  ok( hr == S_OK, "got %08x\n", hr );
1061 
1062  IAssemblyName_Release( name1 );
1063  hr = pCreateAssemblyNameObject( &name1, wine4, CANOF_PARSE_DISPLAY_NAME, NULL );
1064  ok( hr == S_OK, "got %08x\n", hr );
1065 
1066  hr = IAssemblyName_IsEqual( name1, name2, ASM_CMPF_IL_ALL );
1067  ok( hr == S_FALSE, "got %08x\n", hr );
1068 
1069  IAssemblyName_Release( name1 );
1070  hr = pCreateAssemblyNameObject( &name1, wine1, CANOF_PARSE_DISPLAY_NAME, NULL );
1071  ok( hr == S_OK, "got %08x\n", hr );
1072 
1073  IAssemblyName_Release( name2 );
1074  hr = pCreateAssemblyNameObject( &name2, wine5, CANOF_PARSE_DISPLAY_NAME, NULL );
1075  ok( hr == S_OK, "got %08x\n", hr );
1076 
1077  hr = IAssemblyName_IsEqual( name1, name2, ASM_CMPF_IL_ALL );
1078  ok( hr == S_OK, "got %08x\n", hr );
1079 
1080  IAssemblyName_Release( name1 );
1081  IAssemblyName_Release( name2 );
1082 }
HRESULT hr
Definition: shlfolder.c:183
static WCHAR name1[]
Definition: record.c:34
#define ok(value,...)
#define S_FALSE
Definition: winerror.h:2357
smooth NULL
Definition: ftsmooth.c:416
__wchar_t WCHAR
Definition: xmlstorage.h:180
LONG HRESULT
Definition: typedefs.h:77
#define S_OK
Definition: intsafe.h:59
static WCHAR name2[]
Definition: record.c:35

Referenced by START_TEST().

◆ to_widechar()

static void to_widechar ( LPWSTR  dest,
LPCSTR  src 
)
inlinestatic

Definition at line 338 of file asmname.c.

339 {
341 }
#define CP_ACP
Definition: compat.h:99
#define MAX_PATH
Definition: compat.h:26
GLenum src
Definition: glext.h:6340
#define MultiByteToWideChar
Definition: compat.h:100
static char * dest
Definition: rtl.c:135

Referenced by test_assembly_name_props_line(), and test_CreateAssemblyNameObject().

Variable Documentation

◆ badvername

const ASMPROP_RES badvername[ASM_NAME_MAX_PARAMS]
static

Definition at line 210 of file asmname.c.

Referenced by test_CreateAssemblyNameObject().

◆ defaults

const ASMPROP_RES defaults[ASM_NAME_MAX_PARAMS]
static

◆ dwFlags

Definition at line 40 of file asmname.c.

◆ emptyname

const ASMPROP_RES emptyname[ASM_NAME_MAX_PARAMS]
static

Definition at line 114 of file asmname.c.

Referenced by test_CreateAssemblyNameObject().

◆ enname

const ASMPROP_RES enname[ASM_NAME_MAX_PARAMS]
static

Definition at line 274 of file asmname.c.

Referenced by test_CreateAssemblyNameObject().

◆ neutralname

const ASMPROP_RES neutralname[ASM_NAME_MAX_PARAMS]
static

Definition at line 242 of file asmname.c.

Referenced by test_CreateAssemblyNameObject().

◆ phModDll

LPCWSTR LPVOID HMODULE* phModDll

Definition at line 42 of file asmname.c.

◆ pubkeyname

const ASMPROP_RES pubkeyname[ASM_NAME_MAX_PARAMS]
static

Definition at line 306 of file asmname.c.

Referenced by test_CreateAssemblyNameObject().

◆ pvReserved

LPCWSTR LPVOID pvReserved

Definition at line 40 of file asmname.c.

Referenced by CreateAssemblyNameObject(), and IAssemblyNameImpl_Reserved().

◆ string1

CHAR string1[MAX_PATH]
static

Definition at line 32 of file asmname.c.

Referenced by operator+(), and test_CreateAssemblyNameObject().

◆ szAssemblyName

LPCWSTR szAssemblyName

Definition at line 40 of file asmname.c.

Referenced by CreateAssemblyNameObject(), and parse_display_name().

◆ szVersion

LPCWSTR szVersion

Definition at line 42 of file asmname.c.

◆ vername

const ASMPROP_RES vername[ASM_NAME_MAX_PARAMS]
static

Definition at line 178 of file asmname.c.

Referenced by test_CreateAssemblyNameObject().

◆ winename

const ASMPROP_RES winename[ASM_NAME_MAX_PARAMS]
static

Definition at line 146 of file asmname.c.

Referenced by test_CreateAssemblyNameObject().