开发的OCX如何获取当前网页的地址?
开发的OCX(用于Web的OCX),当客户端打开含有自主开发的OCX网页,OCX如何获取当前打开的网页的地址?
搜索了相关资料,只得到VC下的OCX这方面资料(http://blog.csdn.net/jiangsheng/archive/2001/08/28/3786.aspx)。
可是觉得这资料在BCB中应用有些困难,这里跪求这方面坛友解决办法!
[解决办法]
可以实现的,分太少...,贴下代码吧,看不懂就算了,解释起来很麻烦...
// 获取页面的 IHTMLDocument2 指针IHTMLDocument2* __fastcall TLesWebXImpl::GetHTMLDocument2(void){ IHTMLDocument2* iDoc=NULL; try { if(m_spClientSite!=NULL) { CComPtr<IOleContainer> iOct(NULL); OleCheck(m_spClientSite->GetContainer(&iOct)); OleCheck(iOct->QueryInterface(IID_IHTMLDocument2, (void**)&iDoc)); } } catch(...) { iDoc=NULL; } if(iDoc!=NULL) return iDoc; try { if(m_spUnkSite!=NULL) { CComQIPtr<IServiceProvider,&IID_IServiceProvider> iSpv(m_spUnkSite); if(iSpv!=NULL) { CComPtr<IHTMLWindow2> iHmw(NULL); OleCheck(iSpv->QueryService(SID_SHTMLWindow, IID_IHTMLWindow2, (void**)(&iHmw))); if(iHmw!=NULL) OleCheck(iHmw->get_document(&iDoc)); } } } catch(...) { iDoc=NULL; } return iDoc;}......// 通过 IHTMLDocument2 指针获取 URLAnsiString __fastcall TLesWebXImpl::GetPageURL(void){ AnsiString s(""); CComPtr<IHTMLDocument2> iDoc(GetHTMLDocument2()); if(iDoc==NULL) return s; try { CComBSTR url(""); OleCheck(iDoc->get_URL(&url)); s=AnsiString(url.Copy()); } catch(...) { s=""; } return s;}