Condividi tramite


Procedura: Editor standard aperto

Quando si apre un editor standard, si lascia l'ide determinare un editor standard per un tipo di file selezionato, anziché specificare un editor specifico del progetto per il file.

completare la procedura riportata di seguito per implementare il metodo di OpenItem . Verrà visualizzato un file di progetto nell'editor standard.

Per implementare il metodo di OpenItem con un editor standard

  1. Chiamare IVsRunningDocumentTable (RDT_EditLock) per determinare se il file oggetto dati del documento è già aperto.

  2. Se il file è già aperto, eseguire nuovamente la superficie del file chiamando il metodo di IsDocumentOpen , specificando un valore di IDO_ActivateIfOpen per il parametro di grfIDO .

    Se il file viene aperto e il documento è di proprietà da un progetto diverso dal progetto chiamante, il progetto riceve un messaggio che verrà aperto proviene da un altro progetto. La finestra del file viene quindi sorta.

  3. Se il documento non è aperto o non nella tabella in esecuzione di documento, chiamare il metodo di OpenStandardEditor (OSE_ChooseBestStdEditor) per aprire un editor standard per il file.

    Quando si chiama il metodo, l'ide esegue le attività seguenti:

    1. L'ide analizza la sottochiave degli editori {} guidEditorType /Extensions nel Registro di sistema per determinare quale editor possibile aprire il file e ha la priorità più elevata a tale scopo.

    2. Dopo che l'ide ha determinato quale editor possibile aprire il file, l'ide chiama l'entity_M:Microsoft.VisualStudio.Shell.Interop.IVsEditorFactory.CreateEditorInstance(System.UInt32, System.String, System.String, Microsoft.VisualStudio.Shell.Interop.IVsHierarchy, System.UInt32, System.IntPtr, System.IntPtr@, System.IntPtr@, System.String@, System.Guid@, System.Int32@). L'implementazione dell'editor di questo metodo restituisce le informazioni che sono necessarie l'ide di chiamare l'entity_M:Microsoft.VisualStudio.Shell.Interop.IVsUIShell.CreateDocumentWindow(System.UInt32, System.String, Microsoft.VisualStudio.Shell.Interop.IVsUIHierarchy, System.UInt32, System.IntPtr, System.IntPtr, System.Guid@, System.String, System.Guid@, Microsoft.VisualStudio.OLE.Interop.IServiceProvider, System.String, System.String, System.Int32[], Microsoft.VisualStudio.Shell.Interop.IVsWindowFrame@) e posizionare l'oggetto documento appena aperto.

    3. Infine, l'ide carica il documento tramite l'interfaccia comune di persistenza, come IVsPersistDocData2.

    4. Se l'ide ha precedentemente determinato che la gerarchia o l'elemento della gerarchia è disponibile, l'ide chiama il metodo di GetItemContext nel progetto ottenere un puntatore di IServiceProvider di contesto a livello di progetto a passare nuovamente con la chiamata al metodo di CreateDocumentWindow .

  4. Return an IServiceProvider pointer to the IDE when the IDE calls GetItemContext on your project if you want to let the editor get context from your project.

    Eseguire questo passaggio consente ai servizi aggiuntivi offrono di progetto all'editor.

    Se la visualizzazione del documento o l'oggetto visualizzato del documento correttamente è stato collocato in una struttura della finestra, l'oggetto viene inizializzato con i dati chiamando LoadDocData.

Vedere anche

Attività

Procedura: Aprire gli editor specifici del progetto

Procedura: aprire gli editor per i documenti aperti

Riferimenti

IServiceProvider

Concetti

Visualizzare i file utilizzando il comando del file aperto

Altre risorse

Salvataggio di elementi di progetto e di apertura