34#define ok_aw(aString, wString) \
35 WideCharToMultiByte(CP_ACP, 0, wString, -1, string1, MAX_PATH, NULL, NULL); \
36 if (lstrcmpA(string1, aString) != 0) \
37 ok(0, "Expected \"%s\", got \"%s\"\n", aString, string1);
51 static const WCHAR szFusion[] = {
'f',
'u',
's',
'i',
'o',
'n',
'.',
'd',
'l',
'l',0};
58 if (!pLoadLibraryShim)
64 hr = pLoadLibraryShim(szFusion,
NULL,
NULL, &hfusion);
68 pCreateAssemblyNameObject = (
void *)
GetProcAddress(hfusion,
"CreateAssemblyNameObject");
69 if (!pCreateAssemblyNameObject)
309 {
S_OK,
"\x01\x23\x45\x67\x89\x0a\xbc\xde", 8},
351 for (
i = 0;
i < ASM_NAME_MAX_PARAMS;
i++)
362 "%d: prop %d: Expected %08x, got %08x\n",
line,
i, vals[
i].
hr,
hr);
368 ok(
str[0] == 0xcccc,
"%d: prop %d: str[0] = %x\n",
line,
i,
str[0]);
372 if (
i != ASM_NAME_NAME &&
i != ASM_NAME_CULTURE)
384 "%d: prop %d: Expected STRSAFE_E_INSUFFICIENT_BUFFER, got %08x\n",
line,
i,
hr);
391#define test_assembly_name_props(name, vals) \
392 test_assembly_name_props_line(name, vals, __LINE__);
407 hr = pCreateAssemblyNameObject(
NULL, namestr, 0,
NULL);
427 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
431 hr = IAssemblyName_GetDisplayName(
name,
str, &
size, ASM_DISPLAYF_FULL);
434 "Expected FUSION_E_INVALID_NAME, got %08x\n",
hr);
440 ok(
str[0] ==
'a',
"got %c\n",
str[0]);
445 hr = IAssemblyName_GetVersion(
name, &hi, &lo);
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);
453 win_skip(
".NET 1.x doesn't handle ASM_NAME_PROCESSOR_ID_ARRAY"
454 " and ASM_NAME_OSINFO_ARRAY correctly\n");
458 IAssemblyName_Release(
name);
463 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
467 hr = IAssemblyName_GetDisplayName(
name,
str, &
size, ASM_DISPLAYF_FULL);
470 "Expected FUSION_E_INVALID_NAME, got %08x\n",
hr);
495 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
496 ok(!
str[0],
"Expected empty name\n");
501 hr = IAssemblyName_GetVersion(
name, &hi, &lo);
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);
509 win_skip(
".NET 1.x doesn't handle ASM_NAME_PROCESSOR_ID_ARRAY"
510 " and ASM_NAME_OSINFO_ARRAY correctly\n");
514 IAssemblyName_Release(
name);
520 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
537 ok(
str[0] ==
'a',
"got %c\n",
str[0]);
542 hr = IAssemblyName_GetDisplayName(
name,
str, &
size, ASM_DISPLAYF_FULL);
544 ok(
str[0] ==
'a',
"got %c\n",
str[0]);
548 hr = IAssemblyName_GetDisplayName(
name,
str, &
size, ASM_DISPLAYF_FULL);
549 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
563 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
569 hr = IAssemblyName_GetVersion(
name, &hi, &lo);
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);
577 win_skip(
".NET 1.x doesn't handle ASM_NAME_PROCESSOR_ID_ARRAY"
578 " and ASM_NAME_OSINFO_ARRAY correctly\n");
582 IAssemblyName_Release(
name);
590 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
594 hr = IAssemblyName_GetDisplayName(
name,
str, &
size, ASM_DISPLAYF_FULL);
595 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
602 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
608 hr = IAssemblyName_GetVersion(
name, &hi, &lo);
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);
617 IAssemblyName_Release(
name);
623 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
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);
635 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
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);
648 IAssemblyName_Release(
name);
654 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
658 hr = IAssemblyName_GetDisplayName(
name,
str, &
size, ASM_DISPLAYF_FULL);
659 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
661 ok(
size == 18,
"Expected 18, got %d\n",
size);
666 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
672 hr = IAssemblyName_GetVersion(
name, &hi, &lo);
675 "Expected FUSION_E_INVALID_NAME, got %08x\n",
hr);
678 "Expected 0, got %08x\n", hi);
679 ok(lo == 0,
"Expected 0, got %08x\n", lo);
683 IAssemblyName_Release(
name);
689 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
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);
701 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
707 hr = IAssemblyName_GetVersion(
name, &hi, &lo);
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);
716 IAssemblyName_Release(
name);
722 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
726 hr = IAssemblyName_GetDisplayName(
name,
str, &
size, ASM_DISPLAYF_FULL);
727 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
729 ok(
size == 17,
"Expected 17, got %d\n",
size);
734 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
740 hr = IAssemblyName_GetVersion(
name, &hi, &lo);
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);
749 IAssemblyName_Release(
name);
752 to_widechar(namestr,
"wine, PublicKeyToken=01234567890abcde");
755 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
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);
767 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
773 hr = IAssemblyName_GetVersion(
name, &hi, &lo);
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);
782 IAssemblyName_Release(
name);
785 to_widechar(namestr,
"wine, processorArchitecture=x86");
788 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
793 hr = IAssemblyName_GetDisplayName(
name,
str, &
size, ASM_DISPLAYF_PROCESSORARCHITECTURE);
794 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
799 win_skip(
"processorArchitecture not supported on .NET 1.x\n");
802 ok_aw(
"wine, processorArchitecture=x86",
str);
803 ok(
size == 32,
"Expected 32, got %d\n",
size);
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);
811 IAssemblyName_Release(
name);
814 to_widechar(namestr,
"wine, processorArchitecture=AMD64");
817 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
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);
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);
831 IAssemblyName_Release(
name);
834 to_widechar(namestr,
"wine, processorArchitecture=IA64");
837 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
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);
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);
851 IAssemblyName_Release(
name);
854 to_widechar(namestr,
"wine, processorArchitecture=MSIL");
857 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
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);
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);
871 IAssemblyName_Release(
name);
875 to_widechar(namestr,
"wine, Version=1.2.3.4, Culture=en, PublicKeyToken=1234567890abcdef");
878 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
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);
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);
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);
899 IAssemblyName_Release(
name);
905 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
910 hr = IAssemblyName_GetDisplayName(
name,
str, &
size, ASM_DISPLAYF_FULL);
911 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
918 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
924 hr = IAssemblyName_GetVersion(
name, &hi, &lo);
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);
933 IAssemblyName_Release(
name);
936 to_widechar(namestr,
"wine, PublicKeyToken=567890abcdef");
941 win_skip(
".NET 1.x doesn't check PublicKeyToken correctly\n");
942 IAssemblyName_Release(
name);
946 "Expected FUSION_E_INVALID_NAME, got %08x\n",
hr);
950 to_widechar(namestr,
"wine, PublicKeyToken=1234567890ghijkl");
954 "Expected FUSION_E_INVALID_NAME, got %08x\n",
hr);
958 to_widechar(namestr,
"wine PublicKeyToken=1234567890abcdef");
962 "Expected FUSION_E_INVALID_NAME, got %08x\n",
hr);
971 "Expected FUSION_E_INVALID_NAME, got %08x\n",
hr);
979 "Expected FUSION_E_INVALID_NAME, got %08x\n",
hr);
986 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
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);
996 to_widechar(namestr,
"wine, version=\"1.0.0.0\",culture=\"en\"");
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);
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};
1038 hr = IAssemblyName_IsEqual(
name1,
NULL, ASM_CMPF_IL_ALL );
1042 hr = IAssemblyName_IsEqual(
name1,
name1, ASM_CMPF_IL_ALL );
1045 hr = IAssemblyName_IsEqual(
name1,
name2, ASM_CMPF_IL_ALL );
1048 IAssemblyName_Release(
name2 );
1052 hr = IAssemblyName_IsEqual(
name1,
name2, ASM_CMPF_IL_ALL );
1055 IAssemblyName_Release(
name2 );
1059 hr = IAssemblyName_IsEqual(
name1,
name2, ASM_CMPF_IL_ALL );
1062 IAssemblyName_Release(
name1 );
1066 hr = IAssemblyName_IsEqual(
name1,
name2, ASM_CMPF_IL_ALL );
1069 IAssemblyName_Release(
name1 );
1073 IAssemblyName_Release(
name2 );
1077 hr = IAssemblyName_IsEqual(
name1,
name2, ASM_CMPF_IL_ALL );
1080 IAssemblyName_Release(
name1 );
1081 IAssemblyName_Release(
name2 );
1088 win_skip(
"fusion.dll not available\n");
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
#define FUSION_E_INVALID_NAME
static const WCHAR szDllName[]
static const WCHAR empty[]
#define GetProcAddress(x, y)
#define WideCharToMultiByte
#define MultiByteToWideChar
HINSTANCE WINAPI DECLSPEC_HOTPATCH LoadLibraryA(LPCSTR lpLibFileName)
int WINAPI lstrcmpW(LPCWSTR str1, LPCWSTR str2)
int WINAPI lstrcmpA(LPCSTR str1, LPCSTR str2)
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
static LPCSTR DWORD void * pvReserved
static BOOL init_functionpointers(void)
struct _tagASMPROP_RES ASMPROP_RES
static const ASMPROP_RES neutralname[ASM_NAME_MAX_PARAMS]
static const ASMPROP_RES pubkeyname[ASM_NAME_MAX_PARAMS]
static const ASMPROP_RES defaults[ASM_NAME_MAX_PARAMS]
static void test_assembly_name_props_line(IAssemblyName *name, const ASMPROP_RES *vals, int line)
static LPCWSTR DWORD dwFlags
static const ASMPROP_RES vername[ASM_NAME_MAX_PARAMS]
static CHAR string1[MAX_PATH]
static void test_IAssemblyName_IsEqual(void)
static void test_CreateAssemblyNameObject(void)
static const ASMPROP_RES enname[ASM_NAME_MAX_PARAMS]
#define ok_aw(aString, wString)
static LPCWSTR LPVOID HMODULE * phModDll
static const ASMPROP_RES emptyname[ASM_NAME_MAX_PARAMS]
static const ASMPROP_RES badvername[ASM_NAME_MAX_PARAMS]
static const ASMPROP_RES winename[ASM_NAME_MAX_PARAMS]
#define test_assembly_name_props(name, vals)
static void to_widechar(LPWSTR dest, LPCSTR src)
#define STRSAFE_E_INSUFFICIENT_BUFFER
#define E_NOT_SUFFICIENT_BUFFER
@ CANOF_PARSE_DISPLAY_NAME
@ CANOF_SET_DEFAULT_VALUES