227{
228 const char *strings1[] = {"a", "c", "e"};
229 const char *strings2[] = {"a", "b", "d"};
235 IACList *acl;
236 IObjMgr *mgr;
242
244 ok(
hr ==
S_OK,
"failed to create ACLMulti instance, 0x%08x\n",
hr);
246
247 hr = IEnumString_QueryInterface(
obj, &IID_IACList, (
void**)&acl);
249 hr = IEnumString_QueryInterface(
obj, &IID_IACList2, &tmp);
251 hr = IEnumString_QueryInterface(
obj, &IID_IObjMgr, (
void**)&mgr);
253
254 hr = IEnumString_QueryInterface(
obj, &IID_IEnumACString, (
LPVOID*)&unk);
257 else
258 {
259 ok(
hr ==
S_OK,
"QueryInterface(IID_IEnumACString) failed: %x\n",
hr);
261 IEnumACString_Release(unk);
262 }
263
267 ok(
i == 0,
"Unexpected fetched value %d\n",
i);
270 hr = IEnumString_Skip(
obj, 1);
276
292
293 hr = IEnumString_Reset(
obj);
295 ok(acl1->
pos == 0,
"acl1 not reset\n");
296 ok(acl2->
pos == 0,
"acl2 not reset\n");
297
302 "expcount - expected 0 or 1, got %d\n", acl2->
expcount);
303
304 hr = IEnumString_Next(
obj, 15, wstrtab, &
i);
306 ok(
i == 1,
"Expected i == 1, got %d\n",
i);
308
309 hr = IEnumString_Next(
obj, 15, wstrtab, &
i);
312
313 hr = IEnumString_Next(
obj, 15, wstrtab, &
i);
316
317 hr = IEnumString_Next(
obj, 15, wstrtab, &
i);
320
325 "expcount - expected 0 or 2, got %d\n", acl2->
expcount);
331 "expcount - expected 0 or 3, got %d\n", acl2->
expcount);
337 "expcount - expected 0 or 4, got %d\n", acl2->
expcount);
344
347
348 ok(acl1->
ref == 1,
"acl1 not released\n");
350 IEnumString_Reset(
obj);
355
356 IEnumString_Release(
obj);
359 ok(
ref == 0,
"Unexpected references\n");
360 ok(acl1->
ref == 1,
"acl1 not released\n");
361 ok(acl2->
ref == 1,
"acl2 not released\n");
362
365}
#define expect_str(obj, str)
static TestACL * TestACL_Constructor(int limit, const char **strings)
void WINAPI CoTaskMemFree(void *ptr)
#define IObjMgr_Append(p, a)
#define IObjMgr_Remove(p, a)
#define IACList_Expand(p, a)
#define IObjMgr_Release(p)