Descrever um caminho de objeto de instância

Um caminho de objeto de instância descreve o local de uma instância de uma determinada classe em um namespace específico.

Você pode ter vários tipos diferentes de caminhos de objeto de instância:

  • Completo

    Um caminho completo de objeto de instância anexa o nome e o valor da propriedade de chave da classe a um caminho completo de objeto de classe.

    O exemplo a seguir mostra a definição do caminho completo do objeto de instância.

    \\Server\Namespace:Class.KeyName="KeyValue"
    
  • Relativo

    Um caminho relativo do objeto refere-se a uma instância localizada no namespace atual no servidor atual. O caminho relativo consiste no nome da classe seguido pelos nomes e valores das propriedades de chave dessa instância.

    O exemplo a seguir mostra a definição do caminho relativo do objeto de instância.

    MyClass.MyProp="e:"
    
  • Relativo com uma única chave

    Para classes com apenas uma propriedade designada como chave, você pode omitir o nome da propriedade de chave.

    O exemplo a seguir mostra a definição do caminho relativo do objeto de instância com uma única chave.

    MyClass="e:"
    
  • Relativo com várias chaves

    Use a vírgula para distinguir entre as chaves de uma instância com múltiplas chaves.

    O exemplo a seguir mostra as definições do caminho relativo do objeto de instância com várias chaves.

    MyOtherClass.FirstKey=1,SecondKey=2
    
  • Relativo para uma classe singleton

    O caminho do objeto relativo para uma classe singleton consiste no nome da classe seguido pela notação "=@".

    O exemplo a seguir mostra a definição do caminho relativo do objeto de instância para uma classe singleton.

    MySingletonClass=@
    

O procedimento a seguir descreve como recuperar uma instância de classe.

Para recuperar uma instância de classe

  1. Inicialize uma cadeia de caracteres que contém o caminho do objeto com uma chamada para a função SysAllocString.

  2. Inicialize um objeto que receberá a instância.

  3. Recupere o objeto com uma chamada para IWbemServices::GetObject ou IWbemServices::GetObjectAsync.

    Para usar GetObjectAsync, você deve implementar a interface IWbemSink.

A instrução #include a seguir é necessária para que o código listado posteriormente neste tópico seja compilado corretamente.

#include <wbemidl.h>

O exemplo de código a seguir descreve como recuperar uma instância de classe usando um caminho de objeto.

IWbemServices* pWbemSvcs = 0;

BSTR Path = SysAllocString(L"ComPort=2");    
IWbemClassObject *pComPort = 0;
pWbemSvcs->GetObject(Path, 0, 0, &pComPort, 0);

Para instâncias de classes que especificam várias propriedades como a chave, o WMI não exige nenhuma ordenação específica de propriedades de chave nos caminhos de objeto. Você só precisa especificar o valor de cada uma das propriedades no caminho do objeto.

O exemplo de código a seguir apresenta duas descrições de chave equivalentes.

MyClass.IntVal=33,StrVal="AAA"
MyClass.StrVal="AAA",IntVal=33