Я использую Microsoft WMI для подключения к пространству имен WMI для стороннего аппаратного API.
Вся инициализация работает отлично. Я установил и запустил COM и подключился к пространству имен WMI. Но когда я вызываю IWbemClassObject :: Next для перечисления членов класса, члены, являющиеся строками, возвращаются как тип VT_NULL. Следующая функция выглядит так:
HRESULT Next(
[in] LONG lFlags,
[out] BSTR *pstrName,
[out] VARIANT *pVal,
[out, optional] CIMTYPE *pvtType,
[out, optional] LONG *plFlavor
);
http://msdn.microsoft.com/en-us/library/aa391453(v=vs.85).aspx
VARIANT - это тип «переменной переменной», который может содержать практически любой встроенный тип C ++. Это перечислитель типа говорит VT_NULL, но в моей голове члены класса должны были быть типа BSTR. Итак, что дает? Значит ли это, что вместо этого я должен запрашивать типы с помощью WQL?
Моя цель - создавать, изменять и удалять экземпляры классов и их членов. Пространство имен WMI является проприетарным для нестандартного оборудования.