Compartir a través de


Guardado de un documento personalizado

El entorno controla los comandos Guardar, Guardar como y Guardar todo. Cuando un usuario hace clic en Guardar, Guardar como o Guardar todo en el menú Archivo o cierra la solución, lo que da lugar a un proceso de Guardar todo, se lleva a cabo el siguiente proceso.

Guardar en el Editor personalizado

Gestión de los comandos Guardar, Guardar como y Guardar todo para un editor personalizado

Este proceso se detalla en los siguientes pasos:

  1. Para los comandos Guardar y Guardar como, el entorno usa el servicio SVsShellMonitorSelection para determinar la ventana de documento activo y, por tanto, qué elementos se deben guardar. Una vez conocida la ventana de documento activo, el entorno busca el puntero de jerarquía y el identificador de elemento (itemID) del documento en la tabla de documentos en ejecución. Para obtener más información, consulte la Tabla de documentos en ejecución.

    Para el comando Guardar todo, el entorno usa la información de la tabla de documentos en ejecución para compilar la lista de todos los elementos que se van a guardar.

  2. Cuando la solución recibe una llamada QueryStatus, recorre en iteración el conjunto de elementos seleccionados (es decir, las múltiples selecciones expuestas por el servicio SVsShellMonitorSelection).

  3. En cada elemento de la selección, la solución usa el puntero de jerarquía para llamar al método IsItemDirty para determinar si se debe habilitar el comando de menú Guardar. Si uno o varios elementos contienen modificaciones, se habilita el comando Guardar. Si la jerarquía usa un editor estándar, la jerarquía delegará la consulta de estado con modificaciones al editor llamando al método IsDocDataDirty.

  4. En cada elemento seleccionado que contenga modificaciones, la solución usa el puntero de jerarquía para llamar al método SaveItem en las jerarquías adecuadas.

    En el caso de un editor personalizado, la comunicación entre el objeto de datos del documento y el proyecto es privada. Por lo tanto, las preocupaciones especiales de persistencia se controlan entre estos dos objetos.

    Nota:

    Si implementa su propia persistencia, asegúrese de llamar al método QuerySaveFiles para ahorrar tiempo. Este método comprueba que es seguro guardar el archivo (por ejemplo, que el archivo no es de solo lectura).