Tutorial04 - COM Proxy Management für Objekte die Ereignisse auslösen

Das COMProxy Management für Objekte die Ereignisse auslösen funktioniert in NetOffice nicht anders als das was Sie bisher kennen. Jedoch gibt es eine wichtigen Umstand über den Sie sich im klaren sein sollten um kein unbeabsichtigtes Verhalten herbeizuführen.

Betrachten Sie dazu folgenden Beispielcode:

Listing 1.0

Private Sub SampleFunction()

   Dim newCloseHandler As Word.Application_DocumentBeforeCloseEventHandler = _ 
AddressOf Me.DocumentBeforeCloseEvent AddHandler wordApplication.DocumentBeforeCloseEvent, newCloseHandler End Sub Private Sub wordApplication_NewDocumentEvent(ByVal Doc As Word.Document) Doc.Dispose() End Sub

Sie können erkenen das wir im EventTrigger DocumentBeforeCloseEvent einen Document Proxy übergeben bekommen. Dieser Parameter wird im COM Proxy Baum dem Application Objekt untergordnet. Jedoch ist es empfehlenswert COM Proxy Parameter am Ende eines EventTrigger immer freizugeben. Fallweise werden Ereignisse von Office sehr oft ausgelöst und die Anzahl an COM Proxies steigt dadurch unkontrolliert. Geben Sie COM Proxy Parameter am Ende eines Event Trigger immer mittels Dispose() frei! Zusätzlich bietet Ihnen die Methoden Dispose und DisposeChildInstances eine Überladung an. Dispose(bool disposeEventBinding) und DisposeChildInstances(bool DisposeEventBinding). Sie können diese Überladung nutzen um COM Proxies freizugeben ohne das weiterleiten der Ereignisse zu stoppen.

Last edited May 13, 2012 at 7:41 PM by SebastianDotNet, version 9