IID_PPV_ARGS Makro (combaseapi.h)

Wird zum Abrufen eines Schnittstellenzeigers verwendet, wobei der IID-Wert der angeforderten Schnittstelle automatisch basierend auf dem Typ des verwendeten Schnittstellenzeigers bereitgestellt wird. Dadurch wird ein häufiger Codierungsfehler vermieden, indem der Typ des zur Kompilierzeit übergebenen Werts überprüft wird.

Syntax

void IID_PPV_ARGS(
   ppType
);

Parameter

ppType

Eine Adresse eines Schnittstellenzeigers, dessen Typ T verwendet wird, um den Typ des angeforderten Objekts zu bestimmen. Das Makro gibt den Schnittstellenzeiger über diesen Parameter zurück.

Rückgabewert

Keine

Bemerkungen

Eine gängige Syntax in Methoden zum Abrufen eines Schnittstellenzeigers (insbesondere QueryInterface und CoCreateInstance) umfasst zwei Parameter:

  • Ein [in]-Parameter vom Typ REFIID, um die IID der abzurufenden Schnittstelle anzugeben.
  • Ein [out]-Parameter,normalerweise vom Typ void**, um den Schnittstellenzeiger zu empfangen.
Dieses Makro berechnet die IID basierend auf dem Typ des Schnittstellenzeigers, wodurch Codierungsfehler verhindert werden, bei denen der IiD- und der Schnittstellenzeigertyp nicht übereinstimmen. Windows-Entwickler sollten dieses Makro immer mit jeder Methode verwenden, die separate IID- und Schnittstellenzeigerparameter erfordert.

Während Windows 7 die erste Aufnahme dieses Makros in einen öffentlichen Header ist, kann es auf älteren Systemen verwendet werden, indem es manuell in Ihren Projektheadern oder im Quellcode definiert wird.

Das folgende Beispiel zeigt die Verwendung von IID_PPV_ARGS zum Erstellen des Speicherobjekts der Speichereigenschaft mithilfe von IPropertyStore.

IPropertyStore *pPropertyStore;

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

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 7 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 R2 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile combaseapi.h