Partager via


Méthode IProgressNotify ::OnProgress (objidl.h)

Avertit les objets et applications inscrits de la progression d’une opération de téléchargement.

Syntaxe

HRESULT OnProgress(
  [in] DWORD dwProgressCurrent,
  [in] DWORD dwProgressMaximum,
  [in] BOOL  fAccurate,
  [in] BOOL  fOwner
);

Paramètres

[in] dwProgressCurrent

Quantité de données disponible.

[in] dwProgressMaximum

Quantité totale de données à télécharger.

[in] fAccurate

Indique la précision des valeurs dans dwProgressCurrent et dwProgressMaximum. Ils sont fiables (TRUE) ou non fiables (FALSE). La valeur FALSE indique que les structures de contrôle permettant de déterminer la position réelle ou la quantité de données à télécharger ne sont pas disponibles.

[in] fOwner

Indique si cet appel OnProgress peut contrôler le comportement de blocage de l’opération. Si la valeur est TRUE, l’appelant peut utiliser les valeurs de retour d’OnProgress pour bloquer (STG_S_BLOCK), réessayer (STG_S_RETRYNOW) ou surveiller (STG_S_MONITORING) l’opération. Si la valeur EST FALSE, la valeur de retour d’OnProgress n’a aucune influence sur le comportement de blocage.

Valeur retournée

Cette méthode peut retourner les valeurs de retour standard E_FAIL, E_INVALIDARG, E_OUTOFMEMORY et E_UNEXPECTED, ainsi que les valeurs suivantes.

Code de retour Description
STG_S_RETRYNOW
L’appelant doit réessayer l’opération immédiatement. (Cette valeur est très utile pour les applications qui bloquent à partir de la routine de rappel.)
STG_S_BLOCK
L’appelant doit bloquer le téléchargement et réessayer l’appel si nécessaire pour déterminer si des données supplémentaires sont disponibles. Il s’agit du comportement par défaut si aucun récepteur n’est inscrit sur le point de connexion.
STG_S_MONITORING
Le destinataire du rappel abandonne le contrôle du processus de téléchargement à l’un des autres objets ou applications qui ont inscrit des récepteurs de notification de progression sur le même flux. Cela est utile si le récepteur de notification s’intéresse uniquement à la collecte de statistiques.
E_PENDING
Les données ne sont actuellement pas disponibles. L’appelant doit réessayer après un intervalle souhaité. Le récepteur de notification retourne cette valeur si le stockage asynchrone doit fonctionner en mode non bloquant.

Remarques

Les récepteurs peuvent être hérités par n’importe quel sous-stockage ou sous-flux d’un stockage donné. Si aucun récepteur n’est inscrit, le thread se bloque jusqu’à ce que les données demandées soient disponibles ou que le téléchargement soit annulé par le téléchargeur.

Lorsque plusieurs objets ou applications ont inscrit des récepteurs de notification de progression sur un seul flux, un seul d’entre eux peut contrôler le comportement d’un téléchargement. La propriété du téléchargement est transmise au premier récepteur pour s’inscrire auprès du stockage ou du flux, ou des skinks de conseil qui peuvent avoir été hérités du stockage parent (si le stockage a été créé avec ASYNC_MODE_COMPATIBILITY.)

L’un des récepteurs peut abandonner le contrôle au point de connexion suivant en retournant STG_S_MONITORING au point de connexion faisant l’appelant actuel. Une fois qu’un point de connexion obtient le contrôle (en recevant STG_S_BLOCK ou STG_S_RETRYNOW), tous les points de connexion suivants appelant OnProgress définissent fOwner sur FALSE.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête objidl.h

Voir aussi

IProgressNotify