Office Communicator 2007 (R2) und COMException 80080005/80080411

Über die COM Interop Schnittstelle kann man sehr schnell und komfortabel die Office Communicator Funktionen in den eigenen Anwendungen einsetzen. Unter dem MSDN Link "Communicator 2007 and Communicator 2007 R2 Automation API Documentation"--> https://msdn.microsoft.com/en-us/library/bb758719.aspx findet man das Communicator API sehr gut erläutert.

Das API habe ich schon oft benutzt und plötzlich funktionierte das nicht mehr. Ich bekam eine COMException mit einem „hilfreichen“ HResult zurück. Nach einiger Suche habe ich das Problem gelöst.

Der Office Communicator läuft unter Windows Vista und Windows Server 2008, wenn man User Account Control verwendet, unter den nicht-administrativen Priviliges. Weiterhin ist der Office Communicator als single COM-Server implementiert. Einmal beim Login des Users am Computer initialisert läuft der single COM-Server mit den nicht-administrativen Priviliges. Alle COM Zugriffe werden auf diese eine Office Communicator Instance geleitet.

In meinem Testszenario habe ich mein VisualStudio als „ADMINISTRATOR“ gestartet. Beim Zugriff auf den single COM-Server des Office Communicator muss ein Contextswitch erfolgen. Das erzeugt im genannten Szenario ein Problem, siehe Abbildung.

Untitled

Lösung: Wenn ich exakt denselben Code vom einem nicht-administrativen VisualStudio laufen lassen und dann auf den Office Communicator zugreife funktioniert alles!

Viel Spass beim Ausprobieren ... Gunnard