Interfaccia IFileOperationProgressSink (shobjidl_core.h)
Espone metodi che forniscono un sistema di notifica avanzato usato dai chiamanti di IFileOperation per monitorare i dettagli delle operazioni eseguite tramite tale interfaccia.
Ereditarietà
L'interfaccia IFileOperationProgressSink eredita dall'interfaccia IUnknown . IFileOperationProgressSink include anche questi tipi di membri:
Metodi
L'interfaccia IFileOperationProgressSink include questi metodi.
IFileOperationProgressSink::FinishOperations Esegue azioni implementate dal chiamante dopo il completamento dell'ultima operazione eseguita dalla chiamata a IFileOperation. |
IFileOperationProgressSink::P auseTimer Non supportato. (IFileOperationProgressSink.PauseTimer) |
IFileOperationProgressSink::P ostCopyItem Esegue azioni implementate dal chiamante dopo il completamento del processo di copia per ogni elemento. |
IFileOperationProgressSink::P ostDeleteItem Esegue azioni implementate dal chiamante dopo il completamento del processo di eliminazione per ogni elemento. |
IFileOperationProgressSink::P ostMoveItem Esegue azioni implementate dal chiamante dopo il completamento del processo di spostamento per ogni elemento. |
IFileOperationProgressSink::P ostNewItem Esegue azioni implementate dal chiamante dopo la creazione del nuovo elemento. |
IFileOperationProgressSink::P ostRenameItem Esegue azioni implementate dal chiamante dopo il completamento del processo di ridenominazione per ogni elemento. |
IFileOperationProgressSink::P reCopyItem Esegue azioni implementate dal chiamante prima dell'inizio del processo di copia per ogni elemento. |
IFileOperationProgressSink::P reDeleteItem Esegue azioni implementate dal chiamante prima dell'inizio del processo di eliminazione per ogni elemento. |
IFileOperationProgressSink::P reMoveItem Esegue azioni implementate dal chiamante prima dell'inizio del processo di spostamento per ogni elemento. |
IFileOperationProgressSink::P reNewItem Esegue azioni implementate dal chiamante prima che il processo crei un nuovo elemento. |
IFileOperationProgressSink::P reRenameItem Esegue azioni implementate dal chiamante prima dell'inizio del processo di ridenominazione per ogni elemento. |
IFileOperationProgressSink::ResetTimer Non supportato. (IFileOperationProgressSink.ResetTimer) |
IFileOperationProgressSink::ResumeTimer Non supportato. (IFileOperationProgressSink.ResumeTimer) |
IFileOperationProgressSink::StartOperations Esegue azioni implementate dal chiamante prima che vengano eseguite operazioni di file specifiche. |
IFileOperationProgressSink::UpdateProgress Fornisce una stima della quantità totale di lavoro attualmente eseguita in relazione alla quantità totale di lavoro. |
Commenti
Quando implementare
Le applicazioni devono implementare IFileOperationProgressSink stesso. Windows non fornisce un'implementazione predefinita.Quando usare
IFileOperationProgressSink sono essenzialmente gestori per eventi specifici. Vengono usati normalmente per visualizzare informazioni sull'azione specifica elaborata in quel momento, ad esempio il nome di un file, un'origine e una destinazione e il nuovo nome dell'elemento nella destinazione. I metodi post ricevono HRESULT di ogni parte dell'operazione in modo che il chiamante possa determinare in modo specifico dove il processo ha esito negativo se lo esegue. I valori dei parametri del metodo IFileOperation vengono passati ai metodi IFileOperationProgressSink appropriati in modo che abbiano accesso alle stesse informazioni.Per collegare un'implementazione di IFileOperationProgressSink a una chiamata a IFileOperation, sono disponibili due opzioni:
- Per essere consigliato per tutte le operazioni eseguite dalla chiamata a IFileOperation, usare il metodo IFileOperation::Advise .
- Per ricevere una notifica solo dello stato di avanzamento per operazioni specifiche, passare IFileOperationProgressSink a uno o più di questi singoli metodi IFileOperation :
Se si sceglie di passare IFileOperationProgressSink solo per selezionare i metodi, la stessa istanza di IFileOperationProgressSink può essere usata per tutte.
Esempio
L'esempio seguente passa IFileOperationProgressSink a un'istanza di IFileOperation chiamando il metodo Advise .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);
}
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) |