Abrir editores estándar

Al abrir un editor estándar, permite que el IDE determine un editor estándar para un tipo de archivo designado, en lugar de especificar un editor específico del proyecto para el archivo.

Complete el procedimiento siguiente para implementar el OpenItem método . Se abrirá un archivo de proyecto en un editor estándar.

Para implementar el método OpenItem con un editor estándar

  1. Llame IVsRunningDocumentTable a (RDT_EditLock) para determinar si el archivo de objeto de datos del documento ya está abierto.

  2. Si el archivo ya está abierto, vuelva a presentar el archivo llamando al IsDocumentOpen método , especificando un valor de IDO_ActivateIfOpen para el grfIDO parámetro .

    Si el archivo está abierto y el documento es propiedad de un proyecto diferente al del proyecto que realiza la llamada, el proyecto recibe una advertencia de que el editor que se abre es de otro proyecto. A continuación, se muestra la ventana del archivo.

  3. Si el documento no está abierto o no en la tabla de documentos en ejecución, llame al OpenStandardEditor método (OSE_ChooseBestStdEditor) para abrir un editor estándar para el archivo.

    Al llamar al método , el IDE realiza las siguientes tareas:

    1. El IDE examina la subclave Editors/{guidEditorType}/Extensions del Registro para determinar qué editor puede abrir el archivo y tiene la prioridad más alta para hacerlo.

    2. Una vez que el IDE haya determinado qué editor puede abrir el archivo, el IDE llama a CreateEditorInstance. La implementación del editor de este método devuelve información necesaria para que el IDE llame CreateDocumentWindow al documento recién abierto y el sitio.

    3. Por último, el IDE carga el documento mediante la interfaz de persistencia habitual, como IVsPersistDocData2.

    4. Si el IDE ha determinado previamente que el elemento de jerarquía o jerarquía está disponible, el IDE llama GetItemContext al método en el proyecto para obtener un puntero de contexto IServiceProvider de nivel de proyecto para volver a pasar con la CreateDocumentWindow llamada al método.

  4. Devuelve un IServiceProvider puntero al IDE cuando el IDE llama GetItemContext al proyecto si desea permitir que el editor obtenga contexto del proyecto.

    Al realizar este paso, el proyecto ofrece servicios adicionales al editor.

    Si la vista de documento o el objeto de vista de documento se han localizado correctamente en un marco de ventana, el objeto se inicializa con sus datos llamando a LoadDocData.