修飾子の種類を使用した修飾子の記述

"修飾子の種類" とは、ある修飾子に関する詳細情報を記述するフラグのことです。 たとえば、修飾子の種類 Restricted は、関連する修飾子を派生クラスまたはインスタンスに伝達しないように WMI に指定します。 種類は、MOF コードまたはプログラムのいずれかを使用して設定できます。 種類を使用してさまざまな効果を記述できますが、種類フラグの主な目的は、WMI による継承を使用した修飾子の伝達方法を定義することです。

WMI には、元の修飾子に関係なく、任意の修飾子にアタッチできる修飾子の種類が複数定義されています。 ただし、種類によっては、どのような型の修飾子にも適しているとは限りません。 たとえば、種類 ToSubClass は、クラスに対して定義された修飾子にのみ適しています。 インスタンスを記述するために使用される修飾子に ToSubClass をアタッチすることはできません。

種類を使用して、修飾子のさまざまな効果を記述できます。 たとえば、種類を使用して、修飾子がローカライズ可能であるかどうかを示すことができます。 ただし、修飾子の種類の主な目的の 1 つは、親クラスからサブクラスまたはクラス インスタンスに修飾子を渡すことができるかどうかを記述することです。 また、種類を使用して、クラス プロパティからインスタンス プロパティに修飾子を渡すかどうかを決めることもできます。 最後に、種類を使用して、継承された修飾子の元の値をサブクラスでオーバーライドできるかどうかを指定します。 ただし、クラスまたはインスタンスに対して宣言した修飾子は、そのクラスまたはインスタンスのプロパティには反映されません。 さらに、オーバーライドのアクセス許可を確立する種類は、種類 ToInstance または ToSubClass も設定した場合にのみ有効です。

次の構文を使用して、1 つの種類を MOF ファイル全体の修飾子にグローバルに割り当てることができます。この構文では、複数の種類が指定されていると、空白が区切り記号として機能します。

Qualifier QualifierName : flavor1 <flavor2...>;

グローバルな種類は、MOF ファイル内の修飾子の後続のすべての使用に適用されます。 グローバルな種類のステートメントは、1 つのオブジェクト宣言ブロックの外側にあるファイル内のあらゆる場所で発生する可能性があります。 クラス、インスタンス、またはプロパティ レベルで再定義された種類は、そのオブジェクトのスコープのグローバルな種類の宣言をオーバーライドします。

新しい種類を定義することはできません。 新しい修飾子を作成することはできますが、新しい修飾子を記述するのに、既存の修飾子の種類のみを使用してください。

MOF で修飾子の種類を定義するには

  • 指定された修飾子を記述する種類を、その修飾子名の後の、修飾子の角かっこの間に宣言します。 複数の種類の間の区切り記号として空白を使用します。

    次の例は、定義済みの修飾子をアタッチするパターンを示しています。

    [qualifier1 : flavor1 flavor2 flavor3, qualifier2 : flavor1]
    

修飾子の種類をプログラムで追加できるのは、C++ を使用している場合のみです。 この操作は WMI 用スクリプト API では使用できませんが、SWbemQualifierSet.Add を呼び出すことで新しい修飾子を追加できます。

C++ を使用して種類を割り当てるには

  • IWbemQualifierSet::Put メソッドを、そのメソッドに対して定義されている定数のいずれかに lFlavor パラメーターを設定して呼び出します。