Compartir a través de


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:

Si llama a Advise , no es necesario pasar IFileOperationProgressSink a métodos IFileOperation específicos, ya que esto da como resultado llamadas redundantes a los métodos IFileOperationProgressSink y notificaciones duplicadas.

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)

Consulte también

IFileOperation