WSDCreateDeviceProxyAdvanced-Funktion (wsdclient.h)
Erstellt einen Geräteproxy und gibt einen Zeiger auf die IWSDDeviceProxy-Schnittstelle zurück.
Syntax
HRESULT WSDCreateDeviceProxyAdvanced(
[in] LPCWSTR pszDeviceId,
IWSDAddress *pDeviceAddress,
[in] LPCWSTR pszLocalId,
[in] IWSDXMLContext *pContext,
[out] IWSDDeviceProxy **ppDeviceProxy
);
Parameter
[in] pszDeviceId
Die logische oder physische Adresse des Geräts. Eine logische Adresse hat das Format urn:uuid:{guid}
. Eine physische Adresse ist ein URI mit dem Präfix http oder https. Wenn diese Adresse ein URI mit dem Präfix https ist, verwendet der Proxy das SSL/TLS-Protokoll.
Wenn entweder pszDeviceId oder pszLocalId eine URL mit dem Präfix https ist, müssen beide URLs identisch sein. Wenn dies nicht der Fall ist, gibt WSDCreateDeviceProxyAdvanced E_INVALIDARG zurück.
Der Geräteadresse kann das @-Zeichen vorangestellt werden. Wenn pszDeviceId mit @beginnt, ruft diese Funktion beim Erstellen des Geräteproxys nicht die Gerätemetadaten ab.
pDeviceAddress
Eine IWSDAddress-Schnittstelle , die die Gerätetransportadresse definiert. Wenn pDeviceAddress angegeben ist, kann ein Geräteproxy erstellt werden, ohne dass die Auflösung einer an pszDeviceId übergebenen logischen Adresse erforderlich ist. Dieser Parameter kann NULL sein.
[in] pszLocalId
Die logische oder physische Adresse des Clients, die verwendet wird, um den Proxy zu identifizieren und als Ereignissenkendpunkt zu fungieren. Eine logische Adresse hat das Format urn:uuid:{guid}
.
Wenn der Client einen sicheren Kanal zum Empfangen von Ereignissen verwendet, ist die Adresse ein URI mit dem Präfix https. Dieser URI sollte Port 5358 angeben, da dieser Port für sichere Verbindungen mit WSDAPI reserviert ist. Der Port muss mit einem SSL-Serverzertifikat konfiguriert werden, bevor WSDCreateDeviceProxyAdvanced aufgerufen wird. Weitere Informationen zur Portkonfiguration finden Sie unter HttpSetServiceConfiguration.
[in] pContext
Eine IWSDXMLContext-Schnittstelle , die benutzerdefinierte Nachrichtentypen oder Namespaces definiert.
Wenn NULL, wird ein Standardkontext verwendet, der die integrierten Nachrichtentypen und Namespaces darstellt.
[out] ppDeviceProxy
Zeiger auf die IWSDDeviceProxy-Schnittstelle , die Sie verwenden, um ein WSD-Remotegerät für Clientanwendungen und Middleware darzustellen.
Rückgabewert
Mögliche Rückgabewerte sind unter anderem:
Rückgabecode | BESCHREIBUNG |
---|---|
|
Die Methode wurde erfolgreich abgeschlossen. |
|
pszDeviceId ist NULL, pszLocalId ist NULL, die Länge in Den Zeichen von pszDeviceId überschreitet WSD_MAX_TEXT_LENGTH (8192), die Länge in Den Zeichen von pszLocalId überschreitet WSD_MAX_TEXT_LENGTH (8192), oder pszDeviceId verweist auf einen URI mit dem Präfix https, und diese URL stimmt nicht mit dem an pszLocalId übergebenen URI überein. |
|
ppDeviceProxy ist NULL. |
|
Unzureichender Arbeitsspeicher, um den Vorgang abzuschließen. |
Hinweise
Die WSDCreateDeviceProxyAdvanced-Funktion ruft die IWSDDeviceProxy::Init-Methode auf, die eine instance eines IWSDDeviceProxy-Objekts initialisiert.
Diese Funktion ruft auch die Gerätemetadaten ab, es sei denn, der Parameter pszDeviceId beginnt mit dem @-Zeichen. Um Gerätemetadaten abzurufen, nachdem der Geräteproxy erstellt wurde, rufen Sie IWSDDeviceProxy::BeginGetMetadata und IWSDDeviceProxy::EndGetMetadata für das zurückgegebene IWSDDeviceProxy-Objekt auf.
Informationen zur Problembehandlung bei WSDCreateDeviceProxyAdvanced-Funktionsaufrufen finden Sie unter Problembehandlung bei WSDAPI-Anwendungen.
Anforderungen
Unterstützte Mindestversion (Client) | Windows Vista [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2008 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | wsdclient.h (include Wsdapi.h) |
Bibliothek | Wsdapi.lib |
DLL | Wsdapi.dll |