Compartilhar via


Método IUPnPDescriptionDocument::LoadAsync (upnp.h)

O método LoadAsync carrega um documento de forma assíncrona. Esse método retorna o controle ao chamador imediatamente e usa o retorno de chamada especificado para notificar o chamador quando a operação for concluída.

Sintaxe

HRESULT LoadAsync(
  [in] BSTR     bstrUrl,
  [in] IUnknown *punkCallback
);

Parâmetros

[in] bstrUrl

Especifica a URL do documento a ser carregado. Se a URL especificada for uma URL relativa, o nome do servidor será anexado ao valor de bstrUrl.

[in] punkCallback

Referência a um IUnknown especificando o retorno de chamada que a estrutura UPnP usa para notificar o chamador quando a operação for concluída. Se a operação de carga não falhar imediatamente, esse retorno de chamada indicará se a operação de carregamento foi bem-sucedida ou falhou. O objeto referido por pUnkCallback deve dar suporte à interface IUPnPDescriptionDocumentCallback ou à interface IDispatch .

Valor retornado

Se o método for bem-sucedido, o valor retornado será S_OK. Caso contrário, o método retornará um dos códigos de erro COM definidos em WinError.h ou um dos seguintes valores retornados UPnP.

Código de retorno Descrição
UPNP_E_DEVICE_ELEMENT_EXPECTED
O documento XML não tem um elemento de dispositivo Ele está ausente no elemento raiz ou no elemento DeviceList .
UPNP_E_DEVICE_NODE_INCOMPLETE
O documento XML não tem um dos elementos necessários do elemento Device .
UPNP_E_ICON_ELEMENT_EXPECTED
O documento XML não tem um elemento de ícone. Ele está ausente do elemento IconList ou o elemento DeviceList não contém um elemento IconList .
UPNP_E_ICON_NODE_INCOMPLETE
O documento XML não tem um dos elementos necessários do elemento Icon .
UPNP_E_ROOT_ELEMENT_EXPECTED
O documento XML não tem um elemento raiz no nível superior do documento.
UPNP_E_SERVICE_ELEMENT_EXPECTED
O documento XML não tem um elemento de serviço. Ele está ausente do elemento ServiceList ou o elemento DeviceList não contém um elemento ServiceList .
UPNP_E_SERVICE_NODE_INCOMPLETE
O documento XML não tem um dos elementos necessários do elemento Service .

Comentários

Esse método não deve ser chamado de um thread de interface do usuário porque pode levar muito tempo para que o método retorne.

Se você invocar esse método para o mesmo objeto imediatamente após uma invocação anterior, a primeira invocação de LoadAsync será anulada. Para evitar isso, aguarde o retorno de chamada IUPnPDescriptionDocumentCallback::LoadComplete e use LoadResult para exibir as informações de estado.

Se o método LoadAsync for chamado por um script em uma página da Web, bstrUrl poderá ser uma URL relativa. O endereço da página da Web atual é usado como a URL base.

Se esse método for chamado de uma página da Web, a URL especificada pelo chamador deverá se referir ao mesmo servidor do qual a página da Web foi carregada.

O objeto referido por pUnkCallback deve dar suporte à interface IUPnPDescriptionDocumentCallback ou à interface IDispatch . O método LoadAsync primeiro consulta pUnkCallback para a interface IUPnPDescriptionDocumentCallback . Se essa interface não tiver suporte, o método LoadAsync consultará pUnkCallback para a interface IDispatch . Se não houver suporte para a interface IDispatch , ambas as verificações falharão e o método LoadAsync retornará E_FAIL.

O retorno de chamada baseado em IDispatch para o método LoadAsync funciona como uma função de script que usa um parâmetro. Esse parâmetro é o resultado da operação de carga. Se o parâmetro for zero, a carga terá êxito e o usuário poderá recuperar objetos de dispositivo do documento. Se o parâmetro não for zero, ele descreverá o erro. O valor é o mesmo que o código de erro que o método IUPnPDescriptionDocument::Load retorna.

No software de desenvolvimento VBScript (Visual Basic Scripting Edition), o segundo argumento deve ser GetRef(funcname), em que funcname é o nome da sub-rotina de retorno de chamada.

Se essa função retornar S_OK, IUPnPDescriptionDocumentCallback::LoadComplete será invocado pela estrutura UPnP.

Requisitos

   
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Nenhum compatível
Plataforma de Destino Windows
Cabeçalho upnp.h
DLL Upnp.dll

Confira também

Iupnpdescriptiondocument

IUPnPDescriptionDocument::Load