關(guān)于IE插件,關(guān)于BHO的彈出窗口
BHO(Browser Help Objects),是實(shí)現(xiàn)了特定接口的COM組件。開發(fā)好的BHO插件在注冊(cè)表特定的位置注冊(cè)好后,每當(dāng)微軟的瀏覽器啟動(dòng),BHO實(shí)例就會(huì)被創(chuàng)建。在瀏覽 器工作的工程中,BHO會(huì)接收到很多事件,比如瀏覽器瀏覽新的地址、前進(jìn)或后退、生成新的窗口、瀏覽器退出等等;BHO可以在這些事件的響應(yīng)中實(shí)現(xiàn)與瀏覽 器的交互。關(guān)于IE插件的入門可以查看http://hi.baidu.com/winnyang/blog/item/21e7367ef2b7643f0dd7da57.html (VC++開發(fā)BHO插件)。
在打開新窗口的時(shí)候函數(shù)Invoke會(huì)響應(yīng)DISPID_NEWWINDOW2事件(定義在頭文件"EXDISPID.H")中。
具體代碼:
case DISPID_NEWWINDOW2:

/**//// 設(shè)置是否允許彈出窗口
READYSTATE ReadyState;
/**//// mWebBrowser為瀏覽器指針
mWebBrowser->get_ReadyState(&ReadyState);

/**//// 阻止新窗口的創(chuàng)建
if (ReadyState!=READYSTATE_COMPLETE)
{
*pDispParams->rgvarg[0].pboolVal = TRUE;
return S_OK;
}
/**//// 不阻止
else
{
*pDispParams->rgvarg[0].pboolVal = FALSE;
return S_OK;
}
break;另外 得到新窗口的URL可以響應(yīng)DISPID_NEWWINDOW3消息。具體做法可以查看msdn..
posted on 2009-07-26 20:06 expter 閱讀(1466) 評(píng)論(0) 編輯 收藏 引用

