IDispatch 与IUnKnown 之间有何区别?(10分)

  • 主题发起人 主题发起人 xiaoguoch
  • 开始时间 开始时间
X

xiaoguoch

Unregistered / Unconfirmed
GUEST, unregistred user!
请教各位大虾:
System单元中的IDispatch函数与IUnKnown函数之间有何区别?
可否例示?
 
QQ群:23981160问问吧
 
怎么会没有人回答呢?问题太简单了?还是他们之间就没法比较呢?
 
IDispatch = interface(IUnknown)
['{00020400-0000-0000-C000-000000000046}']
function GetTypeInfoCount(out Count: Integer): HResult; stdcall;
function GetTypeInfo(Index, LocaleID: Integer; out TypeInfo): HResult; stdcall;
function GetIDsOfNames(const IID: TGUID; Names: Pointer;
NameCount, LocaleID: Integer; DispIDs: Pointer): HResult; stdcall;
function Invoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
Flags: Word; var Params; VarResult, ExcepInfo, ArgErr: Pointer): HResult; stdcall;
end;


IUnknown = IInterface;


也就是说IDispatch是IUnkown的派生接口或者扩展接口。
实现IDispatch的类需要实现如上几个函数。而IUnKnown则不不需要。
 
IUnknow是COM接口的基类。
IDispatch是IUnkown的派生接口,是自动化中使用的。
 
四楼说的就是的。
 
接受答案了.
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
S
回复
0
查看
922
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部