¿Qué significa el código HRESULT 0x80020005 (DISP_E_TYPEMISMATCH)?

 
Anterior Siguiente
DISP_E_PARAMNOTFOUND DISP_E_UNKNOWNNAME

DISP_E_TYPEMISMATCH

Qué significa DISP_E_TYPEMISMATCH

DISP_E_TYPEMISMATCH corresponde al HRESULT 0x80020005. Windows indica: «Los tipos no coinciden.».

El diagnóstico debe centrarse en invocación IDispatch/OLE Automation y conversión de argumentos VARIANT. La observación principal es: el tipo real no coincide con el esperado por TypeInfo/Automation; captura TYPEKIND/VARTYPE de ambos lados.

Qué comprobar

  • Registra DISPID o nombre, IID/LCID, flags de Invoke, DISPPARAMS, número/orden de argumentos, VARTYPE de cada VARIANT y EXCEPINFO/argErr devueltos en el mismo intento que devuelve el HRESULT.
  • Usa «Los tipos no coinciden.» como hipótesis verificable y comprueba que corresponde a este CLSID/IID/moniker/VARIANT concreto.

Tratamiento recomendado

Verifica DISPID/nombre, flags, orden y tipos VARIANT de DISPPARAMS contra la firma IDispatch real. Corrige el argumento señalado por argErr o EXCEPINFO y repite sin conversiones implícitas innecesarias.

Resultados cercanos que significan otra cosa

  • DISP_E_BUFFERTOOSMALL significa «El búfer es demasiado pequeño.».
  • DISP_E_NONAMEDARGS corresponde a «No hay argumentos con nombre.».

Después del cambio, repite desde un lifecycle limpio y verifica que «Los tipos no coinciden.» desaparece sin relajar controles globales ni sustituir datos por valores artificiales.

Referencias técnicas


¿Buscas un código diferente? Buscar otro código de estado o error.