Método IProgressNotify::OnProgress (objidl.h)
Notifica a los objetos y aplicaciones registrados el progreso de una operación de descarga.
Sintaxis
HRESULT OnProgress(
[in] DWORD dwProgressCurrent,
[in] DWORD dwProgressMaximum,
[in] BOOL fAccurate,
[in] BOOL fOwner
);
Parámetros
[in] dwProgressCurrent
Cantidad de datos disponibles.
[in] dwProgressMaximum
Cantidad total de datos que se van a descargar.
[in] fAccurate
Indica la precisión de los valores de dwProgressCurrent y dwProgressMaximum. Son confiables (TRUE) o no confiables (FALSE). El valor FALSE indica que las estructuras de control para determinar la posición real de los datos que todavía no se van a descargar no están disponibles.
[in] fOwner
Indica si esta llamada a OnProgress puede controlar el comportamiento de bloqueo de la operación. Si es TRUE, el autor de la llamada puede usar valores devueltos de OnProgress para bloquear (STG_S_BLOCK), reintentar (STG_S_RETRYNOW) o supervisar (STG_S_MONITORING) la operación. Si es FALSE, el valor devuelto de OnProgress no influye en el comportamiento de bloqueo.
Valor devuelto
Este método puede devolver los valores devueltos estándar E_FAIL, E_INVALIDARG, E_OUTOFMEMORY y E_UNEXPECTED, así como los siguientes valores.
Código devuelto | Descripción |
---|---|
|
El autor de la llamada es reintentar la operación inmediatamente. (Este valor es más útil para las aplicaciones que bloquean desde dentro de la rutina de devolución de llamada). |
|
El autor de la llamada es bloquear la descarga y reintentar la llamada según sea necesario para determinar si hay datos adicionales disponibles. Este es el comportamiento predeterminado si no hay receptores registrados en el punto de conexión. |
|
El destinatario de devolución de llamada renuncia al control del proceso de descarga a uno de los otros objetos o aplicaciones que han registrado receptores de notificaciones de progreso en la misma secuencia. Esto resulta útil si el receptor de notificaciones solo está interesado en la recopilación de estadísticas. |
|
Los datos no están disponibles actualmente. El autor de la llamada es intentarlo de nuevo después de algún intervalo deseado. El receptor de notificaciones devuelve este valor si el almacenamiento asincrónico funciona en modo sin bloqueo. |
Comentarios
Los receptores pueden ser heredados por cualquier substorage o substream de un almacenamiento determinado. Si no se registra ningún receptor, el subproceso se bloqueará hasta que los datos solicitados estén disponibles o el descargador cancele la descarga.
Cuando varios objetos o aplicaciones han registrado receptores de notificaciones de progreso en una sola secuencia, solo uno de ellos puede controlar el comportamiento de una descarga. La propiedad de la descarga va al primer receptor para registrarse con el almacenamiento o la secuencia, o cualquier aviso de máscaras que se hayan heredado del almacenamiento primario (si el almacenamiento se creó con ASYNC_MODE_COMPATIBILITY).
Cualquiera de los receptores puede renunciar al control al siguiente punto de conexión devolviendo STG_S_MONITORING al punto de conexión que realiza la llamada actual. Después de que un punto de conexión obtenga el control (mediante la recepción de STG_S_BLOCK o STG_S_RETRYNOW), todos los puntos de conexión posteriores que llaman a OnProgress establecerán fOwner en FALSE.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 2000 Professional [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows 2000 Server [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | objidl.h |