Uso della funzione "Selectability" per il ripristino e i sottocomponenti
La selezione per il ripristino consente al richiedente di determinare quando un componente può essere ripristinato singolarmente. Un componente incluso per il backup può essere visualizzato in uno dei due modi seguenti:
- Un componente potrebbe essere stato incluso in modo esplicito nel backup. Questi componenti hanno una corrispondente istanza IVssComponent nel Documento Componenti di Backup. Questi componenti sono inclusi in un ripristino usando IVssBackupComponents::SetSelectedForRestore.
- Un componente potrebbe essere stato incluso in modo implicito nel backup. Questi componenti non dispongono di un'istanza IVssComponent corrispondente nel documento Componenti di backup; tuttavia, ci sarà sempre un'istanza di IVssComponent per qualche componente predecessore nel documento. Questi componenti sono inclusi in un ripristino usando IVssBackupComponents::AddRestoreSubcomponent.
Tutti i componenti inclusi in modo esplicito nel backup possono sempre essere selezionati singolarmente per il ripristino, indipendentemente dal relativo valore di selezione per il ripristino. Il richiedente chiama IVssBackupComponents::SetSelectedForRestore, passando l'ID writer, il percorso logico e il nome del componente specifico. I componenti inclusi in modo implicito nel backup verranno ripristinati quando viene ripristinato un antenato esplicitamente incluso. I componenti inclusi in modo implicito possono essere selezionati singolarmente per il ripristino solo se sono contrassegnati come selezionabili per il ripristino. Il richiedente chiama prima IVssBackupComponents::SetSelectedForRestore nel componente predecessore incluso in modo esplicito più vicino e quindi chiama IVssBackupComponents::AddRestoreSubcomponent nel componente predecessore per selezionare il componente incluso in modo implicito per il ripristino. Al termine, verrà ripristinato solo il componente selezionato in modo implicito; tutti gli altri componenti nel set di componenti non verranno ripristinati.
A differenza della selezionabilità per il backup, che deve essere sempre impostata in modo esplicito quando un componente viene aggiunto con IVssCreateWriterMetadata::AddComponent, la selezione per il ripristino ha un valore predefinito false, che può essere sottoposto a override.
Poiché i componenti di primo livello (componenti con un percorso logico vuoto) possono essere inclusi in modo esplicito solo in un backup, la selezionabilità per il ripristino non ha alcun significato per questi componenti.