读书人

开发的OCX怎么获取当前网页的地址

发布时间: 2012-02-27 10:00:22 作者: rapoo

开发的OCX如何获取当前网页的地址?
开发的OCX(用于Web的OCX),当客户端打开含有自主开发的OCX网页,OCX如何获取当前打开的网页的地址?

搜索了相关资料,只得到VC下的OCX这方面资料(http://blog.csdn.net/jiangsheng/archive/2001/08/28/3786.aspx)。

可是觉得这资料在BCB中应用有些困难,这里跪求这方面坛友解决办法!

[解决办法]
可以实现的,分太少...,贴下代码吧,看不懂就算了,解释起来很麻烦...

C/C++ code
// 获取页面的 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;} 

读书人网 >C++ Builder

热点推荐