Freigeben über


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
STG_S_RETRYNOW
Der Aufrufer muss den Vorgang sofort wiederholen. (Dieser Wert ist am nützlichsten für Anwendungen, die Blockierungen innerhalb der Rückrufroutine ausführen.)
STG_S_BLOCK
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.
STG_S_MONITORING
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.
E_PENDING
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

Weitere Informationen

IProgressNotify