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 認定デバイスからエラーが受信されたことを示しています。 詳細については、「 デバイス エラー コード」を参照してください。

リターン コード 説明
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 フォーラムでは、このメソッドの使用は推奨されません。 可能であれば、サービス固有のアクション (指定されている場合) を使用します。

このメソッドは、イベントされた変数の値をサービス オブジェクトのローカル キャッシュから取得します。 キャッシュには、最後のイベント通知で示された各変数の値が含まれます。 このメソッドは、リモート クエリをデバイスに送信することで、イベントが発生していない変数の値を取得します。

アプリケーションがイベント状態変数に対してこのメソッドを呼び出した場合、サービスが最初に自身を初期化してから最初のイベントを処理する時間の間に、 UPNP_E_VARIABLE_VALUE_UNKNOWN が返されます。

アプリケーションがイベントを使用しないサービスに対してこのメソッドを呼び出し、HTTP 要求が失敗した場合、 UPNP_E_TRANSPORT_ERROR が返されます。 状態を表示するには、 IUPnPService::LastTransportStatus を使用します。

メモ time.tz 変数には、コントロール ポイントのタイムゾーン情報が正しくない場合があります。 たとえば、デバイスとコントロール ポイントを同じタイムゾーン -7.00 で実行できます。 コントロール ポイントが現在の時刻の time.tz 変数を照会すると、デバイスは datestructure を返し、タイムゾーン値は -7.00 ではなく -8.00 に設定されます。

この問題を回避するには、コントロール ポイントで time.tz 代わりに dataTime.tz 変数型を使用します。

 

要件

要件
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー サポートなし
対象プラットフォーム Windows
ヘッダー upnp.h
[DLL] Upnp.dll

こちらもご覧ください

IUPnPService

IUPnPService::LastTransportStatus