Описание пути к объекту экземпляра

Путь к объекту экземпляра описывает расположение экземпляра заданного класса в определенном пространстве имен.

У вас может быть несколько разных типов путей к объектам экземпляров:

  • Полное

    Полный путь к объекту экземпляра добавляет имя и значение свойства ключа для класса в полный путь к объекту класса.

    В следующем примере показано определение полного пути к объекту экземпляра.

    \\Server\Namespace:Class.KeyName="KeyValue"
    
  • Относительное значение

    Относительный путь к объекту относится к экземпляру, расположенному в текущем пространстве имен на текущем сервере. Относительный путь состоит из имени класса, за которым следуют имена и значения ключевых свойств этого экземпляра.

    В следующем примере показано определение пути к объекту относительного экземпляра.

    MyClass.MyProp="e:"
    
  • Относительное с помощью одного ключа

    Для классов, имеющих только одно свойство, назначенное в качестве ключа, можно опустить имя свойства ключа.

    В следующем примере показано определение пути к объекту относительного экземпляра с одним ключом.

    MyClass="e:"
    
  • Относительный с несколькими ключами

    Используйте запятую, чтобы различать ключи экземпляра с несколькими ключами.

    В следующем примере показаны определения пути к объекту относительного экземпляра с несколькими ключами.

    MyOtherClass.FirstKey=1,SecondKey=2
    
  • Относительный для одноэлементного класса

    Относительный путь к объекту для одноэлементного класса состоит из имени класса, за которым следует нотация "=@".

    В следующем примере показано определение пути к объекту относительного экземпляра для одноэлементного класса.

    MySingletonClass=@
    

В следующей процедуре описывается, как получить экземпляр класса.

Получение экземпляра класса

  1. Инициализируйте строку, содержащую путь к объекту, с помощью вызова функции SysAllocString .

  2. Инициализируйте объект , который получит экземпляр .

  3. Получите объект с помощью вызова 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