Partager via


Méthode IUPnPDescriptionDocument::LoadAsync (upnp.h)

La méthode LoadAsync charge un document de manière asynchrone. Cette méthode retourne immédiatement le contrôle à l’appelant et utilise le rappel spécifié pour notifier l’appelant lorsque l’opération est terminée.

Syntaxe

HRESULT LoadAsync(
  [in] BSTR     bstrUrl,
  [in] IUnknown *punkCallback
);

Paramètres

[in] bstrUrl

Spécifie l’URL du document à charger. Si l’URL spécifiée est une URL relative, le nom du serveur est ajouté à la valeur de bstrUrl.

[in] punkCallback

Référence à un IUnknown spécifiant le rappel que l’infrastructure UPnP utilise pour notifier l’appelant lorsque l’opération est terminée. Si l’opération de chargement n’a pas échoué immédiatement, ce rappel indique si l’opération de chargement a réussi ou échoué. L’objet auquel fait référence pUnkCallback doit prendre en charge l’interface IUPnPDescriptionDocumentCallback ou l’interface IDispatch .

Valeur retournée

Si la méthode réussit, la valeur de retour est S_OK. Sinon, la méthode retourne l’un des codes d’erreur COM définis dans WinError.h ou l’une des valeurs de retour UPnP suivantes.

Code de retour Description
UPNP_E_DEVICE_ELEMENT_EXPECTED
Le document XML n’a pas d’élément d’appareil Il manque l’élément racine ou l’élément DeviceList .
UPNP_E_DEVICE_NODE_INCOMPLETE
Il manque au document XML l’un des éléments requis de l’élément Device .
UPNP_E_ICON_ELEMENT_EXPECTED
Le document XML n’a pas d’élément icône. Il est absent de l’élément IconList ou l’élément DeviceList ne contient pas d’élément IconList .
UPNP_E_ICON_NODE_INCOMPLETE
Il manque au document XML l’un des éléments requis de l’élément Icon .
UPNP_E_ROOT_ELEMENT_EXPECTED
Le document XML n’a pas d’élément racine au niveau supérieur du document.
UPNP_E_SERVICE_ELEMENT_EXPECTED
Le document XML n’a pas d’élément de service. Il est absent de l’élément ServiceList , ou l’élément DeviceList ne contient pas d’élément ServiceList .
UPNP_E_SERVICE_NODE_INCOMPLETE
Il manque au document XML l’un des éléments requis de l’élément Service .

Remarques

Cette méthode ne doit pas être appelée à partir d’un thread d’interface utilisateur, car le retour de la méthode peut prendre beaucoup de temps.

Si vous appelez cette méthode pour le même objet immédiatement après un appel précédent, le premier appel de LoadAsync est abandonné. Pour éviter cela, attendez le rappel IUPnPDescriptionDocumentCallback::LoadComplete , puis utilisez LoadResult pour afficher les informations d’état.

Si la méthode LoadAsync est appelée par un script dans une page web, bstrUrl peut être une URL relative. L’adresse de la page Web active est utilisée comme URL de base.

Si cette méthode est appelée à partir d’une page Web, l’URL spécifiée par l’appelant doit faire référence au même serveur à partir duquel la page web a été chargée.

L’objet auquel fait référence pUnkCallback doit prendre en charge l’interface IUPnPDescriptionDocumentCallback ou l’interface IDispatch . La méthode LoadAsync interroge d’abord pUnkCallback pour l’interface IUPnPDescriptionDocumentCallback . Si cette interface n’est pas prise en charge, la méthode LoadAsync interroge pUnkCallback pour l’interface IDispatch . Si l’interface IDispatch n’est pas prise en charge, les deux vérifications ont échoué et la méthode LoadAsync retourne E_FAIL.

Le rappel basé sur IDispatch pour la méthode LoadAsync fonctionne comme une fonction de script qui prend un paramètre. Ce paramètre est le résultat de l’opération de chargement. Si le paramètre est égal à zéro, la charge a réussi et l’utilisateur peut récupérer des objets d’appareil à partir du document. Si le paramètre n’est pas égal à zéro, il décrit l’erreur. La valeur est identique au code d’erreur que la méthode IUPnPDescriptionDocument::Load retourne.

Dans le logiciel de développement Visual Basic Scripting Edition (VBScript), le deuxième argument doit être GetRef(funcname), où funcname est le nom de la sous-routine de rappel.

Si cette fonction retourne S_OK, IUPnPDescriptionDocumentCallback::LoadComplete est appelé par l’infrastructure UPnP.

Configuration requise

   
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Aucun pris en charge
Plateforme cible Windows
En-tête upnp.h
DLL Upnp.dll

Voir aussi

IUPnPDescriptionDocument

IUPnPDescriptionDocument::Load