Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Microsoft InfoPath unterstützt COM-Add-Ins für die Erweiterung der Benutzerumgebung zum Bearbeiten von Formularen. Obwohl die Unterstützung für COM-Add-Ins erstmals in InfoPath hinzugefügt wurde, unterstützen andere Office-Anwendungen wie Microsoft Office Word und Microsoft Office Excel seit Office 2000 COM-Add-Ins.
Com-Add-In-Unterstützung in InfoPath ist für die Formularbearbeitungsumgebung verfügbar. Die Formularentwurfsumgebung kann nicht mithilfe von COM-Add-Ins erweitert werden.
Die IDTExtensibility2-Schnittstelle
Die InfoPath-Bearbeitungsumgebung bietet Unterstützung für die IDTExtensibility2-Schnittstelle , die von Entwicklern von COM-Add-Ins implementiert werden muss. IDTExtensibility2 ist ein Objekt mit zwei Schnittstellen, das fünf Methoden bereitstellt, die als Ereignisse innerhalb der Bearbeitungsumgebung fungieren. Diese Methoden ermöglichen es dem COM-Add-In, auf Start- und Herunterfahrbedingungen der Umgebung zu reagieren, die in der folgenden Tabelle aufgeführt sind.
Schnittstelle | Beschreibung |
---|---|
OnAddInsUpdate (ByVal custom() As Variant) |
Tritt auf, wenn ein Add-In in der Umgebung geladen oder entladen wird. |
OnBeginShutdown (ByVal custom() As Variant) |
Tritt auf, wenn die Umgebung heruntergefahren wird. |
OnConnection(ByVal Application As Object, ByVal ConnectMode As ext_ConnectMode, ByVal AddInInst As Object, ByVal custom() As Variant) |
Tritt auf, wenn ein Add-In in die Umgebung geladen wird. |
OnDisconnection (ByVal RemoveMode As ext_DisconnectMode, ByVal custom() As Variant) |
Tritt auf, wenn ein Add-In aus der Umgebung entladen wird. |
OnStartupComplete (ByVal custom() As Variant) |
Tritt auf, wenn der Start der Umgebung abgeschlossen wurde. |
Registrieren von COM-Add-Ins
Alle Office-Anwendungen, einschließlich InfoPath, verwenden die Registrierung, um Add-Ins in der COM-Add-Ins-Sammlung aufzulisten, den Verbindungsstatus zu speichern und die Start- oder Anforderungsladeinformationen zu speichern. Für InfoPath-COM-Add-Ins wird der Name jedes Add-Ins unter dem folgenden Schlüssel angezeigt:
HKEY_CURRENT_USER\Software\Microsoft\Office\InfoPath\AddIns\
Für COM-Add-Ins, die zur Verwendung durch jeden Benutzer des Clientcomputers installiert werden, befindet sich der Registrierungsschlüssel in der HKLM-Registrierungsstruktur:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\InfoPath\AddIns\
Der Registrierungsschlüsselname entspricht dem ProgIdAttribute des Add-Ins und enthält die folgenden Werte.
Name | Typ | Beschreibung |
---|---|---|
FriendlyName |
String |
Der Name, der im Dialogfeld COM-Add-Ins angezeigt und auf der Seite Add-Ins im Trust Center aufgeführt wird. |
Beschreibung |
String |
Die Zeichenfolge, die angezeigt wird, wenn das Add-In im Trust Center ausgewählt wird. |
Loadbehavior |
DWORD |
Gibt an, wie das COM-Add-In geladen wird. Der Wert kann eine Kombination aus 0, 1, 2, 8 und 16 sein. Weitere Informationen finden Sie in der Tabelle unten. |
Der DWORD-Wert für LoadBehavior sollte einen Wert enthalten, der beschreibt, wie das COM-Add-In in der Bearbeitungsumgebung geladen wird. Der Wert kann aus der folgenden Tabelle oder einer Kombination von Werten aus der Tabelle stammen. Beispielsweise wird für ein com-Add-In, das in Visual Studio 2005 erstellt wurde, beim Anwendungsstart ein LoadBehavior von "3" geladen und eine Verbindung hergestellt.
Wert | Beschreibung |
---|---|
0 |
Getrennt. Das Add-In wird im Dialogfeld COM-Add-In als Inaktiv angezeigt. |
1 |
Verbunden. Das Add-In wird im Dialogfeld COM-Add-In als Aktiv angezeigt. |
2 |
Laden sie beim Start. Das Add-In wird geladen und verbunden, wenn die Hostanwendung gestartet wird. |
8 |
Laden sie bei Bedarf. Das Add-In wird geladen und verbunden, wenn es von der Hostanwendung benötigt wird, z. B. wenn ein Benutzer auf eine Schaltfläche klickt, die Funktionen im Add-In verwendet. |
16 |
Verbindung bei der ersten Ausführung. Das Add-In wird geladen und verbunden, wenn der Benutzer die Hostanwendung nach der Registrierung des Add-Ins zum ersten Mal ausführt. |
Erstellen eines verwalteten COM-Add-Ins mit Visual Studio 2005 oder Visual Studio 2008
Um ein verwaltetes COM-Add-In mit Microsoft Visual Studio 2005 oder Visual Studio 2008 zu erstellen, erstellen Sie wie folgt ein Shared Add-In-Projekt:
Starten Sie Visual Studio.
Klicken Sie im Menü Datei auf Neues Projekt.
Klicken Sie im Bereich Projekttypen des Dialogfelds Neues Projekt auf den Ordner Andere Projekttypen , und klicken Sie dann auf Erweiterbarkeit.
Klicken Sie im Bereich Vorlagen auf Freigegebenes Add-In.
Geben Sie im Feld Name einen Namen für das Projekt ein.
Geben Sie im Feld Speicherort einen Ordnerpfad ein, oder klicken Sie auf Durchsuchen , wählen Sie einen Ordnerpfad aus, und klicken Sie dann auf OK. Der Assistent für freigegebene Add-Ins wird angezeigt.
Klicken Sie im Assistenten für freigegebene Add-Ins auf Weiter. Die Seite Programmiersprache auswählen wird angezeigt.
Klicken Sie auf Add-In mit Visual Basic erstellen und dann auf Weiter. Die Seite Anwendungshost auswählen wird angezeigt.
Deaktivieren Sie die Kontrollkästchen neben jeder Anwendung mit Ausnahme von Microsoft InfoPath, und klicken Sie dann auf Weiter. Die Seite Name und Beschreibung eingeben wird angezeigt.
Geben Sie im Feld Wie lautet der Name Ihres Add-Ins den Namen Ihres COM-Add-Ins ein.
Geben Sie im Feld Beschreibung ihres Add-Ins die Beschreibung für Ihr COM-Add-In ein, und klicken Sie auf Weiter. Die Seite Add-In Optionen auswählen wird angezeigt.
Aktivieren Sie die Kontrollkästchen Ich möchte, dass mein Add-In geladen wird, wenn die Hostanwendung geladen wird, und Mein Add-In sollte für alle Benutzer des Computers verfügbar sein, auf dem es installiert wurde, nicht nur für die Person, die es installiert hat.
Klicken Sie auf Weiter , um die Seite Zusammenfassung zu überprüfen, und klicken Sie dann auf Fertig stellen.
Nachdem das Projekt von Visual Studio erstellt wurde, werden im fenster Projektmappen-Explorer zwei Projekte angezeigt. Das erste Projekt ist das Projekt für das COM-Add-In; Das zweite Projekt ist ein Setupprojekt für die Bereitstellung des COM-Add-Ins. Der Assistent für freigegebene Add-Ins fügt nur einen Verweis auf die Microsoft Office 14.0-Objektbibliothek ein. Daher ist es erforderlich, einen Verweis auf die InfoPath-Objektbibliothek mithilfe der folgenden Schritte einzufügen:
Doppelklicken Sie auf Mein Projekt , um die Add-In-Projekteigenschaften anzuzeigen. Klicken Sie auf die Registerkarte Verweise , um die Verweise anzuzeigen, die dem Projekt automatisch hinzugefügt werden.
Klicken Sie auf die Schaltfläche Hinzufügen , um das Dialogfeld Verweis hinzufügen anzuzeigen.
Doppelklicken Sie auf der Registerkarte COM auf Microsoft.InfoPath 2.0-Typbibliothek, und klicken Sie auf OK.
Durch hinzufügen eines Verweises auf die Microsoft InfoPath 3.0-Typbibliothek werden auch Verweise auf drei Assemblys hinzugefügt, die entfernt werden müssen: ADODB, MSHTML und MSXML2. Klicken Sie Projektmappen-Explorer unter Verweise mit der rechten Maustaste auf jeden dieser Verweise, und klicken Sie dann auf Entfernen.
Anzeigen der Registrierungseinstellungen
Führen Sie die folgenden Schritte aus, um die Registrierungseinstellungen anzuzeigen, die bei der Installation des COM-Add-Ins erstellt werden:
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Stammknoten des Setupprojekts, klicken Sie auf Ansicht, Editor und klicken Sie dann auf Registrierung.
Klicken Sie im linken Bereich auf das Pluszeichen, um HKEY_LOCAL_MACHINE, Software, Microsoft, InfoPath und dann AddIns zu erweitern.
Klicken Sie auf den Namen, der der ProgID Ihres freigegebenen Add-In-Projekts entspricht.
Um eine dieser Eigenschaften zu ändern, klicken Sie mit der rechten Maustaste auf die Eigenschaft, klicken Sie auf Eigenschaftenfenster, und ändern Sie das Feld Wert im Eigenschaftenfenster.
Kompilieren und Verteilen der freigegebenen Add-In
Klicken Sie zum Kompilieren des verwalteten COM-Add-Ins zu Testzwecken auf dem Computer, auf dem das Shared Add-In-Projekt entwickelt wurde, im Projektmappen-Explorer mit der rechten Maustaste auf den Stammknoten des Projekts Shared Add-In, und klicken Sie auf Erstellen. Wenn das Projekt ohne Fehler erstellt wird, können Sie die InfoPath-Bearbeitungsumgebung starten und mit der Verwendung des verwalteten COM-Add-Ins beginnen. Wenn Ein instance von InfoPath ausgeführt wird, schließen Sie ihn, bevor Sie das Projekt erstellen. Es kann auch erforderlich sein, das Dialogfeld COM-Add-Ins zu öffnen, um zu überprüfen, ob das COM-Add-In registriert ist. Führen Sie die folgenden Schritte aus, um das Dialogfeld COM-Add-Ins zu öffnen:
Öffnen Sie die InfoPath-Bearbeitungsumgebung. Die einfachste Möglichkeit besteht darin, eine vorhandene Formularvorlage zu öffnen, die ein neues Formular basierend auf dieser Formularvorlage erstellt.
Klicken Sie im Menü Extras auf Trust Center.
Klicken Sie auf der linken Seite auf die Kategorie Add-Ins .
Wählen Sie im Abschnitt Verwalten am unteren Rand des Dialogfelds Trust Center die Option COM-Add-Ins aus der Liste aus, und klicken Sie auf die Schaltfläche Los .
Im Dialogfeld COM-Add-Ins wird der Name ihres kürzlich erstellten Add-Ins angezeigt, und daneben sollte ein Kontrollkästchen vorhanden sein. Wenn kein Kontrollkästchen daneben vorhanden ist, konnte das COM-Add-In aufgrund eines Fehlers nicht geladen werden, der im Abschnitt Auslastungsverhalten des Dialogfelds aufgeführt wird.
Um das verwaltete COM-Add-In für die Verwendung auf einem anderen Computer als dem Computer zu kompilieren, auf dem das Shared Add-In-Projekt entwickelt wurde, müssen Sie zusätzliche Schritte ausführen, um Ihren Code zu schützen. Informationen zum Schützen von Shared Add-In-Projekten für die Verwendung auf anderen Computern finden Sie in den folgenden drei Artikeln:
Verwenden der COM-Add-In-Shim-Lösung zum Bereitstellen von verwalteten COM-Add-Ins in Office XP
Isolieren von Office-Erweiterungen mit dem COM Shim-Assistenten
Wichtig
Das Nicht-Isolieren des COM-Add-Ins kann zu Speicherverlusten und Anwendungsinstabilität führen.
Hinweis
Wenn die .NET Framework oder andere erforderliche Assemblys aus dem Setupprojekt noch nicht auf Zielcomputern installiert sind, wird die .msi-Datei möglicherweise nicht ordnungsgemäß installiert. Außerdem können Sie die .msi-Datei nicht verteilen und dann versuchen, die .msi-Datei zu installieren. Sie müssen auch die anderen Supportdateien im selben Ordner verteilen wie die ursprüngliche .msi Datei, die von Visual Studio generiert wurde.
Programmieren im COM-Add-In
Anwendungsereignisse, die in der InfoPath-Formularbearbeitungsumgebung auftreten, können von einem COM-Add-In erfasst werden. Die folgenden Ereignisse des ApplicationEvents-Objekts können vom COM-Add-In verwendet werden, um auf Benutzeraktionen zu reagieren:
Document.SelectionChanged -Ereignis | Beschreibung |
---|---|
NewXDocument Ereignis |
Tritt ein, wenn ein neues Formular erstellt wird. |
Beenden Ereignis |
Tritt ein, wenn der Benutzer InfoPath beendet. |
Windowdeactivate Ereignis |
Tritt ein, wenn ein Dokumentfenster aktiviert wird. |
WindowDeaktivieren Ereignis |
Tritt ein, wenn ein Dokumentfenster deaktiviert wird. |
WindowSize Ereignis |
Tritt ein, wenn die Größe eines Dokumentfensters geändert wird oder das Dokumentfenster verschoben wird. |
XDocumentBeforeClose Ereignis |
Tritt unmittelbar vor dem Schließen eines Dokuments ein. |
XDocumentBeforePrint Ereignis |
Tritt unmittelbar vor dem Drucken eines geöffneten Dokuments auf. |
XDocumentBeforeSave Ereignis |
Tritt unmittelbar vor dem Speichern eines geöffneten Dokuments auf. |
XDocumentChange Ereignis |
Tritt ein, wenn ein neues Formular erstellt wird, wenn ein vorhandenes Formular geöffnet wird oder wenn ein anderes Formular als aktives Formular festgelegt wird. |
XDocumentOpen Ereignis |
Tritt ein, wenn ein Dokument geöffnet wird. |
Um diese Ereignisse im COM-Add-In zu erfassen, müssen Sie die folgenden Variablen auf Klassenebene in Ihrer Connect-Klasse deklarieren:
InfoPathApplication = DirectCast( _
application, Microsoft.Office.Interop.InfoPath._Application3)
InfoPathApplicationEvents = DirectCast( _
InfoPathApplication.Events, _
Microsoft.Office.Interop.InfoPath.ApplicationEvents)
InfoPathApplication =
(Microsoft.Office.Interop.InfoPath._Application3)application;
InfoPathApplicationEvents =
(Microsoft.Office.Interop.InfoPath.ApplicationEvents)
InfoPathApplication.Events;
Die erste Zeile wandelt das vom Add-In empfangene generische Anwendungsobjekt in das _Application3-Objekt um. Die zweite Zeile wandelt die Events-Eigenschaft des _Application3-Objekts (dargestellt durch die InfoPathApplication-Variable ) in das ApplicationEvents-Objekt um.
Wählen Sie zum Erstellen von Ereignishandlern oben im Visual Studio-Fenster im Dropdownfeld Klassenname die Option InfoPathApplicationEvents aus, und wählen Sie dann oben im Visual Studio-Fenster im Dropdownfeld Methodenname das zu behandelnde Ereignis aus. Wenn Sie beispielsweise steuern müssen, wann ein Formular gespeichert wird, behandeln Sie das XDocumentBeforeSave-Ereignis . Wenn Sie XDocumentBeforeSave aus der Dropdownliste Methodenname auswählen, wird automatisch das folgende Verfahren eingefügt:
Private Sub InfoPathApplicationEvents_XDocumentBeforeSave( _
ByVal pDocument As Microsoft.Office.Interop.InfoPath._XDocument, _
ByRef pfCancel As Boolean) _
Handles InfoPathApplicationEvents.XDocumentBeforeSave
End Sub
private void InfoPathApplicationEvents_XDocumentBeforeSave(
Microsoft.Office.Interop.InfoPath._XDocument pDocument, ref bool pfCancel)
{
}
Jedes der Ereignisse des ApplicationEvents-Objekts kann vom COM-Add-In mit der gleichen Methode behandelt werden.
Siehe auch
- Erstellen eines Microsoft Office 2000 COM-Add-Ins
- Erstellen von Office Managed COM-Add-Ins mit Visual Studio .NET
- Arbeiten mit den IDTExtensibility2-Ereignisprozeduren
- Erstellen eines Office COM-Add-Ins mit Visual Basic .NET
- Erstellen eines Office COM-Add-Ins mithilfe von Visual C# .NET
- Erstellen von InfoPath 2007 Add-Ins mithilfe von Visual Studio 2005-Tools für Office System SE