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 :
- Pour être informé de toutes les opérations effectuées par l’appel à IFileOperation, utilisez la méthode IFileOperation ::Advise .
- Pour être averti uniquement de la progression d’opérations spécifiques, transmettez IFileOperationProgressSink à une ou plusieurs de ces méthodes IFileOperation individuelles :
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) |