IUPnPService::InvokeAction 메서드(upnp.h)
InvokeAction 메서드는 디바이스에서 메서드를 호출합니다.
구문
HRESULT InvokeAction(
[in] BSTR bstrActionName,
[in] VARIANT vInActionArgs,
[in, out] VARIANT *pvOutActionArgs,
[in, out] VARIANT *pvRetVal
);
매개 변수
[in] bstrActionName
호출할 메서드를 지정합니다.
[in] vInActionArgs
메서드에 대한 입력 인수의 배열을 지정합니다. 작업에 입력 인수가 없는 경우 이 매개 변수에는 빈 배열이 포함되어야 합니다.
이 배열의 내용은 서비스별로 다릅니다.
[in, out] pvOutActionArgs
입력에서 빈 배열에 대한 참조를 포함합니다. 출력에서 는 출력 인수 배열에 대한 참조를 받습니다. 작업에 출력 인수가 없는 경우 이 매개 변수에는 빈 배열이 포함됩니다.
이 매개 변수의 내용은 서비스별로 다릅니다.
VariantClear를 사용하여 이 매개 변수를 해제합니다.
[in, out] pvRetVal
입력에서 빈 배열에 대한 참조를 포함합니다. 출력에서 는 이 작업의 반환 값이 포함된 VARIANT 에 대한 참조를 받습니다.
작업이 호출된 후 디바이스가 오류를 반환하고 이 매개 변수가 NULL로 설정되지 않은 경우 이 매개 변수에는 반환 시 오류를 설명하는 특정 텍스트가 포함됩니다. 디바이스에서 반환된 오류에 대한 자세한 내용은 디바이스 오류 코드 설명서를 참조하세요.
VariantClear를 사용하여 이 매개 변수를 해제합니다.
반환 값
메서드가 성공하면 반환 값이 S_OK. 그렇지 않으면 메서드는 WinError.h에 정의된 COM 오류 코드 중 하나 또는 다음 표에 표시된 UPnP 관련 반환 값 중 하나를 반환합니다. 이러한 값 중 일부는 UPnP 인증 디바이스에서 오류가 수신되었음을 나타냅니다. 자세한 내용은 디바이스 오류 코드를 참조하세요.
반환 코드 | 설명 |
---|---|
|
디바이스에 내부 오류가 발생했습니다. 요청을 실행할 수 없습니다. |
|
알 수 없는 오류가 발생했습니다. |
|
디바이스가 30초 제한 시간 내에 응답하지 않았습니다. |
|
디바이스가 처리할 수 없는 응답을 보냈습니다. 예를 들어 응답이 손상되었습니다. |
|
이 작업은 디바이스에서 지원되지 않습니다. |
|
vInActionArgs에 전달된 인수 중 하나 이상이 잘못되었습니다. |
|
UPnP 제어 프로토콜 수준에서 오류가 발생했습니다. |
|
HTTP 오류가 발생했습니다. IUPnPService::LastTransportStatus 속성을 사용하여 실제 HTTP 상태 코드를 가져옵니다.
참고 SOAP 응답이 100KB를 초과하는 경우에도 이 오류 코드가 반환됩니다.
|
설명
애플리케이션이 InvokeAction 메서드를 호출하면 서비스에서 예상하는 인수와 일치해야 하는 인수 목록이 포함됩니다. 제어점은 이러한 VARIANT 인수를 필수 형식에 매핑합니다. 다음 표에서는 사용되는 매핑을 보여 줍니다.
데이터 형식 | MSXML에서 반환된 형식 |
---|---|
SDT_STRING = 0 | VT_BSTR |
SDT_NUMBER | VT_BSTR |
SDT_INT | VT_I4 |
SDT_FIXED_14_4 | VT_CY |
SDT_BOOLEAN | VT_BOOL |
SDT_DATETIME_ISO8601 | VT_DATE |
SDT_DATETIME_ISO8601TZ | VT_DATE |
SDT_DATE_ISO8601 | VT_DATE |
SDT_TIME_ISO8601 | VT_DATE |
SDT_TIME_ISO8601TZ | VT_DATE |
SDT_I1 | VT_I1 |
SDT_I2 | VT_I2 |
SDT_I4 | VT_I4 |
SDT_UI1 | VT_UI1 |
SDT_UI2 | VT_UI2 |
SDT_UI4 | VT_UI4 |
SDT_R4 | VT_FLOAT |
SDT_R8 | VT_DOUBLE |
SDT_FLOAT | VT_DOUBLE |
SDT_UUID | VT_BSTR |
SDT_BIN_BASE64 | VT_ARRAY |
SDT_BIN_HEX | VT_ARRAY |
SDT_CHAR | VT_UI2 (wchar) |
SDT_URI | VT_BSTR |
이 문제를 해결하려면 부동 소수점 대신 r4를 정수가 아닌 숫자 값의 UPnP 데이터 형식으로 사용합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | 지원되는 버전 없음 |
대상 플랫폼 | Windows |
헤더 | upnp.h |
DLL | Upnp.dll |