Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Used to retrieve an interface pointer, supplying the IID value of the requested interface automatically based on the type of the interface pointer used. This avoids a common coding error by checking the type of the value passed at compile time.
Syntax
void IID_PPV_ARGS(
ppType
);
Parameters
ppType
An address of an interface pointer whose type T is used to determine the type of object being requested. The macro returns the interface pointer through this parameter.
Return value
None
Remarks
A common syntax in methods that retrieve an interface pointer (most notably QueryInterface and CoCreateInstance) includes two parameters:
- An [in] parameter, normally of type REFIID, to specify the IID of the interface to retrieve.
- An [out] parameter, normally of type void**, to receive the interface pointer.
While Windows 7 is the first inclusion of this macro in a public header, it can be used on older systems by defining it manually in your project headers or source code.
The following example shows the use of IID_PPV_ARGS to create the memory property store object using IPropertyStore.
IPropertyStore *pPropertyStore;
CoCreateInstance(CLSID_PropertyStore, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&pPropertyStore));
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows 7 [desktop apps only] |
Minimum supported server | Windows Server 2008 R2 [desktop apps only] |
Target Platform | Windows |
Header | combaseapi.h |