Pergunta : Encaixando o controle do iwebbrowser dentro da janela de ATL.

Hi.

I criaram uma janela de ATL e a utilização do código que below eu posso unir um controle do web browser dentro de minha janela de ATL. Mas o código below introduz o Internet Explorer como tal (com a barra, os encabeçamentos e o tudo de menu) dentro do window.
But mim não quer mostrar algumas de referências do Internet Explorer dentro de minha janela. Eu quero minha janela de ATL olhar como uma janela lisa com os índices do HTML indicados. Eu tentei o código below com

CoCreateInstance (CLSID_WebBrowser, ZERO, CLSCTX_INPROC_SERVER, IID_IWebBrowser2, (vácuo **) &m_pBrowser);

But seu trabalho.     eu não estou começ a punho um código mais atrasado. (pWB->get_HWND (&IE_HWND)). o

I do encontrou a referência deste problema no codeproject. Mas usaram C liso para encaixar o HTML dentro da janela. Eu preciso de usar C++ para this.

Could que você me ajuda por favor.


#include
#include
CLSID clsid;punk=NULL do
LPUNKNOWN; *pWB = ZERO do
IWebBrowser2; *pHTML = ZERO do
IHTMLDocument2; *pElement = ZERO do
IHTMLElementCollection; *pdisp = ZERO do
IDispatch;
DISPID dispidNamed = DISPID_PROPERTYPUT;
VARIANT_BOOL bBusy;
VARIANT var;
do

void PutIE_InWindow (hWnd de HWND) {
OleInitialize (ZERO);
CoCreateInstance (CLSID_InternetExplorer, ZERO, CLSCTX_SERVER, IID_IUnknown, (LPVOID *) &punk);     punk->QueryInterface do
(IID_IWebBrowser2, (LPVOID *) &pWB);
pWB->put_Visible (VERDADEIRO);
BSTR bstrVal = SysAllocString (L do " href= " http://www.experts-exchange.com " m"); Web page de //Set em IE
var.vt = VT_I4;
var.lVal = 0; pWB->Navigate do
(bstrVal, &var, &var, &var, &var);
SysFreeString (bstrVal); do
do
{sono do
(500);
pWB->get_Busy (&bBusy);
do
} quando (bBusy);
do
do
longo IE_HWND = 0;
se (pWB->get_HWND (&IE_HWND)! =
de S_OK) {
AfxMessageBox (“falhou: pWB->get_HWND”); retorno do
;

HWND IEhWnd do
} = (HWND) IE_HWND; o

//Code para põr o IE em um window
//This põr o IE em seu window
do app:: SetParent (IEhWnd, hWnd);


Thanks & considerações do

},
Smitha
class= > " desobstruído " do

Resposta : Encaixando o controle do iwebbrowser dentro da janela de ATL.

É CWebWindow sua classe da janela?  Em caso afirmativo, você precisa de ter que a classe herda as relações required (IOleClientSite, etc.), e você precisa de executar todos os métodos para aquelas classes.  Eu encontrei que você não precisa necessariamente de executar todos os métodos (embora devem todos estar atuais).  O que eu fiz no passado é põr em cada método e mandado o retornar E_NOTIMPL.  Então eu põr os limites de faturamento dentro e figurei para fora que os métodos foram chamados, e executei aqueles.  Eu não o recordo ser que difícil, mas mim recordar que havia alguns gotchas.
Outras soluções  
 
programming4us programming4us