C28717
предупреждение C28717: недопустимый тип VARIANT
Поле vtструктуры VARIANT может принимать только определенные значения. Присвоение ему любого другого значения является ошибкой.
Поле vt структуры VARIANT или VARIANTARG может принимать только следующие значения (возможно, задано по VT_BYREF и (или) 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_UNKNOWNVT_I1, VT_UI1, VT_UI2, VT_UI4, VT_INTVT_UINT (VT_EMPTY и VT_NULL нельзя объединить с VT_ARRAY).
Пример
PREfast сообщает предупреждение для следующего примера.
VARIANT var;
var.vt = VT_SAFEARRAY | VT_INT;
В следующем примере показано, как избежать ошибки.
VARIANT var;
var.vt = VT_ARRAY | VT_INT;