- 注册时间
- 2011-3-6
- 最后登录
- 1970-1-1
该用户从未签到
|
VC使用idl生成的文件*_i.h、*_i.c、*.dll就可以了;
atl编写:
如果一个类实现一个接口则可以直接用向导生成,如果要实现多个接口,则:
修改:
*.id添加
interface ICalEx : IUnknown { // 注意一个com只能最多一个接口实现IDispatch接口,因为那个默认生成的实现了,所以这个直接
// 继承IUnknown
};
[
uuid(1E27DC21-092A-49A1-A2E5-60FCDEA9FEF7),
version(1.0),
]
coclass Cal
{
[default] interface ICal;
interface ICalEx;
};
*.h类的头文件:
class ATL_NO_VTABLE CCal :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CCal, &CLSID_Cal>,
public ICalEx,
public IDispatchImpl<ICal, &IID_ICal, &LIBID_atl111Lib, /*wMajor =*/ 1, /*wMinor =*/ 0>
{
。。。
BEGIN_COM_MAP(CCal)
COM_INTERFACE_ENTRY(ICal)
COM_INTERFACE_ENTRY(ICalEx)
COM_INTERFACE_ENTRY(IDispatch)
END_COM_MAP()
另外:
VS类视图中,那个红色的接口添加方法时,会在编译时去除,所以不能在那添加;
要添加接口方法,应该在那个像钥匙的接口(有两个,但后面那个有vtable不能用)添加方法; |
|