IUPnPService::InvokeAction-Methode (upnp.h)
Die InvokeAction-Methode ruft eine Methode auf dem Gerät auf.
Syntax
HRESULT InvokeAction(
[in] BSTR bstrActionName,
[in] VARIANT vInActionArgs,
[in, out] VARIANT *pvOutActionArgs,
[in, out] VARIANT *pvRetVal
);
Parameter
[in] bstrActionName
Gibt die methode an, die aufgerufen werden soll.
[in] vInActionArgs
Gibt ein Array von Eingabeargumenten für die -Methode an. Wenn die Aktion keine Eingabeargumente enthält, muss dieser Parameter ein leeres Array enthalten.
Der Inhalt dieses Arrays ist dienstspezifisch.
[in, out] pvOutActionArgs
Enthält bei der Eingabe einen Verweis auf ein leeres Array. Empfängt bei der Ausgabe einen Verweis auf das Array von Ausgabeargumenten. Wenn die Aktion keine Ausgabeargumente enthält, enthält dieser Parameter ein leeres Array.
Der Inhalt dieses Parameters ist dienstspezifisch.
Geben Sie diesen Parameter mit VariantClear frei.
[in, out] pvRetVal
Enthält bei der Eingabe einen Verweis auf ein leeres Array. Empfängt bei der Ausgabe einen Verweis auf einen VARIANT-Wert , der den Rückgabewert dieser Aktion enthält.
Wenn das Gerät einen Fehler zurückgibt, nachdem die Aktion aufgerufen wurde und dieser Parameter nicht auf NULL festgelegt ist, enthält dieser Parameter bei der Rückgabe einen bestimmten Text, der den Fehler beschreibt. Weitere Informationen zu den von Geräten zurückgegebenen Fehlern finden Sie in der Dokumentation zu Gerätefehlercodes .
Geben Sie diesen Parameter mit VariantClear frei.
Rückgabewert
Wenn die Methode erfolgreich ist, wird der Rückgabewert S_OK. Andernfalls gibt die Methode einen der in WinError.h definierten COM-Fehlercodes oder einen der UPnP-spezifischen Rückgabewerte zurück, die in der folgenden Tabelle dargestellt sind. Einige dieser Werte geben an, dass von einem UPnP-zertifizierten Gerät ein Fehler empfangen wurde. Weitere Informationen finden Sie unter Gerätefehlercodes.
Rückgabecode | Beschreibung |
---|---|
|
Das Gerät hatte einen internen Fehler; Die Anforderung konnte nicht ausgeführt werden. |
|
Unbekannter Fehler aufgetreten. |
|
Das Gerät hat innerhalb des Timeoutzeitraums von 30 Sekunden nicht geantwortet. |
|
Das Gerät hat eine Antwort gesendet, die nicht verarbeitet werden kann. Beispielsweise wurde die Antwort beschädigt. |
|
Die Aktion wird vom Gerät nicht unterstützt. |
|
Mindestens eines der argumente, die in vInActionArgs übergeben werden, ist ungültig. |
|
Fehler auf UPnP-Steuerungsprotokollebene. |
|
Ein HTTP-Fehler ist aufgetreten. Verwenden Sie die IUPnPService::LastTransportStatus-Eigenschaft, um den tatsächlichen HTTP-status Code abzurufen.
Hinweis Dieser Fehlercode wird auch zurückgegeben, wenn die SOAP-Antwort 100 KB überschreitet.
|
Hinweise
Wenn eine Anwendung die Methode InvokeAction aufruft, enthält sie eine Liste von Argumenten, die den vom Dienst erwarteten Argumenten entsprechen sollen. Der Kontrollpunkt ordnet diese VARIANT-Argumente dem erforderlichen Typ zu. Die folgende Tabelle zeigt die verwendeten Zuordnungen.
Datentyp | Von MSXML zurückgegebener Typ |
---|---|
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 |
Um dieses Problem zu umgehen, verwenden Sie r4 anstelle von float als UPnP-Datentyp für nicht ganzzahlige numerische Werte.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows XP [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Nicht unterstützt |
Zielplattform | Windows |
Kopfzeile | upnp.h |
DLL | Upnp.dll |