请问localClass是什么意思呢???

cpp_c1 2005-08-03 11:49:37
请问 下面MSDN文档中的localClass是指的什么,能解释一下么??

INTERFACE_PART(theClass, iid, localClass) //本地类到底是什么呢??有例子么

Parameters
theClass
The name of the class that contains the interface map.
iid
The IID that is to be mapped to the embedded class.
localClass
The name of the local class.
...全文
129 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
cpp_c1 2005-08-04
  • 打赏
  • 举报
回复
UP
快乐鹦鹉 2005-08-03
  • 打赏
  • 举报
回复
看到例子中是这么定义的:
class CEditPrintObj
{
public:
CEditPrintObj();

HRESULT QueryInterface(REFIID iid, void**);
ULONG AddRef();
ULONG Release();
DWORD m_dwRef;

class CPrintObj : public IPrintInterface
{
public:
CEditPrintObj* m_pParent;
virtual HRESULT QueryInterface(REFIID iid, void** ppvObj);
virtual ULONG AddRef();
virtual ULONG Release();
} m_printObj;

class CEditObj : public IEditInterface
{
public:
CEditPrintObj* m_pParent;
virtual ULONG QueryInterface(REFIID iid, void** ppvObj);
virtual ULONG AddRef();
virtual ULONG Release();
} m_editObj;
};

快乐鹦鹉 2005-08-03
  • 打赏
  • 举报
回复
INTERFACE_PART(theClass, iid, localClass)
看了一下帮助,有例子是这样的:
INTERFACE_PART(CPrintEditObj, IID_IPrintInterface, PrintObj)
根据这个意思,CPrintEditObj是个接口类,而PrintObj是这个接口的本地实现类。不知道是不是这样阿
wshcdr 2005-08-03
  • 打赏
  • 举报
回复
INTERFACE_PART(theClass, iid, localClass)
#define INTERFACE_PART(theClass, iid, localClass) \
{&iid, offsetof(theClass, m_x##localClass)}

其实INTERFACE_PART(theClass, iid, localClass)
是为了计算出一个接口的vtable和父类this指针之间的偏移量,从而使得嵌套类可以调用
父类中实现的AddRef,Release,QueryInterface。
wshcdr 2005-08-03
  • 打赏
  • 举报
回复
INTERFACE_PART(theClass, iid, localClass)
是通过嵌套类来实现COM
cpp_c1 2005-08-03
  • 打赏
  • 举报
回复
其实我没有理解本地实现类的意思, 请劳驾解释一下好么, 俺新手
cpp_c1 2005-08-03
  • 打赏
  • 举报
回复
请问 happyparrot

为什么这个localClass的类名是: PrintObj 而不是 CPrintObj 呢??

PrintObj 的定义是上面 CPrintObj 的定义么?? 还是其他的什么定义呢??

3,245

社区成员

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

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