Mit
COM-Events ist das so eine Sache.
Die Events können von einer early-Binding Schnittstelle (hier: IOLEInterfaceEvents) vom Client
empfangen werden oder von einer IDispatch-Schnittstelle.
Wenn der Client ein Script ist, kann er nur Event über die Dispatch-Schnittstelle empfangen.
Nur wenn ein Compiler beim Client am Werk ist, dann gibt es eine CoClass die dein Interface IOLEInterfaceEvents unterstützt.
Wenn du also über QueryInterface() oder Supports() feststellst, dass IOLEInterfaceEvents nicht unterstützt wird, dann muss man das Event über die IDispatch-Schnittstelle schicken.