BEGIN_INTERFACE_PART宏

来源:http://blog.csdn.net/songsu/archive/2008/06/17/2555741.aspx   

在类中使用 BEGIN_INTERFACE_PART 和 END_INTERFACE_PART 宏来定义你希望实现的每一个接口

BEGIN_INTERFACE_PART(localClass,iface); END_INTERFACE_PART(localClass)

localClass: 实现接口的类名 iface 要实现的接口名

说明:为你的类要实现的每一个接口,你都需要使用BEGIN_INTERFACE_PART和END_INTERFACE_PART对。这两个宏定义了一个从OLE接口继承的本地类,你也要在这个类的里面申明成员。AddRef,Release和QueryInterface方法被自动的申明。你必须为每一个接口将要实现的函数包含一个申明(这些申明被放置在BEGIN_INTERFACE_PART和END_INTERFACE_PART宏之间)

iface参数是你希望实现的OLE接口,例如IAdviseSink或者IPersistStorage(或者你自已定义的接口)。

localClass参数是你本地将会定义的类名。'X'将被自动的首先考虑。这个命名习惯过去常常被用来避免全局类名冲突。另外,嵌入的成员命名除了以'm_x'为前缀以外,其它的与localClass名称一样。

例如: BEGIN_INTERFACE_PART(MyAdviseSink, IAdviseSink)    STDMETHOD_(void,OnDataChange)(LPFORMATETC, LPSTGMEDIUM);    STDMETHOD_(void,OnViewChange)(DWORD, LONG);    STDMETHOD_(void,OnRename)(LPMONIKER);    STDMETHOD_(void,OnSave)();    STDMETHOD_(void,OnClose)(); END_INTERFACE_PART(MyAdviseSink)

将定义一个从IAdviseSink继承的XMyAdviseSink本地类,和被称为m_xMyAdviseSink的类成员。

说明:从添加STDMETHOD_开始的行是从OLE2.H复制的,它是被改进的和必须的。从OLE2.H文件中复制他们能减少错误和更容易理解。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值