Interface IFileOperation (shobjidl_core.h)

Expose des méthodes pour copier, déplacer, renommer, créer et supprimer des éléments Shell, ainsi que des méthodes pour fournir des boîtes de dialogue de progression et d’erreur. Cette interface remplace la fonction SHFileOperation .

Héritage

L’interface IFileOperation hérite de l’interface IUnknown. IFileOperation a également les types de membres suivants :

Méthodes

L’interface IFileOperation possède ces méthodes.

 
IFileOperation ::Advise

Permet à un gestionnaire de fournir des informations de status et d’erreur pour toutes les opérations.
IFileOperation ::ApplyPropertiesToItem

Déclare un élément unique dont les valeurs de propriété doivent être définies.
IFileOperation ::ApplyPropertiesToItems

Déclare un ensemble d’éléments pour lesquels appliquer un ensemble commun de valeurs de propriété.
IFileOperation ::CopyItem

Déclare un élément unique qui doit être copié dans une destination spécifiée.
IFileOperation ::CopyItems

Déclare un ensemble d’éléments qui doivent être copiés dans une destination spécifiée.
IFileOperation ::D eleteItem

Déclare un élément unique qui doit être supprimé.
IFileOperation ::D eleteItems

Déclare un ensemble d’éléments qui doivent être supprimés.
IFileOperation ::GetAnyOperationsAborted

Obtient une valeur qui indique si les opérations de fichier initiées par un appel à IFileOperation ::P erformOperations ont été arrêtées avant d’être terminées. Les opérations peuvent être arrêtées par l’action de l’utilisateur ou silencieusement par le système.
IFileOperation ::MoveItem

Déclare un élément unique qui doit être déplacé vers une destination spécifiée.
IFileOperation ::MoveItems

Déclare un ensemble d’éléments qui doivent être déplacés vers une destination spécifiée.
IFileOperation ::NewItem

Déclare un nouvel élément qui doit être créé à un emplacement spécifié.
IFileOperation ::P erformOperations

Exécute toutes les opérations sélectionnées.
IFileOperation ::RenameItem

Déclare un élément unique qui doit recevoir un nouveau nom d’affichage.
IFileOperation ::RenameItems

Déclare un ensemble d’éléments qui doivent recevoir un nouveau nom d’affichage. Tous les éléments portent le même nom.
IFileOperation ::SetOperationFlags

Définit les paramètres de l’opération en cours.
IFileOperation ::SetOwnerWindow

Définit la fenêtre parente ou propriétaire pour les fenêtres de progression et de boîte de dialogue.
IFileOperation ::SetProgressDialog

Spécifie une boîte de dialogue utilisée pour afficher la progression de l’opération.
IFileOperation ::SetProgressMessage

Non implémenté. (IFileOperation.SetProgressMessage)
IFileOperation ::SetProperties

Déclare un ensemble de propriétés et de valeurs à définir sur un ou plusieurs éléments.
IFileOperation ::Unadvise

Met fin à une connexion de conseil précédemment établie via IFileOperation ::Advise.

Remarques

Un élément Shell peut être n’importe quel objet de l’espace de noms, y compris des objets de système de fichiers tels que des fichiers et des dossiers, mais également des objets virtuels. Dans les rubriques de méthode IFileOperation , le terme « item » est utilisé pour faire référence de manière générique à n’importe quel objet d’espace de noms.

IFileOperation offre de nombreux avantages par rapport à l’ancienne fonction SHFileOperation .

  • Utilisation d’IShellItem pour identifier des éléments plutôt que des chemins de chaîne. SHFileOperation exigeait que les chaînes de chemin d’accès et de destination se terminent par deux caractères null plutôt que par le caractère null unique standard, qui lui-même a été utilisé pour délimiter plusieurs chemins dans la chaîne. L’identification d’un élément via IShellItem est plus robuste et moins sujette aux erreurs de programmation. Il vous permet également d’accéder à des éléments de système non-fichiers, tels que des dossiers virtuels. Plusieurs éléments d’une même opération peuvent être passés en tant que IShellItemArray, IDataObject ou une collection accessible via IEnumShellItems plutôt que sous forme de chaîne.
  • Rapport d’erreurs plus précis via des valeurs HRESULT conjointement avec une API telle que FormatMessage. Les codes de retour de SHFileOperation peuvent être trompeurs ou inexacts.
  • Extensibilité. En tant qu’interface COM (Component Object Model), IFileOperation peut avoir ses fonctionnalités étendues par un tiers pour répondre à ses besoins spécifiques, bien que ce soit un cas très rare. Windows fournit une implémentation par défaut d’IFileOperation qui doit répondre aux besoins de la plupart des utilisateurs.
  • Meilleurs commentaires sur la progression. La progression détaillée de l’opération, y compris les notifications lorsque des opérations spécifiques commencent et se terminent sur des éléments individuels, ainsi que la progression globale, peuvent être reçues pendant l’opération. Bien que SHFileOperation ait fourni l’interface utilisateur de progression, elle n’était pas aussi détaillée.
  • Fonctionnalités supplémentaires. En plus des fonctionnalités de copie, de suppression, de déplacement et de renommage fournies par SHFileOperation, IFileOperation vous permet d’appliquer des valeurs de propriété et de créer de nouveaux éléments.
  • Plus de contrôle sur l’opération. En plus des indicateurs d’opération reconnus par SHFileOperation, de nouveaux indicateurs sont reconnus dans IFileOperation ::SetOperationFlags qui spécifient des options d’opération étendues.
  • Différentes opérations peuvent être effectuées en un seul appel. Par instance, vous pouvez déplacer un ensemble de fichiers, en copier d’autres, renommer un dossier et appliquer des propriétés à un autre élément en une seule opération. SHFileOperation ne pouvait effectuer qu’une seule opération (copier, déplacer, renommer ou supprimer) à la fois.
Pour effectuer une opération de fichier à l’aide de cette interface, une séquence d’appels doit être effectuée.
  1. facultatif. Configurez le récepteur d’événements pour la progression status et les notifications d’erreur via Conseiller et Annuler la notification.
  2. Définissez l’état de l’opération à l’aide des éléments suivants en fonction des besoins :
  3. Spécifiez les opérations à effectuer sur quels éléments en utilisant les éléments suivants si nécessaire.
  4. Exécutez les opérations en appelant PerformOperations
IFileOperation ne peut être appliqué que dans une situation d’appartement à thread unique (STA). Il ne peut pas être utilisé pour une situation d’appartement multithread (MTA). Pour MTA, vous devez toujours utiliser SHFileOperation.

Un exemple complet illustrant l’extension d’IFileOperation est inclus dans le Kit de développement logiciel Windows (Kit SDK Windows) (SDK). Dans une installation par défaut, il se trouve dans %ProgramFiles%\Microsoft SDKs\Windows\v6.0\Samples\WinUI\Shell\AppPlatform\FileOperations.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
Plateforme cible Windows
En-tête shobjidl_core.h (inclure Shobjidl.h)