Salvataggio di un documento personalizzato
L'ambiente gestisce i comandi Salva, Salva con nome e Salva tutto. Quando un utente fa clic su Salva, Salva con nome o Salva tutto nel menu File o chiude la soluzione, con conseguente salvataggio di tutti, viene eseguito il processo seguente.
Salvare, salvare con nome e salvare tutti i comandi per un editor personalizzato
Questo processo è dettagliato nei passaggi seguenti:
Per i comandi Salva e Salva con nome, l'ambiente usa il SVsShellMonitorSelection servizio per determinare la finestra del documento attiva e quindi gli elementi da salvare. Dopo che la finestra del documento attiva è nota, l'ambiente trova il puntatore della gerarchia e l'identificatore dell'elemento (itemID) per il documento nella tabella dei documenti in esecuzione. Per altre informazioni, vedere Esecuzione della tabella dei documenti.
Per il comando Salva tutto, l'ambiente utilizza le informazioni nella tabella dei documenti in esecuzione per compilare l'elenco di tutti gli elementi da salvare.
Quando la soluzione riceve una QueryStatus chiamata, scorre il set di elementi selezionati, ovvero le selezioni multiple esposte dal SVsShellMonitorSelection servizio.
In ogni elemento della selezione, la soluzione usa il puntatore della gerarchia per chiamare il IsItemDirty metodo per determinare se il comando di menu Salva deve essere abilitato. Se uno o più elementi sono sporchi, il comando Salva è abilitato. Se la gerarchia usa un editor standard, la gerarchia delega l'esecuzione di query sullo stato dirty all'editor chiamando il IsDocDataDirty metodo .
In ogni elemento selezionato che è dirty, la soluzione usa il puntatore della gerarchia per chiamare il SaveItem metodo nelle gerarchie appropriate.
Nel caso di un editor personalizzato, la comunicazione tra l'oggetto dati del documento e il progetto è privata. Pertanto, qualsiasi particolare preoccupazione di persistenza viene gestita tra questi due oggetti.
Nota
Se si implementa la persistenza personalizzata, assicurarsi di chiamare il QuerySaveFiles metodo per risparmiare tempo. Questo metodo verifica che sia sicuro salvare il file( ad esempio, il file non è di sola lettura).