IProgressNotify::OnProgress-Methode (objidl.h)
Benachrichtigt registrierte Objekte und Anwendungen über den Fortschritt eines Downloadvorgangs.
Syntax
HRESULT OnProgress(
[in] DWORD dwProgressCurrent,
[in] DWORD dwProgressMaximum,
[in] BOOL fAccurate,
[in] BOOL fOwner
);
Parameter
[in] dwProgressCurrent
Die verfügbare Datenmenge.
[in] dwProgressMaximum
Die Gesamtmenge der daten, die heruntergeladen werden sollen.
[in] fAccurate
Gibt die Genauigkeit der Werte in dwProgressCurrent und dwProgressMaximum an. Sie sind entweder zuverlässig (TRUE) oder unzuverlässig (FALSE). Der FALSE-Wert gibt an, dass Kontrollstrukturen zum Bestimmen der tatsächlichen Position oder Menge der noch heruntergeladenen Daten nicht verfügbar sind.
[in] fOwner
Gibt an, ob dieser OnProgress-Aufruf das Blockierungsverhalten des Vorgangs steuern kann. Bei TRUE kann der Aufrufer Rückgabewerte von OnProgress verwenden, um den Vorgang zu blockieren (STG_S_BLOCK), wiederholen (STG_S_RETRYNOW) oder den Vorgang zu überwachen (STG_S_MONITORING). Wenn FALSE, hat der Rückgabewert von OnProgress keinen Einfluss auf das Blockierungsverhalten.
Rückgabewert
Diese Methode kann die Standardrückgabewerte E_FAIL, E_INVALIDARG, E_OUTOFMEMORY und E_UNEXPECTED sowie die folgenden Werte zurückgeben.
Rückgabecode | Beschreibung |
---|---|
|
Der Aufrufer muss den Vorgang sofort wiederholen. (Dieser Wert ist am nützlichsten für Anwendungen, die Blockierungen innerhalb der Rückrufroutine ausführen.) |
|
Der Aufrufer blockiert den Download und versucht den Anruf nach Bedarf erneut, um zu ermitteln, ob zusätzliche Daten verfügbar sind. Dies ist das Standardverhalten, wenn keine Senken am Verbindungspunkt registriert werden. |
|
Der Rückrufempfänger gibt die Kontrolle über den Downloadvorgang an eines der anderen Objekte oder Anwendungen ab, die über registrierte Statusbenachrichtigungssenken im selben Stream verfügen. Dies ist nützlich, wenn die Benachrichtigungssenke nur an der Erfassung von Statistiken interessiert ist. |
|
Daten sind derzeit nicht verfügbar. Der Aufrufer versucht es nach einem gewünschten Intervall erneut. Die Benachrichtigungssenke gibt diesen Wert zurück, wenn der asynchrone Speicher im Nichtblockierungsmodus ausgeführt werden soll. |
Hinweise
Senken können von jedem Unterspeicher oder Unterstrom eines bestimmten Speichers geerbt werden. Wenn keine Senke registriert ist, wird der Thread blockiert, bis die angeforderten Daten verfügbar sind oder der Download vom Downloader abgebrochen wird.
Wenn mehrere Objekte oder Anwendungen Statusbenachrichtigungssenken in einem einzelnen Stream registriert haben, kann nur eine von ihnen das Verhalten eines Downloads steuern. Der Besitz des Downloads geht an die erste Senke, um sich beim Speicher oder Stream zu registrieren, oder an alle Ratschläge-Skinks, die möglicherweise vom übergeordneten Speicher geerbt wurden (wenn der Speicher mit ASYNC_MODE_COMPATIBILITY erstellt wurde.)
Jede der Senken kann die Steuerung an den nächsten Verbindungspunkt abgeben, indem STG_S_MONITORING an den Verbindungspunkt zurückgegeben wird, der den aktuellen Aufrufer herstellt. Nachdem ein Verbindungspunkt die Kontrolle erhalten hat (durch empfang von STG_S_BLOCK oder STG_S_RETRYNOW), legen alle nachfolgenden Verbindungspunkte, die OnProgress aufrufen , fOwner auf FALSE fest.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | objidl.h |