34 'v',
'e',
'r',
's',
'i',
'o',
'n',
'=',
'\"',
'1',
'.',
'2',
'.',
'3',
'.',
'4',
'\"',0};
37 'v',
'e',
'r',
's',
'i',
'o',
'n',
'=',
'\"',
'1',
'.',
'2',
'.',
'3',
'.',
'4',
'\"',
',',
38 't',
'y',
'p',
'e',
'=',
'\"',
'w',
'i',
'n',
'3',
'2',
'\"',0};
41 'v',
'e',
'r',
's',
'i',
'o',
'n',
'=',
'\"',
'1',
'.',
'2',
'.',
'3',
'.',
'4',
'\"',
',',
42 't',
'y',
'p',
'e',
'=',
'\"',
'w',
'i',
'n',
'3',
'2',
'\"',
',',
43 'p',
'r',
'o',
'c',
'e',
's',
's',
'o',
'r',
'A',
'r',
'c',
'h',
'i',
't',
'e',
'c',
't',
'u',
'r',
'e',
'=',
44 '\"',
'x',
'8',
'6',
'\"',0};
47 'v',
'e',
'r',
's',
'i',
'o',
'n',
'=',
'\"',
'1',
'.',
'2',
'.',
'3',
'.',
'4',
'\"',
',',
48 't',
'y',
'p',
'e',
'=',
'\"',
'w',
'i',
'n',
'3',
'2',
'\"',
',',
49 'p',
'r',
'o',
'c',
'e',
's',
's',
'o',
'r',
'A',
'r',
'c',
'h',
'i',
't',
'e',
'c',
't',
'u',
'r',
'e',
'=',
50 '\"',
'x',
'8',
'6',
'\"',
',',
'p',
'u',
'b',
'l',
'i',
'c',
'K',
'e',
'y',
'T',
'o',
'k',
'e',
'n',
'=',
51 '\"',
'1',
'2',
'3',
'4',
'5',
'6',
'7',
'8',
'9',
'0',
'a',
'b',
'c',
'd',
'e',
'f',
'\"',0};
52 static const WCHAR comctl1W[] =
53 {
'm',
'i',
'c',
'r',
'o',
's',
'o',
'f',
't',
'.',
'w',
'i',
'n',
'd',
'o',
'w',
's',
'.',
54 'c',
'o',
'm',
'm',
'o',
'n',
'-',
'c',
'o',
'n',
't',
'r',
'o',
'l',
's',
',',
55 'v',
'e',
'r',
's',
'i',
'o',
'n',
'=',
'\"',
'6',
'.',
'0',
'.',
'2',
'6',
'0',
'0',
'.',
'2',
'9',
'8',
'2',
'\"',
',',
56 't',
'y',
'p',
'e',
'=',
'\"',
'w',
'i',
'n',
'3',
'2',
'\"',
',',
57 'p',
'r',
'o',
'c',
'e',
's',
's',
'o',
'r',
'A',
'r',
'c',
'h',
'i',
't',
'e',
'c',
't',
'u',
'r',
'e',
'=',
58 '\"',
'x',
'8',
'6',
'\"',
',',
'p',
'u',
'b',
'l',
'i',
'c',
'K',
'e',
'y',
'T',
'o',
'k',
'e',
'n',
'=',
59 '\"',
'6',
'5',
'9',
'5',
'b',
'6',
'4',
'1',
'4',
'4',
'c',
'c',
'f',
'1',
'd',
'f',
'\"',0};
60 static const WCHAR comctl2W[] =
61 {
'm',
'i',
'c',
'r',
'o',
's',
'o',
'f',
't',
'.',
'w',
'i',
'n',
'd',
'o',
'w',
's',
'.',
62 'c',
'o',
'm',
'm',
'o',
'n',
'-',
'c',
'o',
'n',
't',
'r',
'o',
'l',
's',
',',
63 'v',
'e',
'r',
's',
'i',
'o',
'n',
'=',
'\"',
'6',
'.',
'0',
'.',
'3',
'7',
'9',
'0',
'.',
'4',
'7',
'7',
'0',
'\"',
',',
64 't',
'y',
'p',
'e',
'=',
'\"',
'w',
'i',
'n',
'3',
'2',
'\"',
',',
65 'p',
'r',
'o',
'c',
'e',
's',
's',
'o',
'r',
'A',
'r',
'c',
'h',
'i',
't',
'e',
'c',
't',
'u',
'r',
'e',
'=',
66 '\"',
'x',
'8',
'6',
'\"',
',',
'p',
'u',
'b',
'l',
'i',
'c',
'K',
'e',
'y',
'T',
'o',
'k',
'e',
'n',
'=',
67 '\"',
'6',
'5',
'9',
'5',
'b',
'6',
'4',
'1',
'4',
'4',
'c',
'c',
'f',
'1',
'd',
'f',
'\"',0};
68 static const WCHAR comctl3W[] =
69 {
'm',
'i',
'c',
'r',
'o',
's',
'o',
'f',
't',
'.',
'w',
'i',
'n',
'd',
'o',
'w',
's',
'.',
70 'c',
'o',
'm',
'm',
'o',
'n',
'-',
'c',
'o',
'n',
't',
'r',
'o',
'l',
's',
',',
71 'v',
'e',
'r',
's',
'i',
'o',
'n',
'=',
'\"',
'6',
'.',
'0',
'.',
'8',
'2',
'5',
'0',
'.',
'0',
'\"',
',',
72 't',
'y',
'p',
'e',
'=',
'\"',
'w',
'i',
'n',
'3',
'2',
'\"',
',',
73 'p',
'r',
'o',
'c',
'e',
's',
's',
'o',
'r',
'A',
'r',
'c',
'h',
'i',
't',
'e',
'c',
't',
'u',
'r',
'e',
'=',
74 '\"',
'x',
'8',
'6',
'\"',
',',
'p',
'u',
'b',
'l',
'i',
'c',
'K',
'e',
'y',
'T',
'o',
'k',
'e',
'n',
'=',
75 '\"',
'6',
'5',
'9',
'5',
'b',
'6',
'4',
'1',
'4',
'4',
'c',
'c',
'f',
'1',
'd',
'f',
'\"',0};
76 static const WCHAR comctl4W[] =
77 {
'm',
'i',
'c',
'r',
'o',
's',
'o',
'f',
't',
'.',
'w',
'i',
'n',
'd',
'o',
'w',
's',
'.',
78 'c',
'o',
'm',
'm',
'o',
'n',
'-',
'c',
'o',
'n',
't',
'r',
'o',
'l',
's',
',',
79 'v',
'e',
'r',
's',
'i',
'o',
'n',
'=',
'\"',
'6',
'.',
'0',
'.',
'7',
'6',
'0',
'1',
'.',
'1',
'7',
'5',
'1',
'4',
'\"',
',',
80 't',
'y',
'p',
'e',
'=',
'\"',
'w',
'i',
'n',
'3',
'2',
'\"',
',',
81 'p',
'r',
'o',
'c',
'e',
's',
's',
'o',
'r',
'A',
'r',
'c',
'h',
'i',
't',
'e',
'c',
't',
'u',
'r',
'e',
'=',
82 '\"',
'x',
'8',
'6',
'\"',
',',
'p',
'u',
'b',
'l',
'i',
'c',
'K',
'e',
'y',
'T',
'o',
'k',
'e',
'n',
'=',
83 '\"',
'6',
'5',
'9',
'5',
'b',
'6',
'4',
'1',
'4',
'4',
'c',
'c',
'f',
'1',
'd',
'f',
'\"',0};
120 lstrcatA( comctl_path1,
"\\winsxs\\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.2600.2982_none_deadbeef" );
122 lstrcatA( comctl_path2,
"\\winsxs\\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.3790.4770_x-ww_05fdf087" );
124 lstrcatA( comctl_path3,
"\\winsxs\\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.8250.0_none_c119e7cca62b92bd" );
126 lstrcatA( comctl_path4,
"\\winsxs\\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7601.17514_none_41e6975e2bd6f2b2" );
133 skip(
"no assembly to test with\n" );
134 IAssemblyCache_Release(
cache );
138 hr = IAssemblyCache_QueryAssemblyInfo(
cache, 0, comctlW,
NULL );
148 hr = IAssemblyCache_QueryAssemblyInfo(
cache, 0, comctlW, &
info );
150 ok(
info.dwAssemblyFlags == 1,
"got %08x\n",
info.dwAssemblyFlags );
151 ok( !
info.uliAssemblySizeInKB.u.LowPart,
"got %u\n",
info.uliAssemblySizeInKB.u.LowPart );
152 ok(
info.pszCurrentAssemblyPathBuf ==
NULL,
"got %p\n",
info.pszCurrentAssemblyPathBuf );
157 info.pszCurrentAssemblyPathBuf =
path;
159 hr = IAssemblyCache_QueryAssemblyInfo(
cache, 0, comctlW, &
info );
161 ok(
info.dwAssemblyFlags == 1,
"got %08x\n",
info.dwAssemblyFlags );
162 ok( !
info.uliAssemblySizeInKB.u.LowPart,
"got %u\n",
info.uliAssemblySizeInKB.u.LowPart );
164 ok(
path[0],
"empty path\n" );
168 info.pszCurrentAssemblyPathBuf =
path;
169 hr = IAssemblyCache_QueryAssemblyInfo(
cache, 0, comctlW, &
info );
171 ok(
info.dwAssemblyFlags == 1,
"got %08x\n",
info.dwAssemblyFlags );
172 ok( !
info.uliAssemblySizeInKB.u.LowPart,
"got %u\n",
info.uliAssemblySizeInKB.u.LowPart );
177 hr = IAssemblyCache_QueryAssemblyInfo(
cache, 1, comctlW, &
info );
179 ok( !
info.dwAssemblyFlags,
"got %08x\n",
info.dwAssemblyFlags );
180 ok( !
info.uliAssemblySizeInKB.u.LowPart,
"got %u\n",
info.uliAssemblySizeInKB.u.LowPart );
181 ok(
info.pszCurrentAssemblyPathBuf ==
NULL,
"got %p\n",
info.pszCurrentAssemblyPathBuf );
186 hr = IAssemblyCache_QueryAssemblyInfo(
cache, 2, comctlW, &
info );
188 ok( !
info.dwAssemblyFlags,
"got %08x\n",
info.dwAssemblyFlags );
189 ok( !
info.uliAssemblySizeInKB.u.LowPart,
"got %u\n",
info.uliAssemblySizeInKB.u.LowPart );
190 ok(
info.pszCurrentAssemblyPathBuf ==
NULL,
"got %p\n",
info.pszCurrentAssemblyPathBuf );
195 info.pszCurrentAssemblyPathBuf =
path;
198 hr = IAssemblyCache_QueryAssemblyInfo(
cache, 2, comctlW, &
info );
200 ok( !
info.dwAssemblyFlags,
"got %08x\n",
info.dwAssemblyFlags );
201 ok( !
info.uliAssemblySizeInKB.u.LowPart,
"got %u\n",
info.uliAssemblySizeInKB.u.LowPart );
205 IAssemblyCache_Release(
cache );
#define ERROR_INSUFFICIENT_BUFFER
DWORD WINAPI GetFileAttributesA(LPCSTR lpFileName)
UINT WINAPI GetWindowsDirectoryA(OUT LPSTR lpBuffer, IN UINT uSize)
HRESULT WINAPI CreateAssemblyCache(IAssemblyCache **obj, DWORD reserved)
static const WCHAR emptyW[]
LPSTR WINAPI lstrcatA(LPSTR lpString1, LPCSTR lpString2)
static void test_QueryAssemblyInfo(void)
static const WCHAR wine4W[]
static const WCHAR wine1W[]
static const WCHAR wine3W[]
static const WCHAR wine2W[]
static const WCHAR wine5W[]
#define INVALID_FILE_ATTRIBUTES
#define ERROR_SXS_MISSING_ASSEMBLY_IDENTITY_ATTRIBUTE
#define HRESULT_FROM_WIN32(x)