| Предыдущий | Следующий |
| E_OUTOFMEMORY | E_PROP_ID_UNSUPPORTED |
E_INVALIDARG
Что означает E_INVALIDARG
E_INVALIDARG (0x80070057) — Один или несколько аргументов недопустимы.
Код 0x80070057 относится не ко всему компоненту «COM/WinRT», а к операции в области «контракт вызываемого interface, аргументы и state объекта». Сообщение «один или несколько аргументов недопустимы» позволяет начать с темы «invalidarg».
Что проверить и как подтвердить исправление
До изменения конфигурации проверьте допустимость и структуру входных данных первого неуспешного вызова. Для 0x80070057 с описанием «один или несколько аргументов недопустимы» сверьте тип, размер, диапазон, маску флагов и принадлежность каждого дескриптора текущему объекту именно по контракту первого неуспешного метода.
Перед повтором 0x80070057 зафиксируйте IID и method, thread/apartment, argument values, object state и исходный HRESULT; отдельно запишите HRESULT. Различия по теме «invalidarg» для 0x80070057 покажут, изменился ли первый неуспешный этап.
Практическое исправление для 0x80070057: приведите аргументы и жизненный цикл объекта к контракту метода; неизменённый вызов после contract failure повторять не следует. В контексте условия «один или несколько аргументов недопустимы» для 0x80070057 оно должно устранить подтверждённую причину, а не скрыть исходный HRESULT.
Повторите операцию в том же окружении и сравните первый отличающийся вызов; для результата 0x80070057 это надёжнее единичного успеха на других данных.
Документация для результата 0x80070057: Microsoft Open Specifications: HRESULT values · COM clients and servers · CoGetClassObject.
Нужно найти другой код? Найти другой код состояния или ошибки.