Control WebBrowser: Detectar fallo de navegación

Estoy hospedando un control de navegador web, que generalmente carga un documento externo, luego hace algunas modificaciones usando HTML DOM.

También incrustamos enlaces de aplicaciones personalizadas usando un protocolo falso, como "Cerrar esto" que se detectan y manejan enBeforeNavigate2.

Cuando el enlace del tarket está mal escrito (por ejemplo, "spp: CloseWindow"), BeforeNavigate no activará el manejo personalizado. El control del navegador no muestra un error de navegación, pero permanece en READYSTATE_INTERACTIVE y no disparaNavigateComplete oDocumentComplete.

Mi problema: la mayoría de las operaciones (por ejemplo, recuperar o actualizar el contenido) se retrasan y esperan a que llegue el estado preparadoREADYSTATE_COMPLETE. Después de hacer clic en un enlace no válido, el navegador ya no se actualiza, un estado que me gustaría evitar. ¿Cómo puedo hacer eso?

¿Puedo detectar en "Descarga completa" que la navegación falló? (Así podría relajar la prueba para"READYSTATE_COMPLETE oREADYSTATE_INTERACTIVE and last downloadComplete was broken")¿Puedo "restablecer" el control del navegador a READYSTATE_COMPLETE (probablemente no)¿Puedo detectar los pseudoprotocols realmente soportados por el navegador?

(En retrospectiva, utilizando unxxxx: prefijo no era una buena idea, pero cambiar eso ahora es un pequeño problema.)

Respuestas a la pregunta(2)

Su respuesta a la pregunta