インスタンスの継承の変更

ある親クラスの子として作成したインスタンスを、親クラスを変更して別の親クラスの子にしなければならない状況になる場合があります。 たとえば、手動サービスを記述する派生クラス ManualService と、自動サービスを記述する派生クラス AutoService があるとします。 どちらのクラスにも多数のプロパティがあります。 すべてのプロパティが同一であるわけではありません。 サービスを手動から自動に変更するには、サービスを表すインスタンスも ManualService から AutoService に変更する必要があります。 現在のバージョンの WMI では、AutoService のインスタンスを指す pInst パラメーターと ManualService インスタンスを記述するキー プロパティを使用して、IWbemServices::PutInstance メソッドを呼び出すことはできません。 そうした場合、元の ManualService インスタンスが暗黙的に削除されます。 基本的には、インスタンスのクラスを確立した後は、インスタンスを削除して新しい親クラスのインスタンスとして再作成することによってのみ、インスタンスの親クラスを変更できます。

次の手順では、あるクラスから別のクラスにインスタンスを移動する方法について説明します。

あるクラスから別のクラスにインスタンスを移動するには

  1. 元のクラスからインスタンスを削除します。

  2. 新しいクラスでインスタンスを作成します。

    WMI では、アプリケーションでインスタンスを新しいクラスに作成してから、元のインスタンスのキーで更新することで、インスタンスを移動させることはできません。

詳細については、「クラスとインスタンスの情報の操作」を参照してください。