2009-01-13 9 views
3

J'utilise le contrôle IWebBrowser2 dans mon application et j'ai divers fichiers html qui sont stockés comme ressources dans l'exe. Pour les charger, j'utilise le protocole "res: //". Le problème est qu'avec certaines versions d'Internet Explorer, les pages ne se chargent plus et affichent à la place "Action annulée, Internet Explorer n'a pas pu créer de lien vers la page demandée".IE navigateur Web contrôle res: // usage

Les pages sont référencées dans le script .rc comme ceci:

stats.html HTML DISCARDABLE "res \ stats.html"

La demande de résolution ressemble à res: // C: \ chemin \ To \ MyApp.exe/stats.html

Cela fonctionnait très bien, à un certain moment ce comportement a changé, vraisemblablement avec un correctif ou quelque chose comme ça. Maintenant, sur ma machine, ça ne marche pas. J'ai essayé de modifier le chemin res pour ressembler à:

res: //MyApp.exe/stats.html

qui ne fonctionne pas.

J'ai alors essayé de changer le script rc:

stats HTML DISCARDABLE "res \ stats.html"

et le chemin res:

res: //MyApp.exe/stats

Maintenant ça marche! Cependant, cela est vraiment gênant d'avoir à utiliser de cette façon (en supprimant le "." Et l'extension de fichier du nom de la ressource). Est-ce que quelqu'un sait si c'est un bug? Une caractéristique? Pourquoi cela arrive-t-il et existe-t-il un autre moyen de contourner cela?

Edit: Après avoir joué un peu plus je trouve que cela fonctionne: stats.htm HTML DISCARDABLE "res \ stats.html" res: //MyApp.exe/stats.htm

changer le " extension ".html" dans le nom de la ressource ".htm" fonctionne mais je n'ai aucune idée pourquoi!

Répondre

2

Assurez-vous que le type de contenu est défini correctement. Assurez-vous que HKEY_CLASSES_ROOT.html a son type de contenu défini sur "text/html", sinon des choses étranges se produisent. Idem pour .htm aussi.

+0

Quel type de contenu doit être configuré? –

Questions connexes