On C#/VB it is valid to instantiate a COM object through its interface.
Internally the constructor of the type defined by interface's CoClassAttribute is invoked.
For instance with SAPI :
import Interop.SpeechLib
voice = SpVoice() #doesn't work because it is an interface => compiler should automatically replace it by SpVoiceClass instantiation