Condividi tramite


Funzione WSDCreateDeviceProxy2 (wsdclient.h)

Crea un proxy del dispositivo che può supportare i messaggi firmati e restituisce un puntatore all'interfaccia IWSDDeviceProxy .

Sintassi

HRESULT WSDCreateDeviceProxy2(
  [in]  LPCWSTR          pszDeviceId,
  [in]  LPCWSTR          pszLocalId,
  [in]  IWSDXMLContext   *pContext,
  [in]  WSD_CONFIG_PARAM *pConfigParams,
  [in]  DWORD            dwConfigParamCount,
  [out] IWSDDeviceProxy  **ppDeviceProxy
);

Parametri

[in] pszDeviceId

Indirizzo logico o fisico del dispositivo. Un indirizzo logico è del modulo urn:uuid:{guid}. Un indirizzo fisico è un URI preceduto da http o https. Se questo indirizzo è un URI preceduto da https, il proxy userà il protocollo SSL/TLS.

L'indirizzo del dispositivo può essere preceduto dal carattere @. Quando pszDeviceId inizia con @, questa funzione non recupera i metadati del dispositivo durante la creazione del proxy del dispositivo.

[in] pszLocalId

Indirizzo logico o fisico del client, usato per identificare il proxy e agire come endpoint del sink eventi. Un indirizzo logico è del modulo urn:uuid:{guid}.

Se il client usa un canale sicuro per ricevere gli eventi, l'indirizzo è un URI preceduto da https. Questo URI deve specificare la porta 5358, poiché questa porta è riservata alle connessioni sicure con WSDAPI. La porta deve essere configurata con un certificato server SSL prima di chiamare WSDCreateDeviceProxyAdvanced. Per altre informazioni sulla configurazione della porta, vedere HttpSetServiceConfiguration.

[in] pContext

Oggetto IWSDXMLContext che definisce tipi di messaggi o spazi dei nomi personalizzati.

Se NULL, viene usato un contesto predefinito che rappresenta i tipi di messaggi predefiniti e gli spazi dei nomi.

[in] pConfigParams

Matrice di strutture WSD_CONFIG_PARAM che contengono i parametri per la creazione dell'oggetto.

[in] dwConfigParamCount

Numero totale di strutture passate in pConfigParams.

[out] ppDeviceProxy

Puntatore a un oggetto IWSDDeviceProxy usato per rappresentare un dispositivo WSD remoto per applicazioni client e middleware.

Valore restituito

I valori restituiti possibili includono, ma non sono limitati a, quanto segue:

Codice restituito Descrizione
S_OK
La funzione è stata completata correttamente.
E_INVALIDARG
pszDeviceId è NULL, pszLocalId è NULL, la lunghezza in caratteri di pszDeviceId supera WSD_MAX_TEXT_LENGTH (8192) o la lunghezza in caratteri di pszLocalId supera WSD_MAX_TEXT_LENGTH (8192).
E_POINTER
ppDeviceProxy è NULL.
E_OUTOFMEMORY
Memoria insufficiente per completare l'operazione.

Commenti

La funzione WSDCreateDeviceProxy2 chiama il metodo IWSDDeviceProxy::Init che inizializza un'istanza di un oggetto IWSDDeviceProxy .

Questa funzione recupera anche i metadati del dispositivo, a meno che il parametro pszDeviceId non inizi con il carattere @. Per recuperare i metadati del dispositivo dopo la creazione del proxy del dispositivo, chiamare IWSDDeviceProxy::BeginGetMetadata e IWSDDeviceProxy::EndGetMetadata nell'oggetto IWSDDeviceProxy restituito.

Per informazioni sulla risoluzione dei problemi relativi alle chiamate di funzione WSDCreateDeviceProxy2 , vedere Risoluzione dei problemi delle applicazioni WSDAPI.

Requisiti

Requisito Valore
Client minimo supportato Windows 7 [solo app desktop]
Server minimo supportato Windows Server 2008 R2 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione wsdclient.h (includere Wsdapi.h)
Libreria Wsdapi.lib
DLL Wsdapi.dll