Описание пути к объекту экземпляра
Путь к объекту экземпляра описывает расположение экземпляра заданного класса в определенном пространстве имен.
У вас может быть несколько разных типов путей к объектам экземпляров:
Полное
Полный путь к объекту экземпляра добавляет имя и значение свойства ключа для класса в полный путь к объекту класса.
В следующем примере показано определение полного пути к объекту экземпляра.
\\Server\Namespace:Class.KeyName="KeyValue"
Относительное значение
Относительный путь к объекту относится к экземпляру, расположенному в текущем пространстве имен на текущем сервере. Относительный путь состоит из имени класса, за которым следуют имена и значения ключевых свойств этого экземпляра.
В следующем примере показано определение пути к объекту относительного экземпляра.
MyClass.MyProp="e:"
Относительное с помощью одного ключа
Для классов, имеющих только одно свойство, назначенное в качестве ключа, можно опустить имя свойства ключа.
В следующем примере показано определение пути к объекту относительного экземпляра с одним ключом.
MyClass="e:"
Относительный с несколькими ключами
Используйте запятую, чтобы различать ключи экземпляра с несколькими ключами.
В следующем примере показаны определения пути к объекту относительного экземпляра с несколькими ключами.
MyOtherClass.FirstKey=1,SecondKey=2
Относительный для одноэлементного класса
Относительный путь к объекту для одноэлементного класса состоит из имени класса, за которым следует нотация "=@".
В следующем примере показано определение пути к объекту относительного экземпляра для одноэлементного класса.
MySingletonClass=@
В следующей процедуре описывается, как получить экземпляр класса.
Получение экземпляра класса
Инициализируйте строку, содержащую путь к объекту, с помощью вызова функции SysAllocString .
Инициализируйте объект , который получит экземпляр .
Получите объект с помощью вызова IWbemServices::GetObject или IWbemServices::GetObjectAsync.
Чтобы использовать GetObjectAsync, необходимо реализовать интерфейс IWbemSink .
Для правильной компиляции кода, указанного далее в этом разделе, требуется следующая инструкция #include.
#include <wbemidl.h>
В следующем примере кода описывается, как получить экземпляр класса с помощью пути к объекту.
IWbemServices* pWbemSvcs = 0;
BSTR Path = SysAllocString(L"ComPort=2");
IWbemClassObject *pComPort = 0;
pWbemSvcs->GetObject(Path, 0, 0, &pComPort, 0);
Для экземпляров классов, указывающих несколько свойств в качестве ключа, инструментарий WMI не требует определенного порядка свойств ключей в путях к объектам. Необходимо указать только значение каждого свойства в пути к объекту.
В следующем примере кода описываются два эквивалентных описания ключей.
MyClass.IntVal=33,StrVal="AAA"
MyClass.StrVal="AAA",IntVal=33