Compartilhar via


Método ApplicationFactory.HasVstoObject

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

Namespace:  Microsoft.Office.Tools.Word
Assembly:  Microsoft.Office.Tools.Word (em Microsoft.Office.Tools.Word.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 Microsoft.Office.Tools.Word.Document o item de host foi criado para o especificado Microsoft.Office.Interop.Word.Document objeto; Caso contrário, false.

Comentários

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

ObservaçãoObservação

O document parâmetro é do tipo Microsoft.Office.Interop.Word._Document, que é a interface do pai do Microsoft.Office.Interop.Word.Document. Portanto, esse método pode aceitar objetos dos dois tipos: Microsoft.Office.Interop.Word._Document and Microsoft.Office.Interop.Word.Document. Normalmente, quando você faz referência a um documento do Word, você usa um Microsoft.Office.Interop.Word.Document.

Exemplos

O exemplo de código a seguir verifica se o documento atual tem um item de host associado e, em caso afirmativo, ele obtém o item de host. Se controles gerenciados existirem no documento, o exemplo exibe uma mensagem de aviso que informa ao usuário que os controles gerenciados não serão persistentes ao salvar o documento. Este exemplo de código usa o manipulador de eventos do DocumentBeforeSave o evento para executar a verificação. Para usar esse código, executá-lo na ThisAddIn classe em um suplemento do projeto do Word que se destina a .NET Framework 4.

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

Obtendo Extended objetos a partir de objetos nativos do Office no nível do documento personalizações

Word Add-In Dynamic Controls Sample