Interfaccia IFileOperation (shobjidl_core.h)
Espone i metodi per copiare, spostare, rinominare, creare ed eliminare elementi della shell, nonché metodi per fornire finestre di dialogo di stato ed errore. Questa interfaccia sostituisce la funzione SHFileOperation .
Ereditarietà
L'interfaccia IFileOperation eredita dall'interfaccia IUnknown . IFileOperation include anche questi tipi di membri:
Metodi
L'interfaccia IFileOperation include questi metodi.
IFileOperation::Advise Consente a un gestore di fornire informazioni sullo stato e sugli errori per tutte le operazioni. |
IFileOperation::ApplyPropertiesToItem Dichiara un singolo elemento i cui valori di proprietà devono essere impostati. |
IFileOperation::ApplyPropertiesToItems Dichiara un set di elementi per cui applicare un set comune di valori di proprietà. |
IFileOperation::CopyItem Dichiara un singolo elemento da copiare in una destinazione specificata. |
IFileOperation::CopyItems Dichiara un set di elementi da copiare in una destinazione specificata. |
IFileOperation::D eleteItem Dichiara un singolo elemento da eliminare. |
IFileOperation::D eleteItems Dichiara un set di elementi da eliminare. |
IFileOperation::GetAnyOperationsAborted Ottiene un valore che indica se le operazioni di file avviate da una chiamata a IFileOperation::P erformOperations sono state arrestate prima del completamento. Le operazioni possono essere arrestate dall'utente o automaticamente dal sistema. |
IFileOperation::MoveItem Dichiara un singolo elemento da spostare in una destinazione specificata. |
IFileOperation::MoveItems Dichiara un set di elementi da spostare in una destinazione specificata. |
IFileOperation::NewItem Dichiara un nuovo elemento da creare in una posizione specificata. |
IFileOperation::P erformOperations Esegue tutte le operazioni selezionate. |
IFileOperation::RenameItem Dichiara un singolo elemento da assegnare a un nuovo nome visualizzato. |
IFileOperation::RenameItems Dichiara un set di elementi da assegnare a un nuovo nome visualizzato. Tutti gli elementi hanno lo stesso nome. |
IFileOperation::SetOperationFlags Imposta i parametri per l'operazione corrente. |
IFileOperation::SetOwnerWindow Imposta la finestra padre o proprietario per le finestre di avanzamento e dialogo. |
IFileOperation::SetProgressDialog Specifica una finestra di dialogo utilizzata per visualizzare lo stato dell'operazione. |
IFileOperation::SetProgressMessage Non implementato. (IFileOperation.SetProgressMessage) |
IFileOperation::SetProperties Dichiara un set di proprietà e valori da impostare su un elemento o su elementi. |
IFileOperation::Unadvise Termina una connessione consultiva stabilita in precedenza tramite IFileOperation::Advise. |
Commenti
Un elemento shell può essere qualsiasi oggetto nello spazio dei nomi, inclusi oggetti del file system, ad esempio file e cartelle, ma anche oggetti virtuali. Negli argomenti del metodo IFileOperation il termine "item" viene usato per fare riferimento genericamente a qualsiasi oggetto dello spazio dei nomi.
IFileOperation offre molti vantaggi rispetto alla funzione SHFileOperation precedente.
- Uso di IShellItem per identificare gli elementi anziché i percorsi stringa. SHFileOperation richiedeva il percorso e le stringhe di destinazione per terminare in due caratteri Null anziché il singolo carattere Null standard, usato per delimitare più percorsi nella stringa. L'identificazione di un elemento tramite IShellItem è più affidabile e meno soggetta a errori di programmazione. Consente inoltre di accedere a elementi non di file system, ad esempio cartelle virtuali. È possibile passare più elementi in un'operazione come IShellItemArray, IDataObject o una raccolta a cui si accede tramite IEnumShellItems anziché come stringa.
- Segnalazione degli errori più accurata tramite valori HRESULT in combinazione con un'API come FormatMessage. I codici restituiti da SHFileOperation potrebbero essere fuorvianti o non accurati.
- Estendibilità. Come interfaccia COM (Component Object Model), IFileOperation può avere le sue funzionalità estese da terze parti per soddisfare le proprie esigenze specifiche, anche se questo dovrebbe essere un caso molto raro. Windows offre un'implementazione predefinita di IFileOperation che deve soddisfare le esigenze della maggior parte degli utenti.
- Migliore feedback sullo stato di avanzamento. L'avanzamento dettagliato dell'operazione, incluse le notifiche all'inizio e alla fine di operazioni specifiche su singoli elementi, nonché l'avanzamento complessivo, può essere ricevuto durante l'operazione. Anche se SHFileOperation ha fornito l'interfaccia utente di stato, non era così dettagliata.
- Altre funzionalità. Oltre alla funzionalità di copia, eliminazione, spostamento e ridenominazione fornita da SHFileOperation, IFileOperation consente di applicare i valori delle proprietà e creare nuovi elementi.
- Maggiore controllo sull'operazione. Oltre ai flag di operazione riconosciuti da SHFileOperation, i nuovi flag vengono riconosciuti in IFileOperation::SetOperationFlags che specificano le opzioni di operazione estesa.
- È possibile eseguire diverse operazioni in una sola chiamata. Ad esempio, è possibile spostare un set di file, copiare altri, rinominare una cartella e applicare le proprietà a un altro elemento in un'unica operazione. SHFileOperation può eseguire una sola operazione, ovvero copiare, spostare, rinominare o eliminare, alla volta.
- facoltativo. Configurare il sink di eventi per le notifiche relative allo stato di avanzamento e agli errori tramite Advise e Unadvise.
- Impostare lo stato dell'operazione usando quanto segue in base alle esigenze:
- Specificare le operazioni da eseguire su quali elementi usare quanto segue in base alle esigenze.
- Eseguire le operazioni chiamando PerformOperations
Un esempio completo che illustra l'estensione di IFileOperation è incluso nella Windows Software Development Kit (Windows SDK) (SDK). In un'installazione predefinita, è disponibile in %ProgramFiles%\Microsoft SDK\Windows\v6.0\Samples\WinUI\Shell\AppPlatform\FileOperations.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista [solo app desktop] |
Server minimo supportato | Windows Server 2008 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | shobjidl_core.h (include Shobjidl.h) |