Partager via


ApplicationFactory.HasVstoObject, méthode

Retourne une valeur qui indique si un élément hôte Microsoft.Office.Tools.Word.Document a été créé pour l'objet de document natif spécifié.

Espace de noms :  Microsoft.Office.Tools.Word
Assemblys :   Microsoft.Office.Tools.Word (dans Microsoft.Office.Tools.Word.dll)
  Microsoft.Office.Tools.Word.v4.0.Utilities (dans Microsoft.Office.Tools.Word.v4.0.Utilities.dll)

Syntaxe

'Déclaration
Function HasVstoObject ( _
    document As _Document _
) As Boolean
bool HasVstoObject(
    _Document document
)

Paramètres

Valeur de retour

Type : System.Boolean
true si un élément hôte Microsoft.Office.Tools.Word.Document a été créé pour l'objet Microsoft.Office.Interop.Word.Document spécifié ; sinon, false.

Notes

Vous pouvez appeler cette méthode dans un complément d'application pour tester l'existence de contrôles managés que vous souhaitez rendre persistant avant de fermer ou d'enregistrer le document Word. Pour obtenir un exemple montrant comment rendre des contrôles d'un document Word persistants, consultez Word Add-In Dynamic Controls Sample.

Notes

Le paramètre document est de type Microsoft.Office.Interop.Word._Document, ce qui correspond à l'interface parente de Microsoft.Office.Interop.Word.Document.Par conséquent, cette méthode peut accepter des objets de deux types: Microsoft.Office.Interop.Word._Document et Microsoft.Office.Interop.Word.Document.En général, lorsque vous référencez un document Word, vous utilisez Microsoft.Office.Interop.Word.Document.

Exemples

L'exemple de code suivant vérifie si le document actuel a un élément hôte associé et, si tel est le cas, il obtient l'élément hôte. Si le document contient des contrôles managés, l'exemple affiche un message d'avertissement qui informe l'utilisateur que les contrôles managés ne seront pas rendus persistants lors de l'enregistrement du document. Cet exemple de code utilise le gestionnaire d'événements de l'événement DocumentBeforeSave pour effectuer la vérification. Pour utiliser ce code, exécutez-le dans la classe d'ThisAddIn dans un projet de complément Word qui cible .NET Framework 4 ou .NET Framework 4.5.

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);
        }
    }
}

Sécurité .NET Framework

Voir aussi

Référence

ApplicationFactory Interface

Microsoft.Office.Tools.Word, espace de noms

Autres ressources

Extension de documents Word et de classeurs Excel dans des compléments d'application au moment de l'exécution.

Programmation de personnalisations au niveau du document

Word Add-In Dynamic Controls Sample