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認證的裝置收到錯誤。 如需詳細資訊,請參閱 裝置錯誤碼。
傳回碼 | Description |
---|---|
|
變數不會發生,而且遠端查詢傳回錯誤碼。 這不是傳輸錯誤;裝置收到要求,但傳回錯誤。 |
|
裝置未在 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 |