Compartilhar via


Função WSDCreateDeviceProxyAdvanced (wsdclient.h)

Cria um proxy de dispositivo e retorna um ponteiro para a interface IWSDDeviceProxy .

Sintaxe

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

Parâmetros

[in] pszDeviceId

O endereço lógico ou físico do dispositivo. Um endereço lógico é do formato urn:uuid:{guid}. Um endereço físico é um URI prefixado por http ou https. Se esse endereço for um URI prefixado por https, o proxy usará o protocolo SSL/TLS.

Se pszDeviceId ou pszLocalId for uma URL prefixada por https, ambas as URLs deverão ser idênticas. Se esse não for o caso, WSDCreateDeviceProxyAdvanced retornará E_INVALIDARG.

O endereço do dispositivo pode ser prefixado com o caractere @ . Quando pszDeviceId começa com @, essa função não recupera os metadados do dispositivo ao criar o proxy do dispositivo.

pDeviceAddress

Uma interface IWSDAddress que define o endereço de transporte do dispositivo. Quando pDeviceAddress é especificado, um proxy de dispositivo pode ser criado sem exigir a resolução de um endereço lógico passado para pszDeviceId. Esse parâmetro pode ser NULL.

[in] pszLocalId

O endereço lógico ou físico do cliente, que é usado para identificar o proxy e para atuar como um ponto de extremidade do coletor de eventos. Um endereço lógico é do formato urn:uuid:{guid}.

Se o cliente usar um canal seguro para receber eventos, o endereço será um URI prefixado por https. Esse URI deve especificar a porta 5358, pois essa porta é reservada para conexões seguras com o WSDAPI. A porta deve ser configurada com um certificado de servidor SSL antes de chamar WSDCreateDeviceProxyAdvanced. Para obter mais informações sobre a configuração de porta, consulte HttpSetServiceConfiguration.

[in] pContext

Uma interface IWSDXMLContext que define tipos de mensagem ou namespaces personalizados.

Se FOR NULL, um contexto padrão que representa os tipos de mensagens internos e namespaces será usado.

[out] ppDeviceProxy

Ponteiro para a interface IWSDDeviceProxy que você usa para representar um dispositivo WSD remoto para aplicativos cliente e middleware.

Valor retornado

Os valores retornados possíveis incluem, mas não se limitam a:

Código de retorno Descrição
S_OK
Método concluído com êxito.
E_INVALIDARG
pszDeviceId é NULL, pszLocalId é NULL, o comprimento em caracteres de pszDeviceId excede WSD_MAX_TEXT_LENGTH (8192), o comprimento em caracteres de pszLocalId excede WSD_MAX_TEXT_LENGTH (8192) ou pszDeviceId aponta para um URI prefixado por https e essa URL não corresponde ao URI passado para pszLocalId.
E_POINTER
ppDeviceProxy é NULL.
E_OUTOFMEMORY
Memória insuficiente para concluir a operação.

Comentários

A função WSDCreateDeviceProxyAdvanced chama o método IWSDDeviceProxy::Init , que inicializa uma instância de um objeto IWSDDeviceProxy .

Essa função também recuperará os metadados do dispositivo, a menos que o parâmetro pszDeviceId comece com o caractere @ . Para recuperar metadados do dispositivo após a criação do proxy do dispositivo, chame IWSDDeviceProxy::BeginGetMetadata e IWSDDeviceProxy::EndGetMetadata no objeto IWSDDeviceProxy retornado.

Para obter informações sobre como solucionar problemas de chamadas de função WSDCreateDeviceProxyAdvanced , consulte Solução de problemas de aplicativos WSDAPI.

Requisitos

   
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho wsdclient.h (include Wsdapi.h)
Biblioteca Wsdapi.lib
DLL Wsdapi.dll

Confira também

Solução de problemas de aplicativos WSDAPI