IUPnPDescriptionDocument::LoadAsync-Methode (upnp.h)
Die LoadAsync-Methode lädt ein Dokument asynchron. Diese Methode gibt die Steuerung sofort an den Aufrufer zurück und verwendet den angegebenen Rückruf, um den Aufrufer zu benachrichtigen, wenn der Vorgang abgeschlossen ist.
Syntax
HRESULT LoadAsync(
[in] BSTR bstrUrl,
[in] IUnknown *punkCallback
);
Parameter
[in] bstrUrl
Gibt die URL des zu ladenden Dokuments an. Wenn es sich bei der angegebenen URL um eine relative URL handelt, wird der Servername dem Wert von bstrUrl vorangestellt.
[in] punkCallback
Verweis auf einen IUnknown,der den Rückruf angibt, mit dem das UPnP-Framework den Aufrufer benachrichtigt, wenn der Vorgang abgeschlossen ist. Wenn der Ladevorgang nicht sofort fehlschlägt, gibt dieser Rückruf an, ob der Ladevorgang erfolgreich war oder nicht. Das objekt, auf das von pUnkCallback verwiesen wird, muss entweder die IUPnPDescriptionDocumentCallback-Schnittstelle oder die IDispatch-Schnittstelle unterstützen.
Rückgabewert
Wenn die Methode erfolgreich ist, wird der Rückgabewert S_OK. Andernfalls gibt die Methode einen der in WinError.h definierten COM-Fehlercodes oder einen der folgenden UPnP-Rückgabewerte zurück.
Rückgabecode | Beschreibung |
---|---|
|
Das XML-Dokument enthält kein Device-Element Es fehlt entweder im Stammelement oder im DeviceList-Element . |
|
Im XML-Dokument fehlt eines der erforderlichen Elemente aus dem Device-Element . |
|
Das XML-Dokument verfügt nicht über ein Symbolelement. Es fehlt im IconList-Element , oder das DeviceList-Element enthält kein IconList-Element . |
|
Im XML-Dokument fehlt eines der erforderlichen Elemente aus dem Icon-Element . |
|
Das XML-Dokument verfügt auf der obersten Ebene des Dokuments nicht über ein Stammelement. |
|
Das XML-Dokument verfügt nicht über ein Dienstelement. Es fehlt im ServiceList-Element , oder das DeviceList-Element enthält kein ServiceList-Element . |
|
Im XML-Dokument fehlt eines der erforderlichen Elemente aus dem Service-Element . |
Hinweise
Diese Methode sollte nicht aus einem Benutzeroberflächenthread aufgerufen werden, da es lange dauern kann, bis die Methode zurückgegeben wird.
Wenn Sie diese Methode für dasselbe Objekt unmittelbar nach einem vorherigen Aufruf aufrufen, wird der erste Aufruf von LoadAsync abgebrochen. Um dies zu vermeiden, warten Sie auf den IUPnPDescriptionDocumentCallback::LoadComplete-Rückruf , und verwenden Sie dann LoadResult , um die Statusinformationen anzuzeigen.
Wenn die LoadAsync-Methode von einem Skript innerhalb einer Webseite aufgerufen wird, kann bstrUrl eine relative URL sein. Die Adresse der aktuellen Webseite wird als Basis-URL verwendet.
Wenn diese Methode von einer Webseite aufgerufen wird, muss die url, die der Aufrufer angibt, auf denselben Server verweisen, von dem die Webseite geladen wurde.
Das objekt, auf das von pUnkCallback verwiesen wird, muss entweder die IUPnPDescriptionDocumentCallback-Schnittstelle oder die IDispatch-Schnittstelle unterstützen. Die LoadAsync-Methode fragt zuerst pUnkCallback für die IUPnPDescriptionDocumentCallback-Schnittstelle ab. Wenn diese Schnittstelle nicht unterstützt wird, fragt die LoadAsync-MethodepUnkCallback für die IDispatch-Schnittstelle ab. Wenn die IDispatch-Schnittstelle nicht unterstützt wird, sind beide Überprüfungen fehlgeschlagen, und die LoadAsync-Methode gibt E_FAIL zurück.
Der auf IDispatch basierende Rückruf für die LoadAsync-Methode funktioniert als Skriptfunktion, die einen Parameter akzeptiert. Dieser Parameter ist das Ergebnis des Ladevorgangs. Wenn der Parameter null ist, war das Laden erfolgreich, und der Benutzer kann Geräteobjekte aus dem Dokument abrufen. Wenn der Parameter ungleich 0 ist, beschreibt er den Fehler. Der Wert entspricht dem Fehlercode, den die IUPnPDescriptionDocument::Load-Methode zurückgibt.
In der Visual Basic Scripting Edition (VBScript)-Entwicklungssoftware muss das zweite Argument GetRef(funcname) sein, wobei funcname der Name der Rückrufunterroutine ist.
Wenn diese Funktion S_OK zurückgibt, wird IUPnPDescriptionDocumentCallback::LoadComplete vom UPnP-Framework aufgerufen.
Anforderungen
Unterstützte Mindestversion (Client) | Windows XP [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Nicht unterstützt |
Zielplattform | Windows |
Kopfzeile | upnp.h |
DLL | Upnp.dll |