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).
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/8831#note_113764