Partager via


IUPnPService ::QueryStateVariable, méthode (upnp.h)

La méthode QueryStateVariable retourne la valeur de la variable d’état du service spécifié.

Syntaxe

HRESULT QueryStateVariable(
  [in]  BSTR    bstrVariableName,
  [out] VARIANT *pValue
);

Paramètres

[in] bstrVariableName

Spécifie la variable d’état pour laquelle retourner une valeur.

[out] pValue

Reçoit une référence à la valeur de la variable spécifiée par bstrVariableName. Le type des données retournées dépend de la variable d’état pour laquelle la requête a été appelée.

Pour libérer ce paramètre, utilisez VariantClear.

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 spécifiques à UPnP répertoriées dans le tableau suivant. Certaines de ces valeurs indiquent qu’une erreur a été reçue d’un appareil certifié UPnP. Pour plus d’informations, consultez Codes d’erreur d’appareil.

Code de retour Description
UPNP_E_DEVICE_ERROR
La variable n’est pas événementielle et la requête distante a retourné un code d’erreur. Il ne s’agit pas d’une erreur de transport ; l’appareil a reçu la demande, mais il a renvoyé une erreur.
UPNP_E_DEVICE_TIMEOUT
L’appareil n’a pas répondu dans le délai d’attente de 30 secondes.
UPNP_E_INVALID_VARIABLE
La variable n’existe pas.
UPNP_E_PROTOCOL_ERROR
La requête ne s’est pas terminée en raison de problèmes au niveau du protocole UPnP.
UPNP_E_TRANSPORT_ERROR
La variable n’est pas événementielle et la requête distante pour la valeur a échoué en raison d’un problème HTTP. Pour récupérer le code d’erreur HTTP, utilisez IUPnPService ::LastTransportStatus.
UPNP_E_VARIABLE_VALUE_UNKNOWN
La variable est événementielle, mais le logiciel UPnP ne peut pas retourner une valeur, car il attend toujours une notification d’événement.

Remarques

Le forum UPnP déconseille l’utilisation de cette méthode. Si possible, utilisez une action spécifique au service, le cas échéant.

Cette méthode récupère les valeurs des variables événementielles du cache local de l’objet de service. Le cache contient la valeur de chaque variable indiquée dans la dernière notification d’événement. Cette méthode récupère les valeurs des variables non événementielles en envoyant une requête distante à l’appareil.

Si une application appelle cette méthode pour une variable d’état événementielle, entre le moment où un service s’initialise pour la première fois et le moment où il traite son premier événement, UPNP_E_VARIABLE_VALUE_UNKNOWN est retourné.

Si une application appelle cette méthode pour un service qui n’utilise pas d’événements et que la requête HTTP échoue, UPNP_E_TRANSPORT_ERROR est retournée. Pour afficher les status, utilisez IUPnPService ::LastTransportStatus.

Note La variable time.tz peut contenir des informations de fuseau horaire incorrectes sur le point de contrôle. Par exemple, vous pouvez avoir un appareil et un point de contrôle s’exécutant dans le même fuseau horaire, -7.00. Lorsque le point de contrôle interroge une variable time.tz pour l’heure actuelle, l’appareil retourne une structure de date avec la valeur de fuseau horaire définie sur -8,00 au lieu de -7,00.

Pour contourner ce problème, utilisez le type de variable dataTime.tz plutôt time.tz sur le point de contrôle.

 

Configuration requise

Condition requise Valeur
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

IUPnPService

IUPnPService ::LastTransportStatus