首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

mfc写的activex 在html中调用失败,如何弄

2012-08-17 
mfc写的activex 在html中调用失败,怎么弄我用vs2005创建了一个activex(自动生成的,什么也没改),也注册了。

mfc写的activex 在html中调用失败,怎么弄
我用vs2005创建了一个activex(自动生成的,什么也没改),也注册了。用vs2005带的测试容器可以正常测试(画了个椭圆)
但我在html中测试,调用都无法成功,是一个大叉.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<HEAD>
<TITLE> New Document </TITLE>
</HEAD>

<BODY>
<object classid="clsid:08DD8798-2986-4258-AA9B-42A9D3359D66" width="100" height="100">
</object>
</BODY>
</HTML>

classid应该没错,是uuid

我是在本机测试的,请问怎么弄?

[解决办法]
IE 安全级别, Flash 控件 可以 但 自己写的 不会默认 可以 。

需要有 标记为安全 + 数字签名 + 降低到 最低安全级别 才行
[解决办法]
可能是 IE 不允许 安装 没有 标记成安全的控件。

在 工程 主实现文件 .cpp (注意:不是 control 主实现文件)中:
的 DllRegisterServer()方法中的自动生成的代码的 return NOERROR; 之前,输入以下代码:

//
if (!AfxOleRegisterTypeLib(AfxGetInstanceHandle(), _tlid))
return ResultFromScode(SELFREG_E_TYPELIB);

if (!COleObjectFactoryEx::UpdateRegistryAll(TRUE))
return ResultFromScode(SELFREG_E_CLASS);

if (FAILED( CreateComponentCategory(
CATID_SafeForScripting,
L"Controls that are safely scriptable") ))
return ResultFromScode(SELFREG_E_CLASS);

if (FAILED( CreateComponentCategory(
CATID_SafeForInitializing,
L"Controls safely initializable from persistent data") ))
return ResultFromScode(SELFREG_E_CLASS);

if (FAILED( RegisterCLSIDInCategory(
_ctlid, CATID_SafeForScripting) ))
return ResultFromScode(SELFREG_E_CLASS);

if (FAILED( RegisterCLSIDInCategory(
_ctlid, CATID_SafeForInitializing) ))
return ResultFromScode(SELFREG_E_CLASS);
//
标记成脚本安全
[解决办法]

热点排行