29{
33 {'w','i','n','e',',',
34 'v','e','r','s','i','o','n','=','\"','1','.','2','.','3','.','4','\"',0};
36 {'w','i','n','e',',',
37 'v','e','r','s','i','o','n','=','\"','1','.','2','.','3','.','4','\"',',',
38 't','y','p','e','=','\"','w','i','n','3','2','\"',0};
40 {'w','i','n','e',',',
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};
46 {'w','i','n','e',',',
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};
90
94
97
100
104
108
112
115
118
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" );
131 else
132 {
133 skip(
"no assembly to test with\n" );
134 IAssemblyCache_Release(
cache );
135 return;
136 }
137
138 hr = IAssemblyCache_QueryAssemblyInfo(
cache, 0, comctlW,
NULL );
140
145
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 );
154
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" );
165
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 );
174
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 );
183
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 );
192
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 );
204
205 IAssemblyCache_Release(
cache );
206}
#define ERROR_INSUFFICIENT_BUFFER
HRESULT WINAPI CreateAssemblyCache(IAssemblyCache **ppAsmCache, DWORD dwReserved)
DWORD WINAPI GetFileAttributesA(LPCSTR lpFileName)
UINT WINAPI GetWindowsDirectoryA(OUT LPSTR lpBuffer, IN UINT uSize)
static const WCHAR emptyW[]
LPSTR WINAPI lstrcatA(LPSTR lpString1, LPCSTR lpString2)
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)