Freigeben über


IUPnPService::QueryStateVariable-Methode (upnp.h)

Die QueryStateVariable-Methode gibt den Wert der Zustandsvariablen des angegebenen Diensts zurück.

Syntax

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

Parameter

[in] bstrVariableName

Gibt die Zustandsvariable an, für die ein Wert zurückgegeben werden soll.

[out] pValue

Empfängt einen Verweis auf den Wert der Variablen, die von bstrVariableName angegeben wird. Der Typ der zurückgegebenen Daten hängt von der Zustandsvariable ab, für die die Abfrage aufgerufen wurde.

Verwenden Sie VariantClear, um diesen Parameter frei zu geben.

Rückgabewert

Wenn die Methode erfolgreich ist, wird der Rückgabewert S_OK. Andernfalls gibt die Methode entweder einen der in WinError.h definierten COM-Fehlercodes oder einen der UPnP-spezifischen Rückgabewerte zurück, die in der folgenden Tabelle aufgeführt sind. Einige dieser Werte deuten darauf hin, dass ein Fehler von einem UPnP-zertifizierten Gerät empfangen wurde. Weitere Informationen finden Sie unter Gerätefehlercodes.

Rückgabecode Beschreibung
UPNP_E_DEVICE_ERROR
Die Variable wird nicht ausgelöst, und die Remoteabfrage hat einen Fehlercode zurückgegeben. Dies ist kein Transportfehler. Das Gerät hat die Anforderung empfangen, aber es wurde ein Fehler zurückgegeben.
UPNP_E_DEVICE_TIMEOUT
Das Gerät hat innerhalb des Timeoutzeitraums von 30 Sekunden nicht reagiert.
UPNP_E_INVALID_VARIABLE
Die Variable ist nicht vorhanden.
UPNP_E_PROTOCOL_ERROR
Die Abfrage wurde aufgrund von Problemen auf UPnP-Protokollebene nicht abgeschlossen.
UPNP_E_TRANSPORT_ERROR
Die Variable wird nicht ausgelöst, und die Remoteabfrage für den Wert ist aufgrund eines HTTP-Problems fehlgeschlagen. Um den HTTP-Fehlercode abzurufen, verwenden Sie IUPnPService::LastTransportStatus.
UPNP_E_VARIABLE_VALUE_UNKNOWN
Die Variable wird ereigniset, aber die UPnP-Software kann keinen Wert zurückgeben, da sie weiterhin auf eine Ereignisbenachrichtigung wartet.

Hinweise

Das UPnP-Forum rät von der Verwendung dieser Methode ab. Verwenden Sie nach Möglichkeit eine dienstspezifische Aktion, sofern eine bereitgestellt wurde.

Diese Methode ruft die Werte von Ereignisvariablen aus dem lokalen Cache des Dienstobjekts ab. Der Cache enthält den Wert für jede Variable, die in der letzten Ereignisbenachrichtigung angegeben ist. Diese Methode ruft die Werte von Variablen ohne Ereignis ab, indem eine Remoteabfrage an das Gerät gesendet wird.

Wenn eine Anwendung diese Methode für eine Ereigniszustandsvariable aufruft, wird zwischen der Initialisierung eines Diensts und dem Zeitpunkt, zu dem er sein erstes Ereignis verarbeitet, UPNP_E_VARIABLE_VALUE_UNKNOWN zurückgegeben.

Wenn eine Anwendung diese Methode für einen Dienst aufruft, der keine Ereignisse verwendet, und die HTTP-Anforderung schlägt fehl, wird UPNP_E_TRANSPORT_ERROR zurückgegeben. Um die status anzuzeigen, verwenden Sie IUPnPService::LastTransportStatus.

Hinweis Die variable time.tz kann falsche Zeitzoneninformationen auf dem Steuerungspunkt enthalten. Beispielsweise können Sie ein Gerät und einen Kontrollpunkt in derselben Zeitzone ausführen, nämlich -7.00. Wenn der Steuerungspunkt eine time.tz Variable für die aktuelle Zeit abfragt, gibt das Gerät eine Datumsstruktur zurück, deren Zeitzonenwert auf -8.00 statt -7.00 festgelegt ist.

Um dieses Problem zu umgehen, verwenden Sie den Variablentyp dataTime.tz anstelle time.tz auf dem Steuerungspunkt.

 

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Nicht unterstützt
Zielplattform Windows
Kopfzeile upnp.h
DLL Upnp.dll

Weitere Informationen

IUPnPService

IUPnPService::LastTransportStatus