Partager via


Interface IFileOperationProgressSink (shobjidl_core.h)

Expose des méthodes qui fournissent un système de notification enrichi utilisé par les appelants d’IFileOperation pour surveiller les détails des opérations qu’ils effectuent via cette interface.

Héritage

L’interface IFileOperationProgressSink hérite de l’interface IUnknown . IFileOperationProgressSink a également les types de membres suivants :

Méthodes

L’interface IFileOperationProgressSink a ces méthodes.

 
IFileOperationProgressSink ::FinishOperations

Effectue des actions implémentées par l’appelant une fois la dernière opération effectuée par l’appel à IFileOperation terminée.
IFileOperationProgressSink ::P auseTimer

Non pris en charge. (IFileOperationProgressSink.PauseTimer)
IFileOperationProgressSink ::P ostCopyItem

Effectue des actions implémentées par l’appelant une fois le processus de copie de chaque élément terminé.
IFileOperationProgressSink ::P ostDeleteItem

Effectue des actions implémentées par l’appelant une fois le processus de suppression de chaque élément terminé.
IFileOperationProgressSink ::P ostMoveItem

Effectue des actions implémentées par l’appelant une fois le processus de déplacement de chaque élément terminé.
IFileOperationProgressSink ::P ostNewItem

Effectue des actions implémentées par l’appelant après la création de l’élément.
IFileOperationProgressSink ::P ostRenameItem

Effectue des actions implémentées par l’appelant une fois le processus de renommage de chaque élément terminé.
IFileOperationProgressSink ::P reCopyItem

Effectue des actions implémentées par l’appelant avant le début du processus de copie pour chaque élément.
IFileOperationProgressSink ::P reDeleteItem

Effectue des actions implémentées par l’appelant avant le début du processus de suppression pour chaque élément.
IFileOperationProgressSink ::P reMoveItem

Effectue des actions implémentées par l’appelant avant le début du processus de déplacement pour chaque élément.
IFileOperationProgressSink ::P reNewItem

Effectue des actions implémentées par l’appelant avant le début du processus de création d’un élément.
IFileOperationProgressSink ::P reRenameItem

Effectue des actions implémentées par l’appelant avant le début du processus de renommage pour chaque élément.
IFileOperationProgressSink ::ResetTimer

Non pris en charge. (IFileOperationProgressSink.ResetTimer)
IFileOperationProgressSink ::ResumeTimer

Non pris en charge. (IFileOperationProgressSink.ResumeTimer)
IFileOperationProgressSink ::StartOperations

Effectue des actions implémentées par l’appelant avant d’effectuer des opérations de fichier spécifiques.
IFileOperationProgressSink ::UpdateProgress

Fournit une estimation de la quantité totale de travail actuellement effectuée par rapport à la quantité totale de travail.

Remarques

Quand implémenter

Les applications doivent implémenter IFileOperationProgressSink elles-mêmes. Windows ne fournit pas d’implémentation par défaut.

Quand utiliser

IFileOperationProgressSink sont essentiellement des gestionnaires pour des événements particuliers. Ils sont normalement utilisés pour afficher des informations sur l’action spécifique en cours de traitement à ce moment-là, telles que le nom d’un fichier, la source et la destination, et le nouveau nom de l’élément à la destination. Les méthodes de publication reçoivent le HRESULT de chaque partie de l’opération afin que l’appelant puisse déterminer spécifiquement où le processus échoue s’il le fait. Les valeurs de paramètre de méthode IFileOperation sont passées aux méthodes IFileOperationProgressSink appropriées afin qu’elles aient accès aux mêmes informations.

Pour joindre une implémentation de IFileOperationProgressSink à un appel à IFileOperation, vous avez deux options :

Si vous appelez Advise , il n’est pas nécessaire de passer IFileOperationProgressSink à des méthodes IFileOperation spécifiques, car cela entraîne des appels redondants vers les méthodes IFileOperationProgressSink et des notifications en double.

Si vous choisissez de passer IFileOperationProgressSink uniquement pour sélectionner des méthodes, la même instance de IFileOperationProgressSink peut être utilisée pour toutes ces méthodes.

Exemple

L’exemple suivant transmet IFileOperationProgressSink à un instance de IFileOperation en appelant la méthode 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);
}

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
Plateforme cible Windows
En-tête shobjidl_core.h (incluez Shobjidl.h)

Voir aussi

IFileOperation