Piotr Caban (@piotr) commented about dlls/vccorlib140/vccorlib.c:
+static inline struct platform_type *impl_from_IClosable(IClosable *iface) +{
- return CONTAINING_RECORD(iface, struct platform_type, IClosable_iface);
+}
+static HRESULT WINAPI platform_type_QueryInterface(IClosable *iface, const GUID *iid, void **out) +{
- struct platform_type *impl = impl_from_IClosable(iface);
- TRACE("(%p, %s, %p)\n", iface, debugstr_guid(iid), out);
- if (IsEqualGUID(iid, &IID_IUnknown) ||
IsEqualGUID(iid, &IID_IInspectable) ||
IsEqualGUID(iid, &IID_IClosable) ||
IsEqualGUID(iid, &IID_IAgileObject))
IAgileObject interface should be implemented separately (and it should be used as IUnknown outer interface in CoCreateFreeThreadedMarshaler).