Freigeben über


IFileOperationProgressSink-Schnittstelle (shobjidl_core.h)

Macht Methoden verfügbar, die ein umfassendes Benachrichtigungssystem bereitstellen, das von Aufrufenden von IFileOperation verwendet wird, um die Details der Vorgänge zu überwachen, die sie über diese Schnittstelle ausführen.

Vererbung

Die IFileOperationProgressSink-Schnittstelle erbt von der IUnknown-Schnittstelle . IFileOperationProgressSink verfügt auch über folgende Arten von Membern:

Methoden

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

 
IFileOperationProgressSink::FinishOperations

Führt vom Aufrufer implementierte Aktionen aus, nachdem der letzte Vorgang, der vom Aufruf von IFileOperation ausgeführt wurde, abgeschlossen ist.
IFileOperationProgressSink::P auseTimer

Wird nicht unterstützt. (IFileOperationProgressSink.PauseTimer)
IFileOperationProgressSink::P ostCopyItem

Führt vom Aufrufer implementierte Aktionen aus, nachdem der Kopiervorgang für jedes Element abgeschlossen ist.
IFileOperationProgressSink::P ostDeleteItem

Führt vom Aufrufer implementierte Aktionen aus, nachdem der Löschvorgang für jedes Element abgeschlossen ist.
IFileOperationProgressSink::P ostMoveItem

Führt vom Aufrufer implementierte Aktionen aus, nachdem der Verschiebungsprozess für jedes Element abgeschlossen ist.
IFileOperationProgressSink::P ostNewItem

Führt vom Aufrufer implementierte Aktionen aus, nachdem das neue Element erstellt wurde.
IFileOperationProgressSink::P ostRenameItem

Führt vom Aufrufer implementierte Aktionen aus, nachdem der Umbenennungsprozess für jedes Element abgeschlossen ist.
IFileOperationProgressSink::P reCopyItem

Führt vom Aufrufer implementierte Aktionen aus, bevor der Kopiervorgang für jedes Element beginnt.
IFileOperationProgressSink::P reDeleteItem

Führt vom Aufrufer implementierte Aktionen aus, bevor der Löschvorgang für jedes Element beginnt.
IFileOperationProgressSink::P reMoveItem

Führt vom Aufrufer implementierte Aktionen aus, bevor der Verschiebungsprozess für jedes Element beginnt.
IFileOperationProgressSink::P reNewItem

Führt vom Aufrufer implementierte Aktionen aus, bevor der Prozess zum Erstellen eines neuen Elements beginnt.
IFileOperationProgressSink::P renameItem

Führt vom Aufrufer implementierte Aktionen aus, bevor der Umbenennungsprozess für jedes Element beginnt.
IFileOperationProgressSink::ResetTimer

Wird nicht unterstützt. (IFileOperationProgressSink.ResetTimer)
IFileOperationProgressSink::ResumeTimer

Wird nicht unterstützt. (IFileOperationProgressSink.ResumeTimer)
IFileOperationProgressSink::StartOperations

Führt vom Aufrufer implementierte Aktionen aus, bevor bestimmte Dateivorgänge ausgeführt werden.
IFileOperationProgressSink::UpdateProgress

Stellt eine Schätzung der Gesamtsumme der derzeit geleisteten Arbeit im Verhältnis zur Gesamtsumme der Arbeit bereit.

Hinweise

Wann muss implementiert werden?

Anwendungen müssen IFileOperationProgressSink selbst implementieren. Windows bietet keine Standardimplementierung.

Wann sollte verwendet werden?

IFileOperationProgressSink sind im Wesentlichen Handler für bestimmte Ereignisse. Sie werden normalerweise verwendet, um Informationen über die spezifische Aktion anzuzeigen, die zu diesem Zeitpunkt verarbeitet wird, z. B. den Namen einer Datei, die Quelle und das Ziel und den neuen Namen des Elements am Ziel. Post-Methoden erhalten das HRESULT jedes Teils des Vorgangs, sodass der Aufrufer genau bestimmen kann, wo der Prozess fehlschlägt, wenn dies der Fall ist. Parameterwerte der IFileOperation-Methode werden an die entsprechenden IFileOperationProgressSink-Methoden übergeben, sodass sie Zugriff auf dieselben Informationen haben.

Zum Anfügen einer Implementierung von IFileOperationProgressSink an einen Aufruf von IFileOperation haben Sie zwei Möglichkeiten:

Wenn Sie Advise aufrufen, ist es nicht erforderlich , IFileOperationProgressSink an bestimmte IFileOperation-Methoden zu übergeben, da dies zu redundanten Aufrufen der IFileOperationProgressSink-Methoden und doppelten Benachrichtigungen führt.

Wenn Sie IFileOperationProgressSink nur zum Auswählen von Methoden übergeben, kann derselbe instance von IFileOperationProgressSink für alle verwendet werden.

Beispiel

Im folgenden Beispiel wird IFileOperationProgressSink durch Aufrufen der Advise-Methode an eine instance von IFileOperation übergeben.
IFileOperation *pfo;
CoCreateInstance(CLSID_FileOperation, NULL, CLSCTX_ALL, IID_IFileOperation, (void **)&m_pFO)
HRESULT hr = SHCreateFileOperation(hwnd, 0, IID_PPV_ARGS(&pfo));
if (SUCCEEDED(hr))
{
    // Advise to get notifications
    DWORD dwCookie;
    hr = pfo->Advise(SAFECAST(this, IFileOperationProgressSink*), &dwCookie);
}

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 (einschließlich Shobjidl.h)

Weitere Informationen

IFileOperation