tristanlabelle / swift-winrt

A Swift bindings generator for WinRT APIs
MIT License
15 stars 1 forks source link

Support COM wrapping of Swift objects without an IUnknownProtocol implementation #134

Closed tristanlabelle closed 2 months ago

tristanlabelle commented 2 months ago

Thus far all Swift objects bridging into COM had to conform to IUnknownProtocol because COM interface protocols declared such a conformance. This ensured that all Swift objects bridging into COM had a stable COM identity provided by COMExport, but we can relax this requirement to make it simpler to implement.

Fixes #131

tristanlabelle commented 2 months ago

Hmm, but this makes it impossible to project an object implementing a derived interface, like IVector (deriving from IIterable), since the wrapper object doesn't know about the other interface.