Что означает код HRESULT 0x80070057 (E_INVALIDARG)?

 
Также может означать:
КонстантаТипОС
HRESULT_FROM_WIN32(ERROR_INVALID_PARAMETER)Ошибка WindowsWindows
Предыдущий Следующий
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.


Нужно найти другой код? Найти другой код состояния или ошибки.