ApplicationFactory.HasVstoObject (Método)

Devuelve un valor que indica si se ha creado un elemento host Microsoft.Office.Tools.Word.Document para el objeto de documento nativo especificado.

Espacio de nombres:  Microsoft.Office.Tools.Word
Ensamblados:   Microsoft.Office.Tools.Word (en Microsoft.Office.Tools.Word.dll)
  Microsoft.Office.Tools.Word.v4.0.Utilities (en Microsoft.Office.Tools.Word.v4.0.Utilities.dll)

Sintaxis

'Declaración
Function HasVstoObject ( _
    document As _Document _
) As Boolean
bool HasVstoObject(
    _Document document
)

Parámetros

Valor devuelto

Tipo: System.Boolean
Es true si se ha creado un elemento host Microsoft.Office.Tools.Word.Document para el objeto Microsoft.Office.Interop.Word.Document especificado; de lo contrario, es false.

Comentarios

Puede llamar a este método en un complemento en el nivel de la aplicación para comprobar la existencia de controles administrados que desea conservar antes de cerrar o guardar el documento de Word.Para obtener un ejemplo que muestra cómo conservar controles en un documento de Word, vea Word Add-In Dynamic Controls Sample.

[!NOTA]

El parámetro document es de tipo Microsoft.Office.Interop.Word._Document, que es la interfaz primaria de Microsoft.Office.Interop.Word.Document.Por consiguiente, este método puede aceptar objetos de ambos tipos: Microsoft.Office.Interop.Word._Document y Microsoft.Office.Interop.Word.Document.Normalmente, al hacer referencia a un documento de Word, se utiliza un Microsoft.Office.Interop.Word.Document.

Ejemplos

En el siguiente ejemplo de código se comprueba si el documento actual tiene un elemento host asociado y, en caso afirmativo, obtiene el elemento host.Si existen controles administrados en el documento, el ejemplo muestra un mensaje de advertencia que informa al usuario de que no se conservarán los controles administrados al guardar el documento.En este ejemplo de código se utiliza el controlador del evento DocumentBeforeSave para realizar la comprobación.Para utilizar este código, ejecútelo desde la clase de ThisAddIn en un proyecto de complemento de word destinado a .NET Framework 4 o .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);
        }
    }
}

Seguridad de .NET Framework

Vea también

Referencia

ApplicationFactory Interfaz

Microsoft.Office.Tools.Word (Espacio de nombres)

Otros recursos

Ampliar documentos de Word y libros de Excel en complementos en el nivel de la aplicación en tiempo de ejecución

Programar personalizaciones de nivel de documento

Word Add-In Dynamic Controls Sample