| Предыдущий | Следующий |
| ERROR_MARSHALL_OVERFLOW | ERROR_BAD_COMPRESSION_BUFFER |
ERROR_INVALID_VARIANT
Что означает ERROR_INVALID_VARIANT
ERROR_INVALID_VARIANT означает, что структура VARIANT не соответствует допустимому Automation representation: vt, активное union field или связанные указатели/descriptor противоречат друг другу. Это не ошибка значения бизнес-данных сама по себе.
Что проверить
- Сохраните raw
vtи соответствующее union member до передачи через COM boundary. - Проверьте
VT_BYREF,VT_ARRAY, SAFEARRAY descriptor и lifetime referenced memory. - Убедитесь, что обе стороны используют совместимые packing/ABI и инициализацию
VariantInit.
Как исправить
Формируйте VARIANT строго по заявленному type tag и очищайте его VariantClear только после завершения consumer call. Не меняйте vt отдельно от union content: это и создаёт malformed representation.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.
