макрос IID_PPV_ARGS (combaseapi.h)
Используется для получения указателя интерфейса, автоматически предоставляющего значение IID запрошенного интерфейса в зависимости от типа используемого указателя интерфейса. Это позволяет избежать распространенных ошибок кода, проверяя тип значения, передаваемого во время компиляции.
Синтаксис
void IID_PPV_ARGS(
ppType
);
Параметры
ppType
Адрес указателя интерфейса, тип T которого используется для определения типа запрашиваемого объекта. Макрос возвращает указатель интерфейса через этот параметр.
Возвращаемое значение
None
Remarks
Распространенный синтаксис в методах, которые извлекают указатель интерфейса (в первую очередь QueryInterface и CoCreateInstance), включает два параметра:
- Параметр [in], обычно имеющий тип REFIID, чтобы указать IID извлекаемого интерфейса.
- Параметр [out], как правило, типа void**, для получения указателя интерфейса.
Хотя Windows 7 является первым включением этого макроса в общедоступный заголовок, его можно использовать в старых системах, определив его вручную в заголовках проекта или исходном коде.
В следующем примере показано использование IID_PPV_ARGS для создания объекта хранилища свойств памяти с помощью IPropertyStore.
IPropertyStore *pPropertyStore;
CoCreateInstance(CLSID_PropertyStore, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&pPropertyStore));
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 7 [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 R2 [только классические приложения] |
Целевая платформа | Windows |
Header | combaseapi.h |