| Предыдущий | Следующий |
| TYPE_E_BADMODULEKIND | TYPE_E_DUPLICATEID |
TYPE_E_SIZETOOBIG
Где возник отказ
При результате TYPE_E_SIZETOOBIG (0X800288C5) локализуйте операцию внутри COM Automation type library and ITypeInfo metadata resolution. Практическая граница — размер слишком велик; поздняя обёртка может скрыть исходный command, policy или lifecycle-state.
После изменения IDL/type library проверяйте согласованность 32/64-bit artifacts и imported versions, а не копируйте отдельную DLL как универсальное исправление.
Конкретные признаки из исходного EN-описания
the result is HRESULT 2147649733 ( 0x800288C5 ) from winerror.h.
TYPE_E_BUFFERTOOSMALL concerns caller storage; it means the metadata object itself exceeds the format limit.
capture type or module name; member count; documentation size; generated record layout; TLB size; compiler version.
A code generator emits every database column as methods on one interface; the contract is partitioned into focused interfaces.
Диагностический снимок
- LIBID/version/LCID/SYSKIND и TYPEKIND.
- GUID/MEMBERID/HREFTYPE либо FUNCDESC/TYPEDESC, проверяемые операцией.
- точный LoadTypeLib/ITypeInfo/registration boundary и первый HRESULT.
COM type libraries образуют versioned metadata graph из LIBID, TYPEKIND, GUID, HREFTYPE и imported references; registry registration — только одна из возможных стадий отказа.
Как отделить соседний код
Сравните failing и working trace той же операции. Поле или state, соответствующий «размер слишком велик», должен быть единственным существенным отличием.
Проверьте metadata graph для условия «размер слишком велик»: registration, module kind, member lookup, TYPEKIND и imported library version дают разные TYPE_E_* даже в одном toolchain.
Критерий восстановления
Исправьте metadata/type-library condition «размер слишком велик», пересоберите или зарегистрируйте согласованный versioned artifact и повторите минимальный LoadTypeLib/ITypeInfo scenario.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.