Compartilhar via


Método ApplicationFactory.HasVstoObject

Retorna um valor que indica se um item de host de Microsoft.Office.Tools.Word.Document esteve criado para o objeto nativo de documento especificado.

Namespace:  Microsoft.Office.Tools.Word
Assemblies:   Microsoft.Office.Tools.Word (em Microsoft.Office.Tools.Word.dll)
  Microsoft.Office.Tools.Word.v4.0.Utilities (em Microsoft.Office.Tools.Word.v4.0.Utilities.dll)

Sintaxe

'Declaração
Function HasVstoObject ( _
    document As _Document _
) As Boolean
bool HasVstoObject(
    _Document document
)

Parâmetros

Valor de retorno

Tipo: System.Boolean
true se um item de host de Microsoft.Office.Tools.Word.Document foi criado para o objeto especificado de Microsoft.Office.Interop.Word.Document ; caso contrário, false.

Comentários

Você pode chamar esse método em um suplemento ao nível para testar a existência dos controles gerenciados que você deseja persistir antes de fechar ou salvar do documento do Word.Para um exemplo que demonstra como persistir controles em um documento do Word, consulte Word Add-In Dynamic Controls Sample.

ObservaçãoObservação

O parâmetro de document é do tipo Microsoft.Office.Interop.Word._Document, que é a interface pai de Microsoft.Office.Interop.Word.Document.Como consequência, esse método pode aceitar objetos de dois tipos: Microsoft.Office.Interop.Word._Document e Microsoft.Office.Interop.Word.Document.Normalmente, quando você referencia um documento do Word, você usa Microsoft.Office.Interop.Word.Document.

Exemplos

O exemplo de código verifica se o documento atual possui um item associado host e, em caso afirmativo, obtenha o item host.Se os controles gerenciados existem no documento, o exemplo exibe uma mensagem de aviso que informa ao usuário que os controles gerenciados não serão salvas para salvar o documento.Este exemplo de código usa o manipulador de eventos do evento de DocumentBeforeSave para executar uma verificação.Para usar este código, ele execução da classe de ThisAddIn em um projeto do suplemento ao Word que tem como alvo .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);
        }
    }
}

Segurança do .NET Framework

Consulte também

Referência

ApplicationFactory Interface

Namespace Microsoft.Office.Tools.Word

Outros recursos

Estendendo os documentos do Word e pastas de trabalho do Excel em suplementos de nível de aplicativo em tempo de execução

Programação personalizações em nível de documento

Word Add-In Dynamic Controls Sample