Condividi tramite


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:

Se si chiama Consiglia non è necessario passare IFileOperationProgressSink a metodi IFileOperation specifici, in quanto ciò comporta chiamate ridondanti ai metodi IFileOperationProgressSink e notifiche duplicate.

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)

Vedi anche

IFileOperation