Question : Inclure la commande d'iwebbrowser à l'intérieur de la fenêtre d'ATL.

Hi.

I ont créé une fenêtre d'ATL et employer le code ci-dessous que je peux attacher une commande de web browser à l'intérieur de ma fenêtre d'ATL. Mais le code ci-dessous insère l'Internet Explorer comme tel (avec la barre, les en-têtes et les tous de menu) à l'intérieur du window.
But je ne veut montrer aucune de références d'Internet Explorer à l'intérieur de ma fenêtre. Je veux que ma fenêtre d'ATL ressemble à une fenêtre plate avec le contenu de HTML montré. J'ai essayé le code ci-dessous avec le

CoCreateInstance (CLSID_WebBrowser, NULLE, CLSCTX_INPROC_SERVER, IID_IWebBrowser2, (vide **) &m_pBrowser) ;

But son travail.     je n'obtiens pas à poignée le code postérieur. (pWB->get_HWND (&IE_HWND)). le

I du a trouvé la référence de ce problème dans le codeproject. Mais ils ont employé C plat pour enfoncer le HTML à l'intérieur de la fenêtre. Je dois employer C++ pour this.

Could que vous svp m'aidez.


#include
#include
CLSID clsid;punk=NULL du
LPUNKNOWN ; *pWB = NULLE du
IWebBrowser2 ; *pHTML = NULLE du
IHTMLDocument2 ; *pElement = NULLE du
IHTMLElementCollection ; *pdisp = NULLE du
IDispatch ;
DISPID dispidNamed = DISPID_PROPERTYPUT ;
VARIANT_BOOL bBusy ; variété du
VARIANT ;
{
OleInitialize (NULLE) du

void PutIE_InWindow (hWnd de HWND) ;
CoCreateInstance (CLSID_InternetExplorer, NULLE, CLSCTX_SERVER, IID_IUnknown, (LPVOID *) &punk) ;     punk->QueryInterface du
(IID_IWebBrowser2, (LPVOID *) &pWB) ;
pWB->put_Visible (VRAI) ;
BSTR bstrVal = SysAllocString (L href= " http://www.experts-exchange.com " " de m") ; page Web de //Set sur IE
var.vt = VT_I4 ;
var.lVal = 0 ; pWB->Navigate du
(bstrVal, &var, &var, &var, &var) ;
SysFreeString (bstrVal) ; do
{sommeil de
(500) du
;
pWB->get_Busy (&bBusy) ;
du
} tandis que (bBusy) ;
du
du
long IE_HWND = 0 ;
si (pWB->get_HWND (&IE_HWND) ! =
{
AfxMessageBox de S_OK) (« a échoué : pWB->get_HWND ») ; retour du
;

HWND IEhWnd du
} = (HWND) IE_HWND ; le

//Code pour mettre l'IE dans un window
//This mettra l'IE dans votre window
de $$etAPP : : SetParent (IEhWnd, hWnd) ;


Thanks et respect,
Smitha
du

} class= > " clair " de

Réponse : Inclure la commande d'iwebbrowser à l'intérieur de la fenêtre d'ATL.

CWebWindow est-il votre classe de fenêtre ?  Si oui, vous devez avoir que la classe héritent des interfaces required (IOleClientSite, etc.), et vous devez appliquer toutes les méthodes pour ces classes.  J'ai constaté que vous n'avez pas besoin nécessairement d'appliquer toutes les méthodes (bien qu'elles doivent tout être présentes).  Ce que j'ai fait dans le passé est mis dans chaque méthode et la fait renvoyer E_NOTIMPL.  Alors j'ai mis les points de rupture dedans et ai figuré dehors que des méthodes se sont appelés, et ai mis en application ceux.  Je ne me rappelle pas l'être que difficile, mais moi se rappeler qu'il y avait quelques gotchas.
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us