| Предыдущий | Следующий |
| MF_E_TRANSFORM_PROPERTY_NOT_WRITEABLE | MF_E_TRANSFORM_PROPERTY_VALUE_SIZE_WRONG |
MF_E_TRANSFORM_PROPERTY_ARRAY_VALUE_WRONG_NUM_DIM
Что означает MF_E_TRANSFORM_PROPERTY_ARRAY_VALUE_WRONG_NUM_DIM
MF_E_TRANSFORM_PROPERTY_ARRAY_VALUE_WRONG_NUM_DIM (0xC00D6D69) — Массив в значении свойства MFT имеет неправильное число измерений.
Свойства кодека часто передаются через VARIANT, а массивы — через SAFEARRAY. Размер массива в байтах и число элементов не описывают его форму полностью: одномерный список и двумерная матрица с тем же количеством элементов имеют разные дескрипторы.
Что проверить
- Запишите
VARIANT.vt, флаг массива и тип элементов перед вызовом свойства. - Через
SafeArrayGetDimполучите число измерений, а черезSafeArrayGetLBound/SafeArrayGetUBound— границы каждого из них. - Сравните форму массива с документацией именно этого GUID свойства или с корректным значением, возвращённым тем же MFT.
- Не увеличивайте просто число байтов: неправильное число измерений находится в дескрипторе SAFEARRAY, а не в размере выделенной памяти.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.
