다음을 통해 공유


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 변수를 쿼리하면 디바이스는 -7.00 대신 표준 시간대 값이 -8.00으로 설정된 datestructure를 반환합니다.

이 문제를 해결하려면 제어점에서 time.tz 대신 dataTime.tz 변수 형식을 사용합니다.

 

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 지원되는 버전 없음
대상 플랫폼 Windows
헤더 upnp.h
DLL Upnp.dll

추가 정보

IUPnPService

IUPnPService::LastTransportStatus