| Anterior | Siguiente |
| WININET_E_OPERATION_CANCELLED | WININET_E_INCORRECT_HANDLE_STATE |
WININET_E_INCORRECT_HANDLE_TYPE
Qué significa WININET_E_INCORRECT_HANDLE_TYPE
WININET_E_INCORRECT_HANDLE_TYPE (-2147012878, 0x80072EF2) indica que la función recibió un HINTERNET cuya clase interna no corresponde a la operación. WinINet crea distintos objetos para la sesión, la conexión y la solicitud; aunque todos se representen mediante el mismo tipo de handle en C/C++, no son intercambiables.
Este resultado se diferencia de WININET_E_INCORRECT_HANDLE_STATE: aquí el problema es qué clase de objeto se pasó, no en qué fase se encuentra un objeto correcto.
Qué comprobar
- Identifica la API que falla y determina si espera un handle de sesión, de conexión o de request.
- Revisa wrappers, casts y campos reutilizados que puedan haber sustituido accidentalmente un handle por otro.
- Comprueba la relación padre-hijo creada por
InternetOpen,InternetConnectyHttpOpenRequest; conserva cada resultado en un miembro con tipo lógico distinto.
Cómo aislar el defecto
Registra en la creación de cada objeto un ID propio y su clase lógica. En el punto del fallo, anota la dirección/valor del handle y el ID esperado. Si una abstracción expone todos los handles como una única variable genérica, separa sus tipos en el diseño para que el error sea detectable antes de llegar a WinINet.
Verificación
Repite la misma ruta de código comprobando que cada API recibe exclusivamente la clase de handle documentada. La corrección no requiere reintentos ni cambios de red: el HRESULT debe desaparecer en cuanto se pasa el objeto correcto.
Referencias técnicas
¿Buscas un código diferente? Buscar otro código de estado o error.
