J'utilise le code suivant pour obtenir une image vectorielle Metafile pour le contenu du contrôle IWebBrowser2 comme suit:DrawToDC échoue sur le contrôle du navigateur web IE9
IHTMLElement * pDocBody;
IHTMLDocument2 * pDoc;
... ...
pDoc-> get_body (& pDocBody); // récupère l'élément body pour IHTMLDocument2
pDocBody-> get_parentElement (& pEleParent); pEleParent-> QueryInterface (IID_IHTMLElement2, (void **) & pRenderEle2); // obtenir l'élément à rendre à partir de
pRenderEle2-> QueryInterface (IID_IHTMLElementRender, (void **) & pRender); // obtient l'interface de rendu
HDC hMetaDC = :: CreateEnhMetaFile (hRefDC, PictFile, & MetaRect, NULL); // obtient DC
hr = pRender-> DrawToDC (hMetaDC);
Le code ci-dessus avait travaillé magnifiquement avec IE6, IE7, IE8 pour fournir une image vectorielle pour le contenu du navigateur. Mais l'appel DrawToDC ci-dessus échoue avec la version bêta de IE9 (test sous Windows 7, 32 bits) avec le code d'erreur: 0x8007000e.
J'ai essayé d'utiliser WM_PRINT et d'autres méthodes de dessin, mais je ne peux obtenir que l'image bitmap, pas l'image vectorielle.
Toute idée de pourquoi DrawToDC échoue avec IE9 dans le code ci-dessus, et s'il existe une autre méthode pour obtenir une image vectorielle avec IE9.
Merci, Subhash
Merci, je craignais que cela pourrait être le cas. Savez-vous s'il existe une méthode pour basculer temporairement le rendu IE9 en mode GDI? Je m'attends à ce que cela réduise la qualité et l'efficacité du rendu, ce que je devrais pouvoir vivre avec mon application actuelle.
S'il vous plaît rechercher des bugs en double sur http://connect.microsoft.com/IE et Si vous n'en trouvez pas, ouvrez-en un vous-même. – EricLaw