Metodo IUPnPDescriptionDocument::LoadAsync (upnp.h)
Il metodo LoadAsync carica un documento in modo asincrono. Questo metodo restituisce immediatamente il controllo al chiamante e usa il callback specificato per notificare al chiamante al termine dell'operazione.
Sintassi
HRESULT LoadAsync(
[in] BSTR bstrUrl,
[in] IUnknown *punkCallback
);
Parametri
[in] bstrUrl
Specifica l'URL del documento da caricare. Se l'URL specificato è un URL relativo, il nome del server viene anteporto al valore di bstrUrl.
[in] punkCallback
Riferimento a un IUnknown che specifica il callback usato dal framework UPnP per notificare al chiamante al termine dell'operazione. Se l'operazione di caricamento non ha avuto esito negativo immediatamente, questo callback indica se l'operazione di caricamento ha avuto esito positivo o negativo. L'oggetto a cui fa riferimento pUnkCallback deve supportare l'interfaccia IUPnPDescriptionDocumentCallback o l'interfaccia IDispatch .
Valore restituito
Se il metodo ha esito positivo, il valore restituito viene S_OK. In caso contrario, il metodo restituisce uno dei codici di errore COM definiti in WinError.h o uno dei valori restituiti UPnP seguenti.
Codice restituito | Descrizione |
---|---|
|
Il documento XML non dispone di un elemento del dispositivo Mancante dall'elemento radice o dall'elemento DeviceList . |
|
Il documento XML manca uno degli elementi necessari dall'elemento Device . |
|
Il documento XML non dispone di un elemento icona. Manca nell'elemento IconList o l'elemento DeviceList non contiene un elemento IconList . |
|
Il documento XML non contiene uno degli elementi necessari dall'elemento Icon . |
|
Il documento XML non dispone di un elemento radice al livello superiore del documento. |
|
Il documento XML non dispone di un elemento di servizio. Manca nell'elemento ServiceList o l'elemento DeviceList non contiene un elemento ServiceList . |
|
Il documento XML non contiene uno degli elementi necessari dall'elemento Service . |
Commenti
Questo metodo non deve essere chiamato da un thread dell'interfaccia utente perché può richiedere molto tempo per la restituzione del metodo.
Se si richiama questo metodo per lo stesso oggetto immediatamente dopo una chiamata precedente, la prima chiamata di LoadAsync viene interrotta. Per evitare questo problema, attendere il callback IUPnPDescriptionDocumentCallback::LoadComplete e quindi usare LoadResult per visualizzare le informazioni sullo stato.
Se il metodo LoadAsync viene chiamato da uno script all'interno di una pagina Web, bstrUrl potrebbe essere un URL relativo. L'indirizzo della pagina Web corrente viene usato come URL di base.
Se questo metodo viene chiamato da una pagina Web, l'URL specificato dal chiamante deve fare riferimento allo stesso server da cui è stata caricata la pagina Web.
L'oggetto a cui fa riferimento pUnkCallback deve supportare l'interfaccia IUPnPDescriptionDocumentCallback o l'interfaccia IDispatch . Il metodo LoadAsync esegue innanzitutto una query pUnkCallback per l'interfaccia IUPnPDescriptionDocumentCallback . Se questa interfaccia non è supportata, il metodo LoadAsync esegue una query su pUnkCallback per l'interfaccia IDispatch . Se l'interfaccia IDispatch non è supportata, entrambi i controlli non sono riusciti e il metodo LoadAsync restituisce E_FAIL.
Il callback basato su IDispatch per il metodo LoadAsync funziona come funzione script che accetta un solo parametro. Questo parametro è il risultato dell'operazione di caricamento. Se il parametro è zero, il caricamento è riuscito e l'utente può recuperare gli oggetti dispositivo dal documento. Se il parametro è diverso da zero, descrive l'errore. Il valore corrisponde al codice di errore restituito dal metodo IUPnPDescriptionDocument::Load .
Nel software di sviluppo Visual Basic Scripting Edition (VBScript), il secondo argomento deve essere GetRef(funcname), dove funcname è il nome della subroutine di callback.
Se questa funzione restituisce S_OK, IUPnPDescriptionDocumentCallback::LoadComplete viene richiamato dal framework UPnP.
Requisiti
Client minimo supportato | Windows XP [solo app desktop] |
Server minimo supportato | Nessuno supportato |
Piattaforma di destinazione | Windows |
Intestazione | upnp.h |
DLL | Upnp.dll |