2010-03-25 8 views
5

Ich entwickle ein Outlook 2003-Add-In. Bis jetzt habe ich nur Winforms verwendet, um ein Formular anzuzeigen, aber heute habe ich ein WPF-Fenster für komplexere Dinge hinzugefügt. In dem WPF-Fenster wird eine COM-Ausnahme ausgelöst, wenn Outlook geschlossen wird.Outlook 2003-Add-In - COM-Ausnahme beim Herunterfahren der Anwendung nach dem Erstellen des WPF-Fensters

Weiß jemand warum? Ich muss einen separaten Thread für das WPF-Fenster im Einzelapartment-Status starten. Hier

ist die Ausnahme:

System.Runtime.InteropServices.InvalidComObjectException was unhandled 
    Message="COM object that has been separated from its underlying RCW cannot be used." 
    Source="PresentationCore" 
    StackTrace: 
     at System.Windows.Input.TextServicesContext.StopTransitoryExtension() 
     at System.Windows.Input.TextServicesContext.Uninitialize(Boolean appDomainShutdown) 
     at System.Windows.Input.TextServicesContext.TextServicesContextShutDownListener.OnShutDown(Object target) 
     at MS.Internal.ShutDownListener.HandleShutDown(Object sender, EventArgs e) 
    InnerException: 

Mit besten Grüßen,
Oliver Hanappi

Antwort

2

Sie müssen Shutdown auf WPF-Fenster Dispatcher im selben Thread an Invoke, nachdem das Fenster geschlossen ist.

window.Dispatcher.InvokeShutdown(); 

Ein ähnliches Problem wurde in Microsoft Connect

+0

NICE berichtet. Das hat super für mich funktioniert. Aktualisieren einer anderen Antwort (zum Starten von WPF Window in einem neuen Thread), um dies zu berücksichtigen. – BrainSlugs83

Verwandte Themen