C28717
avertissement C28717 : Type VARIANT non valide
Le champ vt d’un struct VARIANT ne peut prendre que certaines valeurs. L’affectation d’une autre valeur à celle-ci est une erreur.
Le champ vt d’un struct VARIANT ou VARIANTARG ne peut prendre que les valeurs suivantes (éventuellement ORed par VT_BYREF et/ou VT_ARRAY) : VT_EMPTY, VT_NULL, VT_I2, VT_I4, VT_R4, VT_R8, VT_CY, VT_DATE, VT_BSTR, VT_DISPATCH, VT_ERROR, VT_BOOL, VT_VARIANT, VT_DECIMAL, VT_RECORD, VT_UNKNOWN, VT_I1, VT_UI1, VT_UI2, VT_UI4, VT_INT, VT_UINT (VT_EMPTY et VT_NULL ne peuvent pas être combinés avec VT_ARRAY).
Exemple
PREfast signale l’avertissement pour l’exemple suivant.
VARIANT var;
var.vt = VT_SAFEARRAY | VT_INT;
L’exemple suivant évite l’erreur.
VARIANT var;
var.vt = VT_ARRAY | VT_INT;