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 |
---|---|
|
El método se completó correctamente. |
|
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. |
|
ppDeviceProxy es NULL. |
|
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 |