IE编程---DLL绑定

本文详细探讨了IE编程中DLL绑定的概念和应用,重点讲解如何使用WebBrowser控件进行对象交互,以及如何处理键盘事件和传递参数。通过实例解析,展示了DLL在IE扩展中的关键作用和实现细节。
摘要由CSDN通过智能技术生成
IE的启动过程:
当IE的实例启动的时候,它会在注册表中寻找一个CLSID,具体位置在
HKEY_LOCALL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Explorer/Browser Helper Objects
当这里存在一CLSID时,IE会建立一个对象的实例。比如:{B5D4581D-ED6A-4905-A267-25BAF7BE79C1}如果这个看不懂,你可以去找一下COM开发的书。
开发实例:
VC建立工程,ALT COM AppWizard 注意是DLL.
建立一个新的类,一定要是ALT
在菜单,Insert>New ALT Object:Simple Object
修改并实现方法
// FiltrateIE.h : Declaration of the CFiltrateIE

 

#ifndef __FILTRATEIE_H_
#define __FILTRATEIE_H_
#include "resource.h"        // main symbols
#include <ExDisp.h> //这里必须加上这两个头文件
#include <msHtml.h>

 

#define        MAX_DOCUMENTS       50
/
// CFiltrateIE
class ATL_NO_VTABLE CFiltrateIE :
       public CComObjectRootEx<CComSingleThreadModel>,
       public CComCoClass<CFiltrateIE, &CLSID_FiltrateIE>,
       public IObjectWithSiteImpl<CFiltrateIE>,// 加入这个,以继承该接口
       public IDispatchImpl<IFiltrateIE, &IID_IFiltrateIE, &LIBID_SAFEIELib>
{
public:
       CFiltrateIE()
       {
       }

 

DECLARE_REGISTRY_RESOURCEID(IDR_FILTRATEIE)
DECLARE_NOT_AGGREGATABLE(CFiltrateIE)
DECLARE_PROTECT_FINAL_CONSTRUCT()

 

BEGIN_COM_MAP(CFiltrateIE)
       COM_INTERFACE_ENTRY(IFiltrateIE)
       COM_INTERFACE_ENTRY(IDispatch)
       COM_INTERFACE_ENTRY(IObjectWithSite)// 加入
END_COM_MAP()

 

// IFiltrateIE
public
//下面两个方法必须实现
STDMETHOD(SetSite)(IUnknown *pUnkSite);
STDMETHOD(Invoke)(DISPID dispidMember,REFIID riid, LCID lcid, WORD wFlags,
                                          DISPPARAMS * pdispparams, VARIANT * pvarResult,
                                          EXCEPINFO * pexcepinfo, UINT * puArgErr);
private:
//下面一个方法必须实现
   enum ConnectType {Advise,Unadvise};
   BOOL ManageConnection(enum ConnectType action);
   CComQIPtr<IWebBrowser2, &IID_IWebBrowser2> m_spWebBrowser2;
   HWND       m_hwndIE;
   DWORD m_dwCookie;
   BOOL       m_bDocComplete;
   BOOL m_test;
};

 

#endi
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值