Partager via


macro IID_PPV_ARGS (combaseapi.h)

Utilisé pour récupérer un pointeur d’interface, fournissant automatiquement la valeur IID de l’interface demandée en fonction du type du pointeur d’interface utilisé. Cela évite une erreur de codage courante en vérifiant le type de la valeur passée au moment de la compilation.

Syntaxe

void IID_PPV_ARGS(
   ppType
);

Paramètres

ppType

Adresse d’un pointeur d’interface dont le type T est utilisé pour déterminer le type d’objet demandé. La macro retourne le pointeur d’interface via ce paramètre.

Valeur de retour

None

Remarques

Une syntaxe courante dans les méthodes qui récupèrent un pointeur d’interface (notamment QueryInterface et CoCreateInstance) comprend deux paramètres :

  • Paramètre [in], normalement de type REFIID, pour spécifier l’IID de l’interface à récupérer.
  • Paramètre [out], normalement de type void**, pour recevoir le pointeur d’interface.
Cette macro calcule l’IID en fonction du type de pointeur d’interface, ce qui empêche les erreurs de codage dans lesquelles l’IID et le type de pointeur d’interface ne correspondent pas. Les développeurs Windows doivent toujours utiliser cette macro avec n’importe quelle méthode qui nécessite des paramètres IID et de pointeur d’interface distincts.

Bien que Windows 7 soit la première inclusion de cette macro dans un en-tête public, elle peut être utilisée sur des systèmes plus anciens en la définissant manuellement dans les en-têtes de votre projet ou le code source.

L’exemple suivant montre l’utilisation de IID_PPV_ARGS pour créer l’objet de magasin de propriétés mémoire à l’aide d’IPropertyStore.

IPropertyStore *pPropertyStore;

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

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 7 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 R2 [applications de bureau uniquement]
Plateforme cible Windows
En-tête combaseapi.h