Obtenir l'objet document d'une iframe avec MSHTML

Signaler
Messages postés
24
Date d'inscription
samedi 11 novembre 2000
Statut
Membre
Dernière intervention
27 avril 2010
-
Messages postés
24
Date d'inscription
samedi 11 novembre 2000
Statut
Membre
Dernière intervention
27 avril 2010
-
Je voudrais obtenir l'objet document d'un iframe en utilisant MSHTML.



J'ai essayé ceci:



IHTMLElement *p_Elem = NULL;

if (!p_Disp->QueryInterface(IID_IHTMLElement, (void **) &p_Elem))

{

IDispatch *p_Disp2 = NULL;



if (!p_Elem->get_document(&p_Disp2))

{

IHTMLDocument2 *p_IFrameDoc = NULL;



if (!p_Disp2->QueryInterface(IID_IHTMLDocument2, (void **) &p_IFrameDoc))

{

Walk(p_IFrameDoc);



SAFE_RELEASE(p_IFrameDoc);

}



SAFE_RELEASE(p_Disp2);

}



SAFE_RELEASE(p_Elem);

}



La function Walk affiche tout les tags du
document dans un textbox et je me rend bien compte que c'est le
document sur lequel se trouve le iframe. Comment faire pour obtenir un
objet document sur le fichier ouvert par le iframe?





Merci d'avance

2 réponses

Messages postés
540
Date d'inscription
dimanche 29 décembre 2002
Statut
Modérateur
Dernière intervention
13 mai 2011

Je tente :)
Récupère un IHTMLIFrameElement puis IHTMLFrameBase2 pour avoir accès à contentWindow.

http://www.poppyto.net LE site pour les bassistes
Messages postés
24
Date d'inscription
samedi 11 novembre 2000
Statut
Membre
Dernière intervention
27 avril 2010

ok



j'ai tenté:



IHTMLElement *p_Elem = NULL;

if (!p_Disp->QueryInterface(IID_IHTMLElement, (void **) &p_Elem))

{

IHTMLIFrameElement *p_FrameElem = NULL;



if (!p_Elem->QueryInterface(IID_IHTMLIFrameElement, (void **) &p_FrameElem))

{

IHTMLFrameBase2 *p_FrameBase = NULL;



if (!p_FrameElem->QueryInterface(IID_IHTMLFrameBase2, (void **) &p_FrameBase))

{

IHTMLWindow2 *p_Window = NULL;



if
(!p_FrameBase->get_contentWindow((IHTMLWindow2 **) &p_Window))

{

IHTMLDocument2 *p_FrameDoc = NULL;




if (!p_Window->get_document((IHTMLDocument2 **)
&p_FrameDoc))

{



SAFE_RELEASE(p_FrameDoc);

}

}



SAFE_RELEASE(p_FrameBase);

}

}



SAFE_RELEASE(p_Elem);

}



mais

if (!p_FrameBase->get_contentWindow((IHTMLWindow2 **) &p_Window))

renvoie E_NOINTERFACE...

une idée?



Merci