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);
//
标记成脚本安全
[解决办法]