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:
- Verwenden Sie die IFileOperation::Advise-Methode, um über alle Vorgänge informiert zu werden, die durch den Aufruf von IFileOperation ausgeführt werden.
- Um nur über den Fortschritt für bestimmte Vorgänge benachrichtigt zu werden, übergeben Sie IFileOperationProgressSink an eine oder mehrere dieser einzelnen IFileOperation-Methoden :
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) |