求救高手:开发的简单atl组件,在IE中无法使用ActiveXObject创建

hnbapi 2012-02-24 11:30:41
用VC2010开发的atl组件,注册运行正常,但是在IE的JS中使用var bb=new ActiveXObject("myatl.atl"),无法创建对象。

请问创建支持IE,js脚本的ATL组件开发,需要注意那些事项。
...全文
197 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
hnbapi 2012-02-24
  • 打赏
  • 举报
回复
加入安全接口解决
hnbapi 2012-02-24
  • 打赏
  • 举报
回复
/ cac7.h : Ccac7 的声明

#pragma once
#include "resource.h" // 主符号



#include "ac7_i.h"
#include "atlctl.h"
#include "_Icac7Events_CP.h"



#if defined(_WIN32_WCE) && !defined(_CE_DCOM) && !defined(_CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA)
#error "Windows CE 平台(如不提供完全 DCOM 支持的 Windows Mobile 平台)上无法正确支持单线程 COM 对象。定义 _CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA 可强制 ATL 支持创建单线程 COM 对象实现并允许使用其单线程 COM 对象实现。rgs 文件中的线程模型已被设置为“Free”,原因是该模型是非 DCOM Windows CE 平台支持的唯一线程模型。"
#endif

using namespace ATL;


// Ccac7

class ATL_NO_VTABLE Ccac7 :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<Ccac7, &CLSID_cac7>,
public ISupportErrorInfo,
public IConnectionPointContainerImpl<Ccac7>,
public CProxy_Icac7Events<Ccac7>,
public IObjectWithSiteImpl<Ccac7>,
public IDispatchImpl<Icac7, &IID_Icac7, &LIBID_ac7Lib, /*wMajor =*/ 1, /*wMinor =*/ 0>,
public IObjectSafetyImpl<Ccac7, INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA>
{
public:
Ccac7()
{
}

DECLARE_REGISTRY_RESOURCEID(IDR_CAC7)


BEGIN_COM_MAP(Ccac7)
COM_INTERFACE_ENTRY(Icac7)
COM_INTERFACE_ENTRY(IDispatch)
COM_INTERFACE_ENTRY(ISupportErrorInfo)
COM_INTERFACE_ENTRY(IConnectionPointContainer)
COM_INTERFACE_ENTRY(IObjectWithSite)
COM_INTERFACE_ENTRY(IObjectSafety)
END_COM_MAP()

BEGIN_CONNECTION_POINT_MAP(Ccac7)
CONNECTION_POINT_ENTRY(__uuidof(_Icac7Events))
END_CONNECTION_POINT_MAP()
// ISupportsErrorInfo
STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid);


DECLARE_PROTECT_FINAL_CONSTRUCT()

HRESULT FinalConstruct()
{
return S_OK;
}

void FinalRelease()
{
}

public:



STDMETHOD(test)(BSTR* tt);
};

OBJECT_ENTRY_AUTO(__uuidof(cac7), Ccac7)
oyljerry 2012-02-24
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hnbapi 的回复:]
加入安全接口解决
[/Quote]
自己解决了? 安全接口一般容易忘记.

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