Free Trial

Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.

Share this Page URL
Help

Teil II: Rezepte > COM-Interop mit Office - Pg. 1071

COM Interop mit Office 367 Laufende COM Komponenten Instanzen referenzieren Bei der Verwendung von COM-Komponenten, die gleichzeitig interaktiv verwendbare Anwen- dungen sind (wie es zum Beispiel bei den Microsoft-Office-Anwendungen der Fall ist), ist es häufig sinnvoll, eventuell bereits ausgeführte Instanzen der Anwendung für Fernsteuerungs- zwecke zu referenzieren. Die Verwendung einer bereits laufenden Instanz führt dazu, dass das Programm schneller ausgeführt wird, weniger Ressourcen verbraucht und die erzeugte Instanz nicht wieder geschlossen werden muss. Das ist zum Beispiel dann der Fall, wenn Sie über Out- look eine E-Mail versenden wollen und davon ausgehen, dass die meisten Anwender Outlook permanent geöffnet haben. Um eine laufende Instanz einer COM-Komponente zu referenzieren, verwenden Sie die Methode GetActiveObject der Klasse Marshal aus dem Namensraum System.Runtime.Interop- Services . Dieser Methode übergeben Sie die Prog-Id der COM-Klasse (siehe »COM-Komponen- ten mit später Bindung verwenden« in der Einführung in den Buchdaten). GetActiveObject gibt eine object -Referenz auf die Instanz zurück, falls gerade eine ausgeführt wird. Wird keine Instanz der COM-Klasse ausgeführt, erzeugt diese Methode eine Ausnahme vom Typ COMExcep- tion mit der Meldung »Vorgang nicht verfügbar«. Listing 744 setzt dieses Wissen um. Das Programm versucht zunächst, eine laufende Outlook-