Interfaz IFileOperationProgressSink (shobjidl_core.h)
Expone métodos que proporcionan un sistema de notificaciones enriquecido que usan los autores de llamadas de IFileOperation para supervisar los detalles de las operaciones que realizan a través de esa interfaz.
Herencia
La interfaz IFileOperationProgressSink hereda de la interfaz IUnknown . IFileOperationProgressSink también tiene estos tipos de miembros:
Métodos
La interfaz IFileOperationProgressSink tiene estos métodos.
IFileOperationProgressSink::FinishOperations Realiza acciones implementadas por el autor de la llamada una vez completada la última operación realizada por la llamada a IFileOperation. |
IFileOperationProgressSink::P auseTimer No compatible. (IFileOperationProgressSink.PauseTimer) |
IFileOperationProgressSink::P ostCopyItem Realiza acciones implementadas por el autor de la llamada una vez completado el proceso de copia de cada elemento. |
IFileOperationProgressSink::P ostDeleteItem Realiza acciones implementadas por el autor de la llamada una vez completado el proceso de eliminación de cada elemento. |
IFileOperationProgressSink::P ostMoveItem Realiza acciones implementadas por el autor de la llamada una vez completado el proceso de movimiento de cada elemento. |
IFileOperationProgressSink::P ostNewItem Realiza acciones implementadas por el autor de la llamada después de crear el nuevo elemento. |
IFileOperationProgressSink::P ostRenameItem Realiza acciones implementadas por el autor de la llamada después de completar el proceso de cambio de nombre de cada elemento. |
IFileOperationProgressSink::P reCopyItem Realiza acciones implementadas por el autor de la llamada antes de que comience el proceso de copia de cada elemento. |
IFileOperationProgressSink::P reDeleteItem Realiza acciones implementadas por el autor de la llamada antes de que comience el proceso de eliminación de cada elemento. |
IFileOperationProgressSink::P reMoveItem Realiza acciones implementadas por el autor de la llamada antes de que comience el proceso de movimiento de cada elemento. |
IFileOperationProgressSink::P reNewItem Realiza acciones implementadas por el autor de la llamada antes de que comience el proceso para crear un nuevo elemento. |
IFileOperationProgressSink::P reRenameItem Realiza acciones implementadas por el autor de la llamada antes de que comience el proceso de cambio de nombre de cada elemento. |
IFileOperationProgressSink::ResetTimer No compatible. (IFileOperationProgressSink.ResetTimer) |
IFileOperationProgressSink::ResumeTimer No compatible. (IFileOperationProgressSink.ResumeTimer) |
IFileOperationProgressSink::StartOperations Realiza acciones implementadas por el autor de la llamada antes de realizar operaciones de archivo específicas. |
IFileOperationProgressSink::UpdateProgress Proporciona una estimación de la cantidad total de trabajo realizado actualmente en relación con la cantidad total de trabajo. |
Comentarios
Cuándo implementar
Las aplicaciones deben implementar IFileOperationProgressSink . Windows no proporciona una implementación predeterminada.Cuándo usar
IFileOperationProgressSink son esencialmente controladores para eventos concretos. Se usan normalmente para mostrar información sobre la acción específica que se está procesando en ese momento, como el nombre de un archivo, el origen y el destino, y el nuevo nombre del elemento en el destino. Los métodos Post reciben el HRESULT de cada parte de la operación para que el autor de la llamada pueda determinar específicamente dónde se produce un error en el proceso si lo hace. Los valores de parámetros del método IFileOperation se pasan a los métodos IFileOperationProgressSink adecuados para que tengan acceso a la misma información.Para adjuntar una implementación de IFileOperationProgressSink a una llamada a IFileOperation, tiene dos opciones:
- Para avisarse de todas las operaciones realizadas por la llamada a IFileOperation, use el método IFileOperation::Advise .
- Para recibir una notificación solo de progreso para operaciones específicas, pase IFileOperationProgressSink a uno o varios de estos métodos IFileOperation individuales:
Si decide pasar IFileOperationProgressSink solo para seleccionar métodos, se puede usar la misma instancia de IFileOperationProgressSink para todos ellos.
Ejemplo
En el ejemplo siguiente se pasa IFileOperationProgressSink a una instancia de IFileOperation llamando al método 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);
}
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows Vista [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2008 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | shobjidl_core.h (incluya Shobjidl.h) |