IUPnPService::QueryStateVariable 方法 (upnp.h)
QueryStateVariable 方法返回指定服务的状态变量的值。
语法
HRESULT QueryStateVariable(
[in] BSTR bstrVariableName,
[out] VARIANT *pValue
);
参数
[in] bstrVariableName
指定要为其返回值的状态变量。
[out] pValue
接收对 bstrVariableName 指定的变量值的引用。 返回的数据类型取决于为其调用查询的状态变量。
若要释放此参数,请使用 VariantClear。
返回值
如果该方法成功,则 返回值S_OK。 否则,该方法返回 WinError.h 中定义的 COM 错误代码之一或下表中列出的特定于 UPnP 的返回值之一。 其中一些值指示从 UPnP 认证的设备收到错误。 有关详细信息,请参阅 设备错误代码。
返回代码 | 说明 |
---|---|
|
变量不发生事件,并且远程查询返回了错误代码。 这不是传输错误;设备收到了请求,但返回了错误。 |
|
设备在 30 秒超时期限内未响应。 |
|
变量不存在。 |
|
由于 UPnP 协议级别存在问题,查询未完成。 |
|
变量未发生事件,并且由于 HTTP 问题,对值的远程查询失败。 若要检索 HTTP 错误代码,请使用 IUPnPService::LastTransportStatus。 |
|
变量已发生事件,但 UPnP 软件无法返回值,因为它仍在等待事件通知。 |
注解
UPnP 论坛不建议使用此方法。 如果可能,请使用特定于服务的操作(如果已提供)。
此方法从服务对象的本地缓存中检索事件变量的值。 缓存包含最后一个事件通知中指示的每个变量的值。 此方法通过向设备发送远程查询来检索非事件变量的值。
如果应用程序为事件状态变量调用此方法,则从服务首次初始化自身到处理其第一个事件之间, 将返回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 |
标头 | upnp.h |
DLL | Upnp.dll |