Поделиться через


Метод IUPnPService::QueryStateVariable (upnp.h)

Метод QueryStateVariable возвращает значение переменной состояния указанной службы.

Синтаксис

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

Параметры

[in] bstrVariableName

Указывает переменную состояния, для которой возвращается значение.

[out] pValue

Получает ссылку на значение переменной, указанное bstrVariableName. Тип возвращаемых данных зависит от переменной состояния, для которой был вызван запрос.

Чтобы освободить этот параметр, используйте VariantClear.

Возвращаемое значение

Если метод выполнен успешно, возвращаемое значение будет S_OK. В противном случае метод возвращает один из кодов com-ошибок, определенных в WinError.h, или одно из возвращаемых значений UPnP, перечисленных в следующей таблице. Некоторые из этих значений указывают на то, что с устройства, сертифицированного UPnP, была получена ошибка. Дополнительные сведения см. в разделе Коды ошибок устройства.

Код возврата Описание
UPNP_E_DEVICE_ERROR
Переменная не имеет события, и удаленный запрос вернул код ошибки. Это не ошибка транспорта; устройство получило запрос, но вернуло ошибку.
UPNP_E_DEVICE_TIMEOUT
Устройство не ответило в течение 30-секундного периода ожидания.
UPNP_E_INVALID_VARIABLE
Переменная не существует.
UPNP_E_PROTOCOL_ERROR
Запрос не был завершен из-за проблем на уровне протокола UPnP.
UPNP_E_TRANSPORT_ERROR
Переменная не выполняется, и удаленный запрос к значению завершился сбоем из-за проблемы HTTP. Чтобы получить код ошибки HTTP, используйте IUPnPService::LastTransportStatus.
UPNP_E_VARIABLE_VALUE_UNKNOWN
Переменная имеет событие, но программное обеспечение UPnP не может вернуть значение, так как оно по-прежнему ожидает уведомления о событии.

Комментарии

Форум UPnP не рекомендует использовать этот метод. Если это возможно, используйте действие для конкретной службы, если оно было предоставлено.

Этот метод извлекает значения событийных переменных из локального кэша объекта службы. Кэш содержит значение для каждой переменной, указанной в последнем уведомлении о событии. Этот метод извлекает значения не evented переменных, отправляя удаленный запрос на устройство.

Если приложение вызывает этот метод для переменной событийного состояния, то между моментом инициализации службы и моментом обработки первого события UPNP_E_VARIABLE_VALUE_UNKNOWN возвращается.

Если приложение вызывает этот метод для службы, которая не использует события, и HTTP-запрос завершается сбоем, возвращается UPNP_E_TRANSPORT_ERROR . Чтобы просмотреть состояние, используйте IUPnPService::LastTransportStatus.

Примечание Переменная time.tz может содержать неверные сведения о часовом поясе в контрольной точке. Например, устройство и контрольная точка работают в одном часовом поясе —7,00. Когда контрольная точка запрашивает переменную time.tz для текущего времени, устройство возвращает структуру даты со значением часового пояса, равным -8,00, а не -7,00.

Чтобы обойти эту проблему, используйте тип переменной dataTime.tz вместо time.tz в контрольной точке.

 

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Ни одна версия не поддерживается
Целевая платформа Windows
Header upnp.h
DLL Upnp.dll

См. также раздел

IUPnPService

IUPnPService::LastTransportStatus