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 |
---|---|
|
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.) |
|
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. |
|
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. |
|
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 |