用VC++写浏览器

来源:互联网 发布:人工智能 伏羲 编辑:程序博客网 时间:2024/05/08 13:39
(1)用于初始化工作的函数体:CLSID const& GetClsid(){static CLSID const clsid= { 0xeab22ac3, 0x30c1, 0x11cf, { 0xa7, 0xeb, 0x0, 0x0, 0xc0, 0x5b, 0xae, 0xb } };return clsid;}virtual BOOL Create(LPCTSTR lpszClassName,LPCTSTR lpszWindowName, DWORD dwStyle,const RECT& rect,CWnd* pParentWnd, UINT nID,CCreateContext* pContext = NULL){ return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID); }BOOL Create(LPCTSTR lpszWindowName, DWORD dwStyle,const RECT& rect, CWnd* pParentWnd, UINT nID,CFile* pPersist = NULL, BOOL bStorage = FALSE,BSTR bstrLicKey = NULL){ return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID,pPersist, bStorage, bstrLicKey); }(2) 功能函数//用于返回前一页void CWebBrowser::GoBack(){InvokeHelper(0x64, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);}//指向下一页void CWebBrowser::GoForward(){InvokeHelper(0x65, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);}//用于返回到主页void CWebBrowser::GoHome(){InvokeHelper(0x66, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);}//用于搜索网页void CWebBrowser::GoSearch(){InvokeHelper(0x67, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);}//用于导航void CWebBrowser::Navigate(LPCTSTR URL, VARIANT* Flags, VARIANT* TargetFrameName, VARIANT* PostData, VARIANT* Headers){static BYTE parms[] =VTS_BSTR VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT;InvokeHelper(0x68, DISPATCH_METHOD, VT_EMPTY, NULL, parms,URL, Flags, TargetFrameName, PostData, Headers);}//用于刷新页面void CWebBrowser::Refresh(){InvokeHelper(DISPID_REFRESH, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);}void CWebBrowser::Refresh2(VARIANT* Level){static BYTE parms[] = VTS_PVARIANT;InvokeHelper(0x69, DISPATCH_METHOD, VT_EMPTY, NULL, parms,Level);}//用于停止传送文档void CWebBrowser::Stop(){InvokeHelper(0x6a, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);}//用于获得应用程序LPDISPATCH CWebBrowser::GetApplication(){LPDISPATCH result;InvokeHelper(0xc8, DISPATCH_PROPERTYGET, VT_DISPATCH,(void*)&result, NULL);return result;}//用于获取上层窗口LPDISPATCH CWebBrowser::GetParent(){LPDISPATCH result;InvokeHelper(0xc9, DISPATCH_PROPERTYGET, VT_DISPATCH,(void*)&result, NULL);return result;}//用于获得容器指针LPDISPATCH CWebBrowser::GetContainer(){LPDISPATCH result;InvokeHelper(0xca, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&result, NULL);return result;}//用于获得文档LPDISPATCH CWebBrowser::GetDocument(){LPDISPATCH result;InvokeHelper(0xcb, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&result, NULL);return result;}//用于获得顶层容器指针BOOL CWebBrowser::GetTopLevelContainer(){BOOL result;InvokeHelper(0xcc, DISPATCH_PROPERTYGET, VT_BOOL,(void*)&result, NULL);return result;}//用于获得风格CString CWebBrowser::GetType(){CString result;InvokeHelper(0xcd, DISPATCH_PROPERTYGET, VT_BSTR,(void*)&result, NULL);return result;}//用于获得和设置窗口边界long CWebBrowser::GetLeft(){long result;InvokeHelper(0xce, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);return result;}void CWebBrowser::SetLeft(long nNewValue){static BYTE parms[] =VTS_I4;InvokeHelper(0xce, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL,parms, nNewValue);}long CWebBrowser::GetTop(){long result;InvokeHelper(0xcf, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);return result;}void CWebBrowser::SetTop(long nNewValue){static BYTE parms[] = VTS_I4;InvokeHelper(0xcf, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL,parms, nNewValue);}long CWebBrowser::GetWidth(){long result;InvokeHelper(0xd0, DISPATCH_PROPERTYGET, VT_I4,(void*)&result, NULL);return result;}void CWebBrowser::SetWidth(long nNewValue){static BYTE parms[] =VTS_I4;InvokeHelper(0xd0, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL,parms, nNewValue);}long CWebBrowser::GetHeight(){long result;InvokeHelper(0xd1, DISPATCH_PROPERTYGET, VT_I4,(void*)&result, NULL);return result;}void CWebBrowser::SetHeight(long nNewValue){static BYTE parms[] =VTS_I4;InvokeHelper(0xd1, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL,parms, nNewValue);}CString CWebBrowser::GetLocationName(){CString result;InvokeHelper(0xd2, DISPATCH_PROPERTYGET, VT_BSTR,(void*)&result, NULL);return result;}//用于获得本地资源定位地址CString CWebBrowser::GetLocationURL(){CString result;InvokeHelper(0xd3, DISPATCH_PROPERTYGET, VT_BSTR,(void*)&result, NULL);return result;}//用于监测程序BOOL CWebBrowser::GetBusy(){BOOL result;InvokeHelper(0xd4, DISPATCH_PROPERTYGET, VT_BOOL,(void*)&result, NULL);return result;}(3)返回前一页、跳向下一页、重载该页、填URL地址的消息响应函数void CMyBrowserView::OnReload() {// TODO: Add your command handler code herem_Browser.Refresh();}void CMyBrowserView::OnForward() {// TODO: Add your command handler code herem_Browser.GoForward();}void CMyBrowserView::OnBack() {// TODO: Add your command handler code herem_Browser.GoBack();}void CMyBrowserView::OnStop() {// TODO: Add your command handler code herem_Browser.Stop();}void CMyBrowserView::OnUrl() {// TODO: Add your command handler code hereCOleVariant varEmpty; // Default is VT_EMPTYUrlDlg *Dlg = new UrlDlg( this );if( Dlg->DoModal() == IDOK )m_Browser.Navigate( Dlg->m_Edit, &varEmpty, &varEmpty,&varEmpty, &varEmpty );delete Dlg;}
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 室友看综艺太吵怎么办 被甲鱼咬住不放怎么办 凤仙叶子干焦怎么办 香槟开了没喝完怎么办 土豆酸了吃了怎么办 吃了发酸的土豆怎么办 土豆没煮熟吃了怎么办 吃了发绿的土豆怎么办 孩子吃蒸土豆发恶心怎么办 吃了发麻的土豆怎么办 吃了没熟的土豆怎么办 吃土豆没熟中毒怎么办 吃小土豆能中毒怎么办 猪吃土豆中毒了怎么办 吃了不熟的土豆怎么办 吃了变绿的土豆怎么办 吃炸洋芋中毒了怎么办 脸上长毒气痘痘怎么办 吃鸡游戏中遇到毒气怎么办 吃多了颠茄片怎么办 玲珑骰子沾了水怎么办 花的枝干长歪了怎么办 电脑中毒了怎么办开不了机 台湾竹长得太高怎么办 文竹长得太高怎么办 桑叶牡l丹长虫怎么办 日本海棠开完花后枯萎了怎么办 长寿冠海棠烂根怎么办 夏季长寿冠海棠掉叶怎么办 竹节海棠有点烂根怎么办? 丽格海棠烂茎怎么办 长寿花徒长不开花怎么办 长寿花植株长了怎么办 丽格海棠不爱长怎么办 竹节海棠太高了怎么办 绿萝叶子发黄烂根怎么办 发财树叶子发黄烂根怎么办 君子兰烂根叶子发黄怎么办 四季海棠花叶子干了怎么办 海棠花叶子枯萎枝干发黑怎么办 长寿花叶尖焦了怎么办