Je ne connais pas du tout WMI, et je suppose qu'un simple transtypage ne fonctionne pas?

//WmiProperty := IUnknown(ArrayVariant) as SWBemProperty;
WmiProperty = (SWBemProperty*)...