IHTMLElement::get_onclick 怎样用。(100分)

  • 主题发起人 主题发起人 cemi
  • 开始时间 开始时间
C

cemi

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样截获webbrowser页面上的连接的onclick事件,
并用自己的过程处理。
 
如果想回答这个问题的大侠请到问题---500分大赠送,有关Twebbrowser。
 
TWebBrowser有onbeforenavigate2事件,具体参数可以看帮助。设置cancel=true则取消即将进行的链接。
 
我也正在试,有结果告诉你。不过你可以参考一些这个,虽然是c,但是转成delphi应该不难

void CMyClass::ConnectEvents(IHTMLElement* pElem)
{
HRESULT hr;
IConnectionPointContainer* pCPC = NULL;
IConnectionPoint* pCP = NULL;
DWORD dwCookie;

// Check that this is a connectable object.
hr = pElem->QueryInterface( IID_IConnectionPointContainer, (void**)&pCPC );
if ( SUCCEEDED(hr) )
{
// Find the connection point.
hr = pCPC->FindConnectionPoint( DIID_HTMLElementEvents2, &pCP );
if ( SUCCEEDED(hr) )
{
// Advise the connection point.
// pUnk is the IUnknown interface pointer for your event sink
hr = pCP->Advise( pUnk, &dwCookie );
if ( SUCCEEDED(hr) )
{
// Successfully advised
}
pCP->Release();
}
pCPC->Release();
}
}


STDMETHODIMP CEventSink::Invoke(
DISPID dispidMember,
REFIID riid,
LCID lcid,
WORD wFlags,
DISPPARAMS* pdispparams,
VARIANT* pvarResult,
EXCEPINFO* pexcepinfo,
UINT* puArgErr)
{
switch ( dispidMember )
{
case DISPID_HTMLELEMENTEVENTS2_ONCLICK:
OnClick();
break;

default:
break;
}
return S_OK;
}


 
来自msdn,javaSCRIPT

<SCRIPT>
function clickit() {
alert("Clicked in " + window.event.srcElement.tagName);
}
</SCRIPT>

<BODY onclick="clickit()">

你完全可以在msdn上找到你要的一切只要你在索引中输入“IHTMLElement”
 
我不要想这样的,对不起没想到!!!!是不是看不见代码了,我不知道怎么注示!
 
接受答案了.
 
老猫结束的太快了吧,cemi不是要script来处理
 
王甲醇,滥用职权!这个问题正讨论呢,elan大虾继续努力!
截获webbrowser页面上的连接的onclick事件是很有用的!
 
avant: 老猫结束是因为shopman的jscript ,不方便大家回答啊
 
后退
顶部