Modification de l’héritage d’une instance

Vous pouvez trouver une situation où une instance qui a été créée en tant qu’enfant d’une classe parente doive changer de classe pour devenir l’enfant d’une autre classe parente. Par exemple, vous pouvez avoir une classe dérivée, ManualService, décrivant un service manuel, et une classe dérivée, AutoService, décrivant un service automatique. Les deux classes ont un grand nombre de propriétés. Toutes les propriétés ne sont pas identiques. Pour passer d’un service manuel à un service automatique, vous devez également modifier l’instance représentant le service de ManualService à AutoService. Dans la version actuelle de WMI, vous ne pouvez pas appeler la méthode IWbemServices::PutInstance avec le paramètre pInst indiquant une instance AutoService et les propriétés clés décrivant le instance ManualService. Si c’est le cas, vous supprimez implicitement l’instance ManualService d’origine. En fait, après avoir établi la classe d’une instance, vous ne pouvez modifier sa classe parente qu’en supprimant cette instance et en la recréant en tant qu’instance de la nouvelle classe parente.

La procédure suivante décrit comment déplacer une instance d’une classe vers une autre.

Pour déplacer un instance d’une classe vers une autre

  1. Supprimez l’instance de la classe d’origine.

  2. Créez l’instance sous la nouvelle classe.

    WMI n’autorise pas les applications à déplacer une instance en la créant dans une nouvelle classe, puis en la mettant à jour avec la clé de l’instance d’origine.

Pour plus d’informations, consultez Manipulation des informations sur les classes et instances.