关于END_COM_MAP,子类里为啥还能存在纯虚函数,感觉没看懂
关于END_COM_MAP,子类里为什么还能存在纯虚函数,感觉没看懂
ATL插入简单对象,END_COM_MAP宏展开里面声明了几个纯虚函数(Add,Release,QueryInterface),有点没明白,客户可以调用CoCreateInstance创建com对象,为什么这个com类还能存在纯虚函数?
------解决方案--------------------
恭喜楼主,接分!
class ATL_NO_VTABLE CFun :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CFun, &CLSID_Fun>,
public IFun,
public IStr
{
public:
CFun()
{
}
DECLARE_REGISTRY_RESOURCEID(IDR_FUN)
BEGIN_COM_MAP(CFun)
COM_INTERFACE_ENTRY(IFun)
COM_INTERFACE_ENTRY(IStr)
END_COM_MAP()
DECLARE_PROTECT_FINAL_CONSTRUCT()
HRESULT FinalConstruct()
{
return S_OK;
}
void FinalRelease()
{
}
public:
STDMETHOD(Sub)(LONG n1, LONG n2, LONG* pRes);
STDMETHOD(Add2)(LONG n1, LONG n2, LONG* pRes);
STDMETHOD(Cat)(BSTR s1, BSTR s2, BSTR* psVal);
};
OBJECT_ENTRY_AUTO(__uuidof(Fun), CFun)
ATL插入简单对象,END_COM_MAP宏展开里面声明了几个纯虚函数(Add,Release,QueryInterface),有点没明白,客户可以调用CoCreateInstance创建com对象,为什么这个com类还能存在纯虚函数?
------解决方案--------------------
恭喜楼主,接分!