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 |
---|---|
|
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. |
|
Das Gerät hat innerhalb des Timeoutzeitraums von 30 Sekunden nicht reagiert. |
|
Die Variable ist nicht vorhanden. |
|
Die Abfrage wurde aufgrund von Problemen auf UPnP-Protokollebene nicht abgeschlossen. |
|
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. |
|
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.
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 |