Como obter o ActiveDocument atual na extensão do Visual Studio usando o MEF?

Estou trabalhando na extensão do Visual Studio 2013 usando o MEF ao tentar ler o código e o tipo de conteúdo do documento ativo. Atualmente, ele apenas lê no Horário de abertura do documento / item de projeto no editor. Depois que elas são abertas, elas não são lidas novamente sempre que alternamos entre as guias de documentos abertas.

Requerimento: Quero que esta extensão leia o Tipo de Conteúdo e o Texto do Código do Documento Ativo atual.

Atualizada:
Problema: Eu sei, usando EnvDTE80.DTE2.ActiveWindow, posso obter um documento focado no momento, mas estou confuso aqui que como chamar esse código para ler as coisas atualmente ativas do documento / janela? Digamos que, se tivermos 10 documentos, o documento ativo (com foco atual) precisa ser lido por esta extensão. E aqui o VsTextViewCreated é chamado apenas quando abrimos um novo documento ou o documento fechado antes, ou seja, a exibição de texto é criada. Ele não será chamado para documentos já abertos (ou seja, a Visualização de texto já criada) e, portanto, não conseguiremos atualizar o objeto wpfTextView atualizado ao mover o foco para outros documentos já abertos. E estou confuso aqui como chamar isso usando DTE2.ActiveDocument ou DTE2.ActiveWindow manipuladores de eventos.

Pergunta, questão:
Isso é possível no MEF, sem usar o DTE?
Existe alguma interface que lide com TextViews já presente no editor VS?

Aqui está o meu código:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System.Threading.Tasks;
using Microsoft.VisualStudio.Text.Tagging;
using Microsoft.VisualStudio.Text.Editor;

using System.ComponentModel.Composition;
using Microsoft.VisualStudio.Utilities;
using Microsoft.VisualStudio.Editor;
using Microsoft.VisualStudio.TextManager.Interop;
using Microsoft.VisualStudio.OLE.Interop;
using System.Diagnostics;

namespace VSIXProject_Test
{
    [Export(typeof(IVsTextViewCreationListener))]
    [ContentType("code")]
    [TextViewRole(PredefinedTextViewRoles.Editable)]
    class VsTe,xtViewCreationListener : IVsTextViewCreationListener
    {
        [Import]
        IVsEditorAdaptersFactoryService AdaptersFactory = null;

        public void VsTextViewCreated(IVsTextView textViewAdapter)
        {
            var wpfTextView = AdaptersFactory.GetWpfTextView(textViewAdapter);
            if (wpfTextView == null)
            {
                Debug.Fail("Unable to get IWpfTextView from text view adapter");
                return;
            }

            Debug.Write(wpfTextView.TextBuffer.ContentType.TypeName);
        }
    }
}

questionAnswers(1)

yourAnswerToTheQuestion