macro IID_PPV_ARGS (combaseapi.h)

Usato per recuperare un puntatore dell'interfaccia, specificando il valore IID dell'interfaccia richiesta automaticamente in base al tipo del puntatore dell'interfaccia usato. In questo modo si evita un errore di codifica comune controllando il tipo del valore passato in fase di compilazione.

Sintassi

void IID_PPV_ARGS(
   ppType
);

Parametri

ppType

Indirizzo di un puntatore dell'interfaccia il cui tipo T viene usato per determinare il tipo di oggetto richiesto. La macro restituisce il puntatore dell'interfaccia tramite questo parametro.

Valore restituito

nessuno

Osservazioni

Una sintassi comune nei metodi che recuperano un puntatore di interfaccia (in particolare QueryInterface e CoCreateInstance) include due parametri:

  • Parametro [in], normalmente di tipo REFIID, per specificare l'IID dell'interfaccia da recuperare.
  • Parametro [out], normalmente di tipo void**, per ricevere il puntatore dell'interfaccia.
Questa macro calcola l'IID in base al tipo di puntatore dell'interfaccia, che impedisce errori di codifica in cui il tipo di puntatore di interfaccia e IID non corrisponde. Gli sviluppatori di Windows devono sempre usare questa macro con qualsiasi metodo che richiede parametri di IID e puntatore dell'interfaccia separati.

Anche se Windows 7 è la prima inclusione di questa macro in un'intestazione pubblica, può essere usata nei sistemi meno recenti definendola manualmente nelle intestazioni del progetto o nel codice sorgente.

Nell'esempio seguente viene illustrato l'uso di IID_PPV_ARGS per creare l'oggetto archivio delle proprietà di memoria usando IPropertyStore.

IPropertyStore *pPropertyStore;

CoCreateInstance(CLSID_PropertyStore, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&pPropertyStore));

Requisiti

Requisito Valore
Client minimo supportato Windows 7 [solo app desktop]
Server minimo supportato Windows Server 2008 R2 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione combaseapi.h