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
Inicialize uma cadeia de caracteres que contém o caminho do objeto com uma chamada para a função SysAllocString.
Inicialize um objeto que receberá a instância.
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