Condividi tramite


Metodo IFunctionDiscoveryProvider::Query (functiondiscoveryprovider.h)

[Individuazione funzioni è disponibile per l'uso nei sistemi operativi specificati nella sezione Requisiti. Può essere modificato o non disponibile nelle versioni successive.

Recupera una raccolta di istanze di funzione che soddisfano i vincoli specificati.

Sintassi

HRESULT Query(
  [in]  IFunctionDiscoveryProviderQuery *pIFunctionDiscoveryProviderQuery,
  [out] IFunctionInstanceCollection     **ppIFunctionInstanceCollection
);

Parametri

[in] pIFunctionDiscoveryProviderQuery

Puntatore a un'interfaccia IFunctionDiscoveryProviderQuery che contiene parametri che definiscono i criteri di query.

[out] ppIFunctionInstanceCollection

Puntatore a un'interfaccia IFunctionInstanceCollection che il provider deve usare per restituire le istanze di funzione in modo sincrono in risposta alla query specificata.

Quando si implementa il metodo Query , è possibile impostare questo parametro su NULL se il provider supporta le notifiche, ovvero il provider restituisce i risultati in modo asincrono. I risultati asincroni devono essere restituiti usando l'interfaccia IFunctionDiscoveryNotification passata al metodo Initialize del provider.

Se l'applicazione client non ha implementato le notifiche, può passare un parametro NULL .

Valore restituito

I valori restituiti possibili includono, ma non sono limitati a, quanto segue.

Codice restituito Descrizione
S_OK
Il metodo è stato completato correttamente e i risultati vengono restituiti in modo sincrono.
E_INVALIDARG
Il parametro pIFunctionDiscoveryProviderQuery è NULL.
E_PENDING
Il metodo è stato completato correttamente e i risultati vengono restituiti in modo asincrono.

Commenti

Una query attiva viene terminata da Individuazione funzione con una chiamata al metodo EndQuery . Si noti che EndQuery verrà chiamato solo se il client ha specificato un'interfaccia IFunctionDiscoveryNotification per la query. Se non è stato specificato un oggetto IFunctionDiscoveryNotification , la query deve essere considerata terminata dal provider dopo il completamento della chiamata di query .

Un client può eseguire nuovamente una query in qualsiasi momento dopo la restituzione della chiamata query precedente. L'implementazione di Query deve essere in grado di restituire un oggetto IFunctionInstanceCollection per la nuova query. EndQuery verrà chiamato solo prima di una chiamata query successiva quando un client ha passato un'interfaccia IFunctionDiscoveryNotification passata al metodo Initialize del provider.

Se Query restituisce E_PENDING, il provider deve chiamare il metodo OnEvent dell'interfaccia IFunctionDiscoveryNotification con FD_EVENTID_SEARCHCOMPLETE per indicare che l'enumerazione dei risultati è completa. Non è possibile inviare l'evento FD_EVENTID_SEARCHCOMPLETE in modo indefinito ai client

Requisiti

Requisito Valore
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2008 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione functiondiscoveryprovider.h

Vedi anche

IFunctionDiscoveryProvider