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++

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);
    };