走过路过,千万别错过

shanglinhu 2004-09-03 05:21:43
1。问题一:句子翻译:
A version of IUnknown renamed to enable a class to support both nondelegating and delegating IUnknown interfaces in the same COM object.
这句话中的nondelegating和delegating怎么翻译,什么意思??有什么区别?

2。问题二:我在ComBase.h中看到如下句子:
#ifndef INONDELEGATINGUNKNOWN_DEFINED
DECLARE_INTERFACE(INonDelegatingUnknown)
{
STDMETHOD(NonDelegatingQueryInterface) (THIS_ REFIID, LPVOID *) PURE;
STDMETHOD_(ULONG, NonDelegatingAddRef)(THIS) PURE;
STDMETHOD_(ULONG, NonDelegatingRelease)(THIS) PURE;
};
#define INONDELEGATINGUNKNOWN_DEFINED
#endif
不知道是什么意思,哪位能帮我解释解释。它跟下面句子有什么关系(from MSDN Library):
interface INonDelegatingUnknown
{
virtual HRESULT NonDelegatingQueryInterface) (REFIID riid, LPVOID *ppv) PURE;
virtual ULONG NonDelegatingAddRef)(void) PURE;
virtual ULONG NonDelegatingRelease)(void) PURE;
};

望高手指点。谢了。
...全文
112 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
shanglinhu 2004-09-03
  • 打赏
  • 举报
回复
8懂,努力ing,question more:
在看源程序时,如AMFilter.h,其中有
class AM_NOVTABLE CBaseMediaFilter : public CUnknown,public IMediaFilter
{
......
}
像CUnknown定义很容易找到,但IMediaFilter在哪里定义呢??找不到。
前段时间看了COM,一知半解,现在看directX,一头水雾,郁闷ing。
GoogleGeek 2004-09-03
  • 打赏
  • 举报
回复
问题1:
delegate在这里可以翻译成"委托"或者"代理"
A version of IUnknown renamed to enable a class to support both nondelegating and delegating IUnknown interfaces in the same COM object.
这句话的意思是实现了非委托IUnknown的对象可以被聚合(集合)使用
涉及到对象聚合时的接口查询的实现技巧!
说多了你可能更不懂!---你需要牢记的是编译器根本不在乎你的虚函数名称,
在编译器的眼里虚函数就是一个vtable的指针而已
问题2:
#ifndef INONDELEGATINGUNKNOWN_DEFINED
DECLARE_INTERFACE(INonDelegatingUnknown)
{
STDMETHOD(NonDelegatingQueryInterface) (THIS_ REFIID, LPVOID *) PURE;
STDMETHOD_(ULONG, NonDelegatingAddRef)(THIS) PURE;
STDMETHOD_(ULONG, NonDelegatingRelease)(THIS) PURE;
};
#define INONDELEGATINGUNKNOWN_DEFINED
#endif

就是额外声明一个和IUnknown一样的接口---为了支持聚合调用
因为c++不可能同时实现两个名字一样的IUnkonwn就口定义

//------------------------------
最最重要的一点你要明白你的多接口c++对象在内存中的布局 以及c++是如何实现多态的!
否则你可能永远不明白其中的真谛!!

话有说回来,com的聚合实现是有点难度
呵呵
祝你好运

wangqin7927 2004-09-03
  • 打赏
  • 举报
回复
这是建立com组件必需的函数!

2,542

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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