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.
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.
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 byCOMExport
, but we can relax this requirement to make it simpler to implement.Fixes #131