Compartir a través de


Función WSDCreateDeviceProxyAdvanced (wsdclient.h)

Crea un proxy de dispositivo y devuelve un puntero a la interfaz IWSDDeviceProxy .

Sintaxis

HRESULT WSDCreateDeviceProxyAdvanced(
  [in]  LPCWSTR         pszDeviceId,
        IWSDAddress     *pDeviceAddress,
  [in]  LPCWSTR         pszLocalId,
  [in]  IWSDXMLContext  *pContext,
  [out] IWSDDeviceProxy **ppDeviceProxy
);

Parámetros

[in] pszDeviceId

Dirección lógica o física del dispositivo. Una dirección lógica tiene el formato urn:uuid:{guid}. Una dirección física es un URI prefijo por http o https. Si esta dirección es un URI con el prefijo https, el proxy usará el protocolo SSL/TLS.

Si pszDeviceId o pszLocalId es una dirección URL prefijo por https, ambas direcciones URL deben ser idénticas. Si no es así, WSDCreateDeviceProxyAdvanced devolverá E_INVALIDARG.

La dirección del dispositivo puede tener como prefijo el carácter @ . Cuando pszDeviceId comienza con @, esta función no recupera los metadatos del dispositivo al crear el proxy del dispositivo.

pDeviceAddress

Interfaz IWSDAddress que define la dirección de transporte del dispositivo. Cuando se especifica pDeviceAddress , se puede crear un proxy de dispositivo sin necesidad de la resolución de una dirección lógica pasada a pszDeviceId. Este parámetro puede ser NULL.

[in] pszLocalId

Dirección lógica o física del cliente, que se usa para identificar el proxy y para actuar como un punto de conexión receptor de eventos. Una dirección lógica tiene el formato urn:uuid:{guid}.

Si el cliente usa un canal seguro para recibir eventos, la dirección tiene el prefijo https. Este URI debe especificar el puerto 5358, ya que este puerto está reservado para conexiones seguras con WSDAPI. El puerto debe configurarse con un certificado de servidor SSL antes de llamar a WSDCreateDeviceProxyAdvanced. Para obtener más información sobre la configuración del puerto, vea HttpSetServiceConfiguration.

[in] pContext

Interfaz IWSDXMLContext que define tipos de mensajes personalizados o espacios de nombres.

Si es NULL, se usa un contexto predeterminado que representa los tipos de mensajes integrados y los espacios de nombres.

[out] ppDeviceProxy

Puntero a la interfaz IWSDDeviceProxy que se usa para representar un dispositivo WSD remoto para aplicaciones cliente y middleware.

Valor devuelto

Entre los valores devueltos posibles se incluyen, entre otros, los siguientes:

Código devuelto Descripción
S_OK
El método se completó correctamente.
E_INVALIDARG
pszDeviceId es NULL, pszLocalId es NULL, la longitud en caracteres de pszDeviceId supera WSD_MAX_TEXT_LENGTH (8192), la longitud en caracteres de pszLocalId supera WSD_MAX_TEXT_LENGTH (8192) o pszDeviceId apunta a un URI prefijo por https y esa dirección URL no coincide con el URI pasado a pszLocalId.
E_POINTER
ppDeviceProxy es NULL.
E_OUTOFMEMORY
Memoria insuficiente para completar la operación.

Observaciones

La función WSDCreateDeviceProxyAdvanced llama al método IWSDDeviceProxy::Init , que inicializa una instancia de un objeto IWSDDeviceProxy .

Esta función también recuperará los metadatos del dispositivo, a menos que el parámetro pszDeviceId comience con el carácter @ . Para recuperar los metadatos del dispositivo después de crear el proxy del dispositivo, llame a IWSDDeviceProxy::BeginGetMetadata e IWSDDeviceProxy::EndGetMetadata en el objeto IWSDDeviceProxy devuelto.

Para obtener información sobre cómo solucionar problemas de llamadas de función WSDCreateDeviceProxyAdvanced , consulte Solución de problemas de aplicaciones WSDAPI.

Requisitos

   
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado wsdclient.h (incluya Wsdapi.h)
Library Wsdapi.lib
Archivo DLL Wsdapi.dll

Consulte también

Solución de problemas de aplicaciones WSDAPI