Condividi tramite


Metodo IFunctionDiscoveryProvider::InstanceQueryService (functiondiscoveryprovider.h)

[L'individuazione delle funzioni è disponibile per l'uso nei sistemi operativi specificati nella sezione Requisiti. Potrebbe essere modificato o non disponibile nelle versioni successive.]

Crea un oggetto COM specifico del provider per l'istanza della funzione. I writer del provider possono implementare questo metodo per offrire funzionalità aggiuntive tramite l'oggetto COM.

Sintassi

HRESULT InstanceQueryService(
  [in]  IFunctionInstance *pIFunctionInstance,
  [in]  INT_PTR           iProviderInstanceContext,
  [in]  REFGUID           guidService,
  [in]  REFIID            riid,
  [out] IUnknown          **ppIUnknown
);

Parametri

[in] pIFunctionInstance

Puntatore all'interfaccia IFunctionInstance .

[in] iProviderInstanceContext

Contesto associato all'istanza della funzione specifica.

[in] guidService

Identificatore univoco del servizio (SID). Si tratta dell'ID servizio definito dal writer del provider. Per un esempio, vedere FunctionDiscoveryServiceIDs.h.

[in] riid

Identificatore univoco dell'interfaccia che il chiamante desidera ricevere per il servizio.

[out] ppIUnknown

Puntatore che riceve il puntatore di interfaccia del servizio. Il chiamante è responsabile della chiamata a Release tramite questo puntatore di interfaccia quando il servizio non è più necessario.

Valore restituito

I valori restituiti possibili includono, ma non sono limitati ai valori seguenti.

Codice restituito Descrizione
S_OK
Metodo completato correttamente.
E_NOINTERFACE
Il provider implementa il servizio identificato da guidService ma non implementa l'interfaccia identificata da rrid.
E_OUTOFMEMORY
Il metodo non è in grado di allocare la memoria necessaria per eseguire questa operazione.
E_NOTIMPL
Il provider non implementa il metodo IFunctionInstance::QueryService o l'identificatore del servizio specificato da guidService non corrisponde all'identificatore del servizio del provider.

Commenti

InstanceQueryService crea o accede all'implementazione del servizio identificato con guidService, restituendo l'indirizzo dell'interfaccia specificata da riid nell'argomento ppv . I provider possono implementare il servizio e questo metodo fornisce al provider un meccanismo per fornire questa implementazione, quindi richiedendo la creazione di un nuovo oggetto per implementare il servizio.

Il provider deve restituire E_NOINTERFACE se il guidService non appartiene a questo provider o l'interfaccia riid non è supportata. Il provider deve restituire E_NOTIMPL se semplicemente non implementa questo metodo o non implementa il SID richiesto.

Qualsiasi provider che supporta servizi o dispositivi incorporati deve implementare il servizio SID_PNPXServiceCollection. Se il servizio SID_PNPXServiceCollection è supportato, il client può chiamare IFunctionInstance::QueryService per accedere alle informazioni e ai metadati associati ai servizi o ai dispositivi incorporati. Ad esempio, i provider PnP-X (ovvero il provider SSDP e il provider WSD) implementano il supporto per il servizio SID_PNPXServiceCollection. Non tutti i provider implementano il supporto del servizio SID_PNPXServiceCollection.

Requisiti

   
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