I’m implementing an IDispatch interface in managed code C#. Reading through the documentation (yes I know this is a bad idea) it says I can use InterfaceIsDual, InterfaceIsIDispatch or InterfaceIsIUnknown . I want my interface to be late binding so I’d choose InterfaceIsIDispatch .. But then some more reading shows that InterfaceIsDual should be the same. Will there by any functional difference between choosing the Dual and the Dispatch?
I’m implementing an IDispatch interface in managed code C#. Reading through the documentation (yes
Share
InterfaceIsDual supports both early and late binding. Which makes it pretty desirable to the COM client, it gets to choose between the speed and auto-completion support of early binding and the safety of late binding.
The safety aspect is why it gets downplayed in Microsoft docs, early binding to an interface that was changed later without a corresponding change to the interface [Guid] produces very difficult to diagnose runtime errors. Ranging from access violations to calling the wrong method. COM versioning is a big deal and the hard rules to follow to stay out of trouble are too often skipped because they cause pain.