IE dll 绑定的测试

在网上看到关于IE-dll绑定的文章,使用com组件进行编程,主要方法如下:

1 .建立ALT COM AppWizard,选择dll版本;

2.Menu->Insert->New Alt Object->Simple Object,填入名称FiltreateIE;

3..h文件如下:

// FiltrateIE.h : Declaration of the CFiltrateIE

#ifndef __FILTRATEIE_H_
#define __FILTRATEIE_H_

#include "resource.h"       // main symbols

#include <EXDISP.H>			//added
#include <MSHTML.H>			//added

/
// CFiltrateIE
class ATL_NO_VTABLE CFiltrateIE : 
	public CComObjectRootEx<CComSingleThreadModel>,
	public CComCoClass<CFiltrateIE, &CLSID_FiltrateIE>,
	public IObjectWithSiteImpl<CFiltrateIE>,						//added
	public IDispatchImpl<IFiltrateIE, &IID_IFiltrateIE, &LIBID_DLLBINDLib>
{
public:
	CFiltrateIE()
	{
	}

DECLARE_REGISTRY_RESOURCEID(IDR_FILTRATEIE)
DECLARE_NOT_AGGREGATABLE(CFiltrateIE)				//added
DECLARE_PROTECT_FINAL_CONSTRUCT()

BEGIN_COM_MAP(CFiltrateIE)
	COM_INTERFACE_ENTRY(IFiltrateIE)
	COM_INTERFACE_ENTRY(IDispatch)
	COM_INTERFACE_ENTRY(IObjectWithSite)			//added
END_COM_MAP()

// IFiltrateIE
public:												//--below added
	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;
};

#endif //__FILTRATEIE_H_


 

2.cpp 文件如下

// FiltrateIE.h : Declaration of the CFiltrateIE

#ifndef __FILTRATEIE_H_
#define __FILTRATEIE_H_

#include "resource.h"       // main symbols

#include <EXDISP.H>			//added
#include <MSHTML.H>			//added

/
// CFiltrateIE
class ATL_NO_VTABLE CFiltrateIE : 
	public CComObjectRootEx<CComSingleThreadModel>,
	public CComCoClass<CFiltrateIE, &CLSID_FiltrateIE>,
	public IObjectWithSiteImpl<CFiltrateIE>,						//added
	public IDispatchImpl<IFiltrateIE, &IID_IFiltrateIE, &LIBID_DLLBINDLib>
{
public:
	CFiltrateIE()
	{
	}

DECLARE_REGISTRY_RESOURCEID(IDR_FILTRATEIE)
DECLARE_NOT_AGGREGATABLE(CFiltrateIE)				//added
DECLARE_PROTECT_FINAL_CONSTRUCT()

BEGIN_COM_MAP(CFiltrateIE)
	COM_INTERFACE_ENTRY(IFiltrateIE)
	COM_INTERFACE_ENTRY(IDispatch)
	COM_INTERFACE_ENTRY(IObjectWithSite)			//added
END_COM_MAP()

// IFiltrateIE
public:												//--below added
	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;
};

#endif //__FILTRATEIE_H_


3.在.rgs文件中添加如下代码:

HKLM
{
	SOFTWARE
	{
		Microsoft
		{
			Windows
			{
				CurrentVersion
				{
					Explorer
					{
						'Browser Helper Objects'
						{
							ForceRemove{18DF081C-E8AD-4283-A596-FA578C2EBDC3} = s'dllbind'
						}
					}
				}
			}
		}
	}
}


4.编译通过。但存在的问题是,不知道第3步中填写的uuid是否正确。在机器中相应的注册表下有两个表项。但都不是空值。

编译通过,如何测试程序的功能?将相应的DLL文件?启用IE进行测试?

 

 

测试DLL测试壳工具是一种专门用于测试动态链接库(DLL)的工具。DLL是一种可重用的代码模块,常用于在不同的应用程序之间共享功能和资源。而为了确保DLL的正确性和稳定性,我们需要使用测试工具来对其进行全面的测试测试DLL测试壳工具的主要功能包括以下几个方面: 1. 功能测试:通过测试工具可以模拟各种情况和输入,对DLL的功能进行全面的测试。这包括测试DLL的各个函数和方法,确保其按照预期工作并返回正确的结果。 2. 性能测试测试工具可以对DLL的性能进行评估和测试。通过模拟大量的并发请求或者大量数据处理,来测试DLL在各种负载情况下的性能表现,确保其具有良好的性能和高效的响应速度。 3. 兼容性测试测试工具可以测试DLL在不同的操作系统和硬件环境下的兼容性。通过在各种操作系统和硬件平台上进行测试,我们可以确保DLL在不同环境下的正常运行,并且与其他软件的集成兼容性良好。 4. 安全性测试测试工具可以对DLL的安全性进行评估和测试。通过模拟各种安全攻击和漏洞测试,来发现和修复DLL中的安全漏洞,确保其在使用过程中不会被恶意利用和攻击。 总而言之,测试DLL测试壳工具是一个强大的工具,可以帮助开发人员或测试人员对DLL进行全面的测试和评估,确保其在各种情况下都能正常运行,并具备良好的性能、兼容性和安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值