Questione : Includere controllo del iwebbrowser all'interno della finestra di ATL.

Hi.

I hanno generato una finestra di ATL ed usando il codice che sotto posso attaccare un controllo di web browser all'interno della mia finestra di ATL. Ma il codice sotto inserisce il Internet Explorer come tale (con la barra dei menu, le intestazioni e le tutte) all'interno del window.
But io non vuole mostrare c'è ne dei riferimenti del Internet Explorer all'interno della mia finestra. Voglio la mia finestra di ATL assomigliare ad una finestra normale con il soddisfare del HTML visualizzato. Ho provato il codice sotto con

CoCreateInstance (CLSID_WebBrowser, POSIZIONE DI SEGNALE MINIMO, CLSCTX_INPROC_SERVER, IID_IWebBrowser2, (vuoto **) &m_pBrowser);

But il relativo funzionamento.     non sto ottenendo a maniglia il codice successivo. (pWB->get_HWND (&IE_HWND)). il

I del ha trovato il riferimento di questo problema nel codeproject. Ma hanno usato la C normale per incastonare il HTML all'interno della finestra. Devo usare C++ per this.

Could che lo aiutate prego.


#include
#include
CLSID clsid;punk=NULL del
LPUNKNOWN; *pWB = POSIZIONE DI SEGNALE MINIMO del
IWebBrowser2; *pHTML = POSIZIONE DI SEGNALE MINIMO del
IHTMLDocument2; *pElement = POSIZIONE DI SEGNALE MINIMO del
IHTMLElementCollection; *pdisp = POSIZIONE DI SEGNALE MINIMO del
IDispatch;
DISPID dispidNamed = DISPID_PROPERTYPUT;
VARIANT_BOOL bBusy;
VARIANT varietà;
{
OleInitialize (POSIZIONE DI SEGNALE MINIMO) del

void PutIE_InWindow (hWnd di HWND);
CoCreateInstance (CLSID_InternetExplorer, POSIZIONE DI SEGNALE MINIMO, CLSCTX_SERVER, IID_IUnknown, (LPVOID *) &punk);     punk->QueryInterface del
(IID_IWebBrowser2, (LPVOID *) &pWB);
pWB->put_Visible (ALLINEARE);
BSTR bstrVal = SysAllocString (L " href= " http://www.experts-exchange.com " di m"); Web page di //Set su IE
var.vt = VT_I4;
var.lVal = 0; pWB->Navigate del
(bstrVal, &var, &var, &var, &var);
SysFreeString (bstrVal); do
{sonno del
(500) del
;
pWB->get_Busy (&bBusy);
del
} mentre (bBusy);
del
del
lungo IE_HWND = 0;
se (pWB->get_HWND (&IE_HWND)! =
{
AfxMessageBox di S_OK) (“è venuto a mancare: pWB->get_HWND„); ritorno del
;

HWND IEhWnd del
} = (HWND) IE_HWND; il

//Code per mettere lo IE in un window
//This metterà lo IE nel vostro window
di app:: SetParent (IEhWnd, hWnd);


Thanks & riguardi,
Smitha
del

} class= > " libero " del

Risposta : Includere controllo del iwebbrowser all'interno della finestra di ATL.

È CWebWindow il vostro codice categoria della finestra?  In caso affermativo, dovete avere che il codice categoria eredita le interfacce required (IOleClientSite, ecc) e dovete realizzare tutti i metodi per quei codici categoria.  Ho trovato che necessariamente non dovete realizzare tutti metodi (anche se devono tutti essere presenti).  Che cosa ho fatto nel passato è messo in ogni metodo e lo fanno restituire E_NOTIMPL.  Allora ho messo i punti di rottura dentro ed ho calcolato fuori che i metodi sono stati denominati ed ho realizzato quelli.  Non lo ricordo essere che difficile, ma io ricordare che ci erano alcuni gotchas.
Altre soluzioni  
 
programming4us programming4us