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 エラー コードの 1 つ、または次の表に示す UPnP 固有の戻り値のいずれかを返します。 これらの値の一部は、UPnP 認定デバイスからエラーが受信されたことを示しています。 詳細については、「 デバイス エラー コード」を参照してください。
リターン コード | 説明 |
---|---|
|
デバイスに内部エラーが発生しました。要求を実行できませんでした。 |
|
原因不明のエラーが発生しました。 |
|
デバイスが 30 秒のタイムアウト期間内に応答していません。 |
|
デバイスから、処理できない応答が送信されました。たとえば、応答が破損しています。 |
|
このアクションは、デバイスではサポートされていません。 |
|
vInActionArgs で渡された 1 つ以上の引数が無効です。 |
|
UPnP コントロール プロトコル レベルでエラーが発生しました。 |
|
HTTP エラーが発生しました。 実際の HTTP 状態コードを取得するには、 IUPnPService::LastTransportStatus プロパティを使用します。
メモ このエラー コードは、SOAP 応答が 100 キロバイトを超えた場合にも返されます。
|
注釈
アプリケーションがメソッド 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 |
この問題を回避するには、整数以外の数値の UPnP データ型として float ではなく r4 を使用します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | サポートなし |
対象プラットフォーム | Windows |
ヘッダー | upnp.h |
[DLL] | Upnp.dll |