Aplicando um qualificador
Como muitas outras técnicas no MOF (Managed Object Format), aplicar um qualificador ao seu código é um processo relativamente simples.
Os únicos desafios reais são as seguintes restrições nas convenções de nomenclatura que o WMI impõe:
Um qualificador pode descrever uma classe, instância, propriedade, método ou parâmetro de método.
Os nomes de qualificador não podem ter sublinhados à esquerda ou à direita.
Um nome de qualificador não pode começar com um dígito.
Um nome de qualificador não pode conter caracteres especiais, como & * @ ! ~ \ /.
Todos os nomes de qualificador não diferenciam maiúsculas de minúsculas.
Não é possível redefinir os qualificadores do WMI padrão ou quaisquer qualificadores descritos na especificação CIM da DMTF.
Os tipos de qualificador não são declarados explicitamente.
Caso não declare um tipo de qualificador, o WMI assumirá o tipo como booliano com um valor TRUE. Caso contrário, o WMI digita qualificadores com base nos valores do qualificador que você declara.
Ao criar seus próprios qualificadores, você deve prefixar o nome do esquema para o nome do qualificador.
A finalidade dessa regra é evitar confusão com novos qualificadores.
Crie matrizes homogêneas de qualificadores.
O exemplo de código a seguir mostra como as matrizes de qualificador são especificadas com chaves que envolvem os valores.
[StringArray{"hello", "there"}, SingleElementArray{3}]
O WMI não dá suporte a tipos de automação não listados na referência, como VT_NULL. Para mais informações, confira Tipos de Dados do MOF.
O procedimento a seguir ajuda você a usar o C++ para adicionar um qualificador a uma propriedade.
Para aplicar um qualificador usando C++
Aplique o qualificador com uma chamada ao método IWbemQualifierSet::Put.
Use outros métodos de IWbemQualifierSet para recuperar ou excluir qualificadores existentes.
O procedimento a seguir ajuda você a aplicar um qualificador em arquivos do MOF.
Para descrever uma palavra-chave ou identificador com um qualificador usando o MOF
Coloque um qualificador entre colchetes antes do palavra-chave ou identificador descrito pelo qualificador.
O exemplo de código a seguir mostra como os qualificadores são usados.
[qualifiers...] class StdDisk { [qualifiers...] uint32 dwNumCylinders; [qualifiers...] uint32 dwNumHeads; [qualifiers...] sint32 Method1(); sint32 Method2([qualifiers...] Parameter1); };
O exemplo a seguir descreve o posicionamento adequado de qualificadores.
[Abstract] class MyClass { [Amendment, InstanceOf] uint32 dwNumber; sint32 MyMethod ([in] sint32 Param); };