IFileOperation-Schnittstelle (shobjidl_core.h)

Macht Methoden zum Kopieren, Verschieben, Umbenennen, Erstellen und Löschen von Shellelementen sowie Methoden zum Bereitstellen von Status- und Fehlerdialogfeldern verfügbar. Diese Schnittstelle ersetzt die SHFileOperation-Funktion .

Vererbung

Die IFileOperation-Schnittstelle erbt von der IUnknown-Schnittstelle . IFileOperation verfügt auch über folgende Membertypen:

Methoden

Die IFileOperation-Schnittstelle verfügt über diese Methoden.

 
IFileOperation::Advise

Ermöglicht es einem Handler, status- und Fehlerinformationen für alle Vorgänge bereitzustellen.
IFileOperation::ApplyPropertiesToItem

Deklariert ein einzelnes Element, dessen Eigenschaftswerte festgelegt werden sollen.
IFileOperation::ApplyPropertiesToItems

Deklariert eine Gruppe von Elementen, für die ein allgemeiner Satz von Eigenschaftenwerten angewendet werden soll.
IFileOperation::CopyItem

Deklariert ein einzelnes Element, das in ein angegebenes Ziel kopiert werden soll.
IFileOperation::CopyItems

Deklariert eine Gruppe von Elementen, die in ein angegebenes Ziel kopiert werden sollen.
IFileOperation::D eleteItem

Deklariert ein einzelnes Element, das gelöscht werden soll.
IFileOperation::D eleteItems

Deklariert einen Satz von Elementen, die gelöscht werden sollen.
IFileOperation::GetAnyOperationsAborted

Ruft einen Wert ab, der angibt, ob Dateivorgänge, die durch einen Aufruf von IFileOperation::P erformOperations initiiert wurden, beendet wurden, bevor sie abgeschlossen wurden. Die Vorgänge können entweder durch Benutzeraktion oder unbeaufsichtigt vom System beendet werden.
IFileOperation::MoveItem

Deklariert ein einzelnes Element, das an ein angegebenes Ziel verschoben werden soll.
IFileOperation::MoveItems

Deklariert einen Satz von Elementen, die an ein angegebenes Ziel verschoben werden sollen.
IFileOperation::NewItem

Deklariert ein neues Element, das an einem angegebenen Speicherort erstellt werden soll.
IFileOperation::P erformOperations

Führt alle ausgewählten Vorgänge aus.
IFileOperation::RenameItem

Deklariert ein einzelnes Element, dem ein neuer Anzeigename zugewiesen werden soll.
IFileOperation::RenameItems

Deklariert eine Gruppe von Elementen, die einen neuen Anzeigenamen erhalten sollen. Alle Elemente erhalten den gleichen Namen.
IFileOperation::SetOperationFlags

Legt Parameter für den aktuellen Vorgang fest.
IFileOperation::SetOwnerWindow

Legt das übergeordnete Oder Besitzerfenster für Status- und Dialogfelder fest.
IFileOperation::SetProgressDialog

Gibt ein Dialogfeld an, mit dem der Fortschritt des Vorgangs angezeigt wird.
IFileOperation::SetProgressMessage

Nicht implementiert. (IFileOperation.SetProgressMessage)
IFileOperation::SetProperties

Deklariert einen Satz von Eigenschaften und Werten, die für ein Element oder ein Element festgelegt werden sollen.
IFileOperation::Unadvise

Beendet eine Beratungsverbindung, die zuvor über IFileOperation::Advise hergestellt wurde.

Hinweise

Ein Shellelement kann ein beliebiges Objekt im Namespace sein, einschließlich Dateisystemobjekten wie Dateien und Ordnern, aber auch virtuelle Objekte. In den Themen der IFileOperation-Methode wird der Begriff "item" verwendet, um generisch auf jedes Namespaceobjekt zu verweisen.

