1、在http://topic.csdn.net/u/20080223/17/01f87ee8-662e-4e09-ae9e-e3ce081c3c0c.html这个帖子中有两种方式在BHO中注册IE中的表单事件(input的onclick事件和onsubmit事件)请问如何用AtlAdvise的方式注册表单事件?
2、在invoke中又是如何区分并识别所产生事件的元素的名称及内容的?
分值不够再另外开贴。。
2、在invoke中又是如何区分并识别所产生事件的元素的名称及内容的?
分值不够再另外开贴。。
解决方案 »
- 怎么解决字节对齐就这么一句话这么简单啊
- 如何添加 双击ListView(ListControl)数据的一行触发的事件呢?
- ATL中销毁子窗口,MFC中测试的时候出现ASSERT错误!进者有分!
- 高分求解,怎样通过CMarkup类,生成如下XML文件的使用方法,求写出代码,谢谢
- 关于内码转换的问题
- 怎样实现在一台机器上同时装上四个操作系统?我以前在一扁文章看到怎么做,但我当时没怎么注意,给忘了。请高手进来看看。
- 为何注销DLL后,仍被浏览器占用?
- 在多线程中调用公共资源的问题
- 在命令行模式,如何不换行同时更新两行内容
- 如何生成切分窗口?
- 视图分割问题。
- OpenSCManger()调用的内核函数
class ATL_NO_VTABLE CMySink : public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CMySink, CLSID_NULL>,
public IDispEventImpl<1, CMySink, &DIID_HTMLFormElementEvents, &LIBID_HTMLDocument>
{
public:
DWORD m_dwCookie;
...... HRESULT CMySink::ConnectToForm(IHTMLFormElement* pForm)
{
return AtlAdvise(pForm, (IUnknown*)(CComObject<CMySink>*)this, DIID_HTMLFormElementEvents, &m_dwCookie);
}
...
};
如何注册:
IHTMLFormElement* pForm = ...;
CComObject<CMySink>* pSink = NULL;
pSink->CreateInstance(&pSink);
pSink->ConnectToForm(pForm);
FIESite := pUnkSite;
if not Supports(FIESite, IWebBrowser2, FIE) then
Exit;
if not Supports(FIE, IConnectionPointContainer, FCPC) then
Exit;
// 挂接事件
FCPC.FindConnectionPoint(DWebBrowserEvents2, FCP);
FCP.Advise(Self, FCookie);
那我表单的事件该如何注册啊?是不是应该放在documentcomplete事件中进行注册啊?请您指点。