Freigeben über


ApplicationFactory.HasVstoObject-Methode

Gibt einen Wert zurück, der angibt, ob für das angegebene systemeigene Dokumentobjekt ein Microsoft.Office.Tools.Word.Document-Hostelement erstellt wurde.

Namespace:  Microsoft.Office.Tools.Word
Assemblys:   Microsoft.Office.Tools.Word (in Microsoft.Office.Tools.Word.dll)
  Microsoft.Office.Tools.Word.v4.0.Utilities (in Microsoft.Office.Tools.Word.v4.0.Utilities.dll)

Syntax

'Declaration
Function HasVstoObject ( _
    document As _Document _
) As Boolean
bool HasVstoObject(
    _Document document
)

Parameter

Rückgabewert

Typ: System.Boolean
true, wenn für das angegebene Microsoft.Office.Interop.Word.Document-Objekt ein Microsoft.Office.Tools.Word.Document-Hostelement erstellt wurde, andernfalls false.

Hinweise

Sie können diese Methode in einem Add-In auf Anwendungsebene aufrufen, um zu überprüfen, ob verwaltete Steuerelemente vorhanden sind, die beibehalten werden sollen, bevor Sie das Word-Dokument schließen oder speichern. Ein Beispiel, das veranschaulicht, wie Steuerelemente in einem Word-Dokument beibehalten werden, finden Sie unter Word Add-In Dynamic Controls Sample.

Hinweis

Der document-Parameter ist vom Typ Microsoft.Office.Interop.Word._Document, bei dem es sich um die übergeordnete Schnittstelle von Microsoft.Office.Interop.Word.Document handelt.Daher kann diese Methode Objekte beider Typen akzeptieren: Microsoft.Office.Interop.Word._Document und Microsoft.Office.Interop.Word.Document.Normalerweise wird mithilfe von Microsoft.Office.Interop.Word.Document auf ein Word-Dokument verwiesen.

Beispiele

Im folgenden Codebeispiel wird überprüft, ob dem aktuellen Dokument ein Hostelement zugeordnet ist. Falls ja, wird das Hostelement abgerufen. Falls in dem Dokument verwaltete Steuerelemente vorhanden sind, wird in dem Beispiel eine Warnmeldung angezeigt, die den Benutzer darüber informiert, dass die verwalteten Steuerelemente beim Speichern des Dokuments nicht erhalten bleiben. In diesem Codebeispiel wird der Ereignishandler des DocumentBeforeSave-Ereignisses zur Ausführung dieser Prüfung verwendet. Wenn Sie diesen Code verwenden möchten, führen Sie es von der ThisAddIn-Klasse in einem Add-In-Projekt, das auf .NET Framework 4 oder .NET Framework 4.5 abzielt.

Private Sub Application_DocumentBeforeSave( _
    ByVal Doc As Microsoft.Office.Interop.Word.Document, _
    ByRef SaveAsUI As Boolean, _
    ByRef Cancel As Boolean) Handles Application.DocumentBeforeSave

    If Globals.Factory.HasVstoObject(Doc) = True Then
        Dim vstoDoc As Document = Globals.Factory.GetVstoObject(Doc)
        If vstoDoc.Controls.Count > 0 Then
            System.Windows.Forms.MessageBox.Show( _
                "The VSTO controls are not persisted when you save this document.", _
                "Controls Persistence", _
                System.Windows.Forms.MessageBoxButtons.OK, _
                System.Windows.Forms.MessageBoxIcon.Warning)
        End If
    End If
End Sub
void Application_DocumentBeforeSave(
    Microsoft.Office.Interop.Word.Document Doc, ref bool SaveAsUI, 
    ref bool Cancel)
{
    if (Globals.Factory.HasVstoObject(Doc) == true)
    {
        Document vstoDoc = Globals.Factory.GetVstoObject(Doc);
        if (vstoDoc.Controls.Count > 0)
        {
            System.Windows.Forms.MessageBox.Show(
                "The VSTO controls are not persisted when you save this document.",
                "Controls Persistence",
                System.Windows.Forms.MessageBoxButtons.OK,
                System.Windows.Forms.MessageBoxIcon.Warning);
        }
    }
}

.NET Framework-Sicherheit

Siehe auch

Referenz

ApplicationFactory Schnittstelle

Microsoft.Office.Tools.Word-Namespace

Weitere Ressourcen

Erweitern von Word-Dokumenten und Excel-Arbeitsmappen in Add-Ins auf Anwendungsebene zur Laufzeit

Programmieren von Anpassungen auf Dokumentebene

Word Add-In Dynamic Controls Sample