Controle WebBrowser: Detectar falha de navegação

Estou hospedando um controle webbrowser, que normalmente carrega documentos externos e faz algumas modificações usando HTML DOM.

Também incorporamos links de aplicativos personalizados usando um protocolo falso, como "Fechar isto", que são capturados e tratados emBeforeNavigate2.

Quando o tarket do link estiver incorreto (digamos, "spp: CloseWindow"), o BeforeNavigate não acionará o tratamento personalizado. O controle do navegador não mostra um erro de navegação, mas permanece em READYSTATE_INTERACTIVE e não disparaNavigateComplete ouDocumentComplete.

Meu problema: a maioria das operações (por exemplo, recuperar ou atualizar o conteúdo) está atrasada e aguarda o estado de prontidãoREADYSTATE_COMPLETE. Depois que um link inválido é clicado, o navegador não é mais atualizado - um estado que gostaria de evitar. Como eu posso fazer isso?

Posso detectar em "DownloadComplete" que a navegação falhou? (Então eu poderia relaxar o teste para"READYSTATE_COMPLETE ouREADYSTATE_INTERACTIVE and last downloadComplete was broken")Posso "redefinir" o controle do navegador para READYSTATE_COMPLETE (provavelmente não)Eu poderia detectar os pseudoprotocols realmente suportados pelo navegador?

(Em retrospectiva, usando umxxxx: prefixo não foi uma boa idéia, mas mudar isso agora é um pouco problemático.)

questionAnswers(2)

yourAnswerToTheQuestion