Nikolay Sivov (@nsivov) commented about dlls/combase/tests/roapi.c:
IAgileReference_Release(agile_reference); EXPECT_REF(&unk_obj, 1);
/* Test marshaling WinRT interfaces. */
hr = RoGetActivationFactory(str, &IID_IApiInformationStatics, (void **)&statics);
ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
agile_reference = NULL;
hr = RoGetAgileReference(option, &IID_IApiInformationStatics, (IUnknown *)statics, &agile_reference);
todo_wine_if(option == AGILEREFERENCE_DEFAULT)
ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
todo_wine_if(option == AGILEREFERENCE_DEFAULT)
ok(!!agile_reference, "Got unexpected agile_reference.\n");
todo_wine_if(option == AGILEREFERENCE_DEFAULT)
EXPECT_REF(statics, 3);
Why do you need to use some winrt object to demonstrate this? Does this fail because CoMarshalInterface() fails for IApiInformationStatics ?