设计浏览器不弹出警告地ActiveX控件

设计浏览器不弹出警告地ActiveX控件,第1张

设计浏览器不弹出警告地ActiveX控件,第2张

我们在编写ActiveX控件时,如果在浏览器中使用,经常会弹出现在运行的脚本不安全的提示,给客户带来很大的不便。

根据MSDN的介绍,通常有两种方式:一是实现IObjectSafe接口,二是修改注册表。一般如果用ATL开发ActiveX控件,就用实现IObjectSafe接口的方法。如果用MFC开发,我觉得修改注册表更方便。下面是第二种方法:

包含两个文件
# include " comcat . h "
# include " obj safe . h "

//此控件的CLSID,注册表使用
const guid CDECL CLSID _ safe item = { 0x7ae 7497 b,0xcad8,0x4e66,
{0xa5,0x8b,0xdd,0xe9,0xbc,0xaf,0x6b,0x61 } }
//版本控制
const WORD _ wver major = 1;
//次要版本号
const WORD _ wVerMinor = 0;


//////////////////////////////////////////////////////////
//CICCardApp::InitInstance-DLL初始化

BOOL CICCardApp::init instance()
{
BOOL bInit = COleControlModule::init instance();

if (bInit)
{

}

返回bInit
}


////////////////////////////////////////////////////////////
//CICCardApp::exit instance-DLL终止

int CICCardApp::exit instance()
{
return COleControlModule::exit instance();
}


////////////////////////////////////////////////

//创建组件类别
hresult createcomponentcategory(CATIC CATID,WCHAR * CAT Description)
{
ICAT register * PCR = null;
HRESULT HR = S _ OK;

HR = cocreate instance(CLSID _ StdComponentCategoriesMgr,
NULL,CLSCTX_INPROC_SERVER,IID_ICatRegister,(void * *)& PCR);
if(失败(HR))
返回HR;

//确保HKCR \组件类别\{..类别...}
//密钥已注册。
类别信息catinfo
catinfo . catid = catid;
ca tinfo . lcid = 0x 0409;//英语

//确保提供的描述不要太长。
//如果是,只复制前127个字符。
int len = wcs len(cat description);
if(len > 127)
len = 127;
wcsncpy(catinfo . SZ description,catDescription,len);
//确保描述以null结尾。
ca tinfo . SZ description[len]= ' \ 0 ';

hr = pcr->RegisterCategories(1,& ca tinfo);
PCR-> Release();

回报HR;
}

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 设计浏览器不弹出警告地ActiveX控件

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情