IFileOperation bietet viele Vorteile gegenüber der älteren SHFileOperation-Funktion .

  • Verwenden sie IShellItem , um Elemente anstelle von Zeichenfolgenpfaden zu identifizieren. SHFileOperation erforderte, dass Pfad- und Zielzeichenfolgen in zwei NULL-Zeichen anstelle des standardmäßigen einzelnen NULL-Zeichens beendet wurden, das selbst verwendet wurde, um mehrere Pfade in der Zeichenfolge zu trennen. Das Identifizieren eines Elements über IShellItem ist robuster und weniger anfällig für Programmierfehler. Außerdem können Sie auf Nicht-Dateisystemelemente wie virtuelle Ordner zugreifen. Mehrere Elemente in einem Vorgang können als IShellItemArray, IDataObject oder eine Sammlung übergeben werden, auf die über IEnumShellItems zugegriffen wird, anstatt als Zeichenfolge.
  • Genauere Fehlerberichterstattung über HRESULT-Werte in Verbindung mit einer API wie FormatMessage. Rückgabecodes aus SHFileOperation können irreführend oder ungenau sein.
  • Erweiterungen. Als COM-Schnittstelle (Component Object Model) kann IFileOperation seine Funktionen von einem Drittanbieter erweitern lassen, um seine spezifischen Anforderungen zu erfüllen, obwohl dies ein sehr seltener Fall sein sollte. Windows bietet eine Standardimplementierung von IFileOperation , die die Anforderungen der meisten Benutzer erfüllen sollte.
  • Besseres Fortschrittsfeedback. Detaillierte Vorgangsfortschritte, einschließlich Benachrichtigungen, wann bestimmte Vorgänge für einzelne Elemente beginnen und enden, sowie der Gesamtfortschritt, können während des Vorgangs empfangen werden. ShFileOperation bot zwar eine Fortschritts-Benutzeroberfläche, war aber nicht so detailliert.
  • Mehr Funktionalität. Zusätzlich zur Kopier-, Lösch-, Verschieben- und Umbenennensfunktion von SHFileOperation können Sie mit IFileOperation Eigenschaftswerte anwenden und neue Elemente erstellen.
  • Mehr Kontrolle über den Vorgang. Zusätzlich zu den von SHFileOperation erkannten Vorgangsflags werden in IFileOperation::SetOperationFlags neue Flags erkannt, die erweiterte Vorgangsoptionen angeben.
  • In einem Aufruf können verschiedene Vorgänge ausgeführt werden. Für instance können Sie eine Reihe von Dateien verschieben, andere kopieren, einen Ordner umbenennen und Eigenschaften auf ein weiteres Element in einem Vorgang anwenden. SHFileOperation konnte jeweils nur einen Vorgang ausführen– kopieren, verschieben, umbenennen oder löschen.
Um einen Dateivorgang über diese Schnittstelle auszuführen, muss eine Sequenz von Aufrufen erfolgen.
  1. Optional. Richten Sie die Ereignissenke für Fortschritts- status und Fehlerbenachrichtigungen über Advise und Unadvise ein.
  2. Legen Sie den Vorgangsstatus wie folgt fest:
  3. Geben Sie nach Bedarf an, welche Vorgänge für welche Elemente ausgeführt werden sollen.
  4. Ausführen der Vorgänge durch Aufrufen von PerformOperations
IFileOperation kann nur in einer Singlethread-Apartmentsituation (STA) angewendet werden. Es kann nicht für eine MTA-Situation (Multithreaded Apartment) verwendet werden. Für MTA müssen Sie weiterhin SHFileOperation verwenden.

Ein vollständiges Beispiel, das die Erweiterung von IFileOperation veranschaulicht, ist im Windows Software Development Kit (SDK) enthalten. In einer Standardinstallation finden Sie sie unter %ProgramFiles%\Microsoft SDKs\Windows\v6.0\Samples\WinUI\Shell\AppPlatform\FileOperations.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile shobjidl_core.h (shobjidl.h einschließen)