共用方式為


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認證的裝置收到錯誤。 如需詳細資訊,請參閱 裝置錯誤碼

傳回碼 Description
UPNP_E_ACTION_REQUEST_FAILED
裝置發生內部錯誤;無法執行要求。
UPNP_E_DEVICE_ERROR
發生未知的錯誤。
UPNP_E_DEVICE_TIMEOUT
裝置未在 30 秒逾時期間內回應。
UPNP_E_ERROR_PROCESSING_RESPONSE
裝置已傳送無法處理的回應;例如,回應已損毀。
UPNP_E_INVALID_ACTION
裝置不支援此動作。
UPNP_E_INVALID_ARGUMENTS
在 vInActionArgs 中傳遞的一或多個自變數無效。
UPNP_E_PROTOCOL_ERROR
UPnP 控制通訊協定層級發生錯誤。
UPNP_E_TRANSPORT_ERROR
發生 HTTP 錯誤。 使用 IUPnPService::LastTransportStatus 屬性來取得實際的 HTTP 狀態代碼。
注意 當 SOAP 回應超過 100 KB 時,也會傳回此錯誤碼。
 

備註

當應用程式叫用 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
 
注意 呼叫 方法時,接收值的參數不得傳遞 NULL 值。
 
注意 當控制點收到時,裝置傳送為 [out] 自變數的浮點值或傳回值將會變更。 例如,假設有動作的裝置Action1Out_float傳回單一 [out] 浮點自變數。 當控制點叫用此動作時,裝置會傳回值 -234.567;不過,控制點實際上會收到值 -234.567001342773,而不是預期的值 -234.567。

若要解決此問題,請使用 r4 而非 float 作為非整數數值的 UPnP 數據類型。

 

規格需求

需求
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 都不支援
目標平台 Windows
標頭 upnp.h
Dll Upnp.dll

另請參閱

IUPnPService