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
S_OK
Die Methode wurde erfolgreich abgeschlossen.
E_INVALIDARG
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.
E_POINTER
ppDeviceProxy ist NULL.
E_OUTOFMEMORY
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

Weitere Informationen

Problembehandlung bei WSDAPI-Anwendungen