STDMETHODIMP CIEHlprObj::Invoke(DISPID dispidMember, REFIID riid, LCID lcid, WORD wFlags,
DISPPARAMS* pDispParams, VARIANT* pvarResult,
EXCEPINFO* pExcepInfo, UINT* puArgErr)
{
try
{
if(dispidMember == DISPID_DOCUMENTCOMPLETE)
{
/
// m_spWebBrowser2->get_LocationURL(&bstrUrlName); ->
// MessageBox(NULL,"doc","xxxxxxx",MB_OK);
//get document and set document
// CComPtr<IHTMLElement> body;
int ncount=0;
CComPtr<IDispatch> spDispatch;
CComPtr<IHTMLElementCollection> pElementCol;
CComPtr<IHTMLAnchorElement> pLoct;
TCHAR HostName[2*MAX_PATH];
TCHAR HostDesc[2*MAX_PATH];
CComQIPtr<IHTMLDocument2, &IID_IHTMLDocument2> pDoc2;
HRESULT hRes= m_spWebBrowser2->get_Document(&spDispatch);
IHTMLElement* ptext;
pDoc2 = spDispatch;
if(pDoc2!=NULL)
{
if (SUCCEEDED(pDoc2->get_links(&pElementCol)))
{
// AfxMessageBox("IHTMLElementCollection");
long p=0;
if(SUCCEEDED(pElementCol->get_length(&p)))
if(p!=0)
{
for(long i=0;i<=(p-1);i++)
{
CComBSTR String;
_variant_t index = i;
if(SUCCEEDED(pElementCol->item( index, index, &spDispatch)))
if(SUCCEEDED(spDispatch->QueryInterface( IID_IHTMLAnchorElement,(void **) &pLoct)))
//获得链接
pLoct->get_href(&String);
ZeroMemory(HostName,2*MAX_PATH);
lstrcpy(HostName,_bstr_t(String));
//获得链接的域名
pLoct->get_hostname(&String);
ZeroMemory(HostName,2*MAX_PATH);
lstrcpy(HostName,_bstr_t(String));
if(lstrlen(HostName))
{
//获得链接对应的文字
pLoct->QueryInterface(&ptext);
ptext->get_innerText(&String);
ZeroMemory(HostDesc,2*MAX_PATH);
lstrcpy(HostDesc,_bstr_t(String));
// MessageBox(NULL,HostName,HostName,MB_OK);
}
}
}
}
}
}// if(dispidMember == DISPID_DOCUMENTCOMPLETE)
}
catch (...)
{
}
return S_FALSE;
}
DISPPARAMS* pDispParams, VARIANT* pvarResult,
EXCEPINFO* pExcepInfo, UINT* puArgErr)
{
try
{
if(dispidMember == DISPID_DOCUMENTCOMPLETE)
{
/
// m_spWebBrowser2->get_LocationURL(&bstrUrlName); ->
// MessageBox(NULL,"doc","xxxxxxx",MB_OK);
//get document and set document
// CComPtr<IHTMLElement> body;
int ncount=0;
CComPtr<IDispatch> spDispatch;
CComPtr<IHTMLElementCollection> pElementCol;
CComPtr<IHTMLAnchorElement> pLoct;
TCHAR HostName[2*MAX_PATH];
TCHAR HostDesc[2*MAX_PATH];
CComQIPtr<IHTMLDocument2, &IID_IHTMLDocument2> pDoc2;
HRESULT hRes= m_spWebBrowser2->get_Document(&spDispatch);
IHTMLElement* ptext;
pDoc2 = spDispatch;
if(pDoc2!=NULL)
{
if (SUCCEEDED(pDoc2->get_links(&pElementCol)))
{
// AfxMessageBox("IHTMLElementCollection");
long p=0;
if(SUCCEEDED(pElementCol->get_length(&p)))
if(p!=0)
{
for(long i=0;i<=(p-1);i++)
{
CComBSTR String;
_variant_t index = i;
if(SUCCEEDED(pElementCol->item( index, index, &spDispatch)))
if(SUCCEEDED(spDispatch->QueryInterface( IID_IHTMLAnchorElement,(void **) &pLoct)))
//获得链接
pLoct->get_href(&String);
ZeroMemory(HostName,2*MAX_PATH);
lstrcpy(HostName,_bstr_t(String));
//获得链接的域名
pLoct->get_hostname(&String);
ZeroMemory(HostName,2*MAX_PATH);
lstrcpy(HostName,_bstr_t(String));
if(lstrlen(HostName))
{
//获得链接对应的文字
pLoct->QueryInterface(&ptext);
ptext->get_innerText(&String);
ZeroMemory(HostDesc,2*MAX_PATH);
lstrcpy(HostDesc,_bstr_t(String));
// MessageBox(NULL,HostName,HostName,MB_OK);
}
}
}
}
}
}// if(dispidMember == DISPID_DOCUMENTCOMPLETE)
}
catch (...)
{
}
return S_FALSE;
}