这是../Demos/ActiveX/ShellExt例程中的一段代码,请明白人给讲讲.(50分)

  • 主题发起人 主题发起人 fengxiaoxiao
  • 开始时间 开始时间
F

fengxiaoxiao

Unregistered / Unconfirmed
GUEST, unregistred user!
这是../Demos/ActiveX/ShellExt例程中的一段代码,请明白人给讲讲.
type
TContextMenu = class(TComObject, IShellExtInit, IContextMenu)
private
FFileName: array[0..MAX_PATH] of Char;
protected
{ IShellExtInit }
function IShellExtInit.Initialize = SEIInitialize
// Avoid compiler warning
function SEIInitialize(pidlFolder: PItemIDList
lpdobj: IDataObject;
hKeyProgID: HKEY): HResult
stdcall;
{ IContextMenu }
function QueryContextMenu(Menu: HMENU
indexMenu, idCmdFirst, idCmdLast,
uFlags: UINT): HResult
stdcall;
function InvokeCommand(var lpici: TCMInvokeCommandInfo): HResult
stdcall;
function GetCommandString(idCmd, uType: UINT
pwReserved: PUINT;
pszName: LPSTR
cchMax: UINT): HResult
stdcall;
end;

第一个问题:
TContextMenu=class(TComObject,IShellExtInit,IContextMenu)中Class是什麽意思?
还是类的意思吗?
第二个问题:
function IShellExtInit.Initialize = SEIInitialize;
这是什麽用法?这是定义一个函数吗?
 
第一个问题,肯定是一个类
是从一个类,两个接口继承的类。
第二个,就不知道了。
 
第一个问题:是类的意思,多继承的例子,TComObject是类,IShellExtInit,IContextMenu是接口类。
第二个问题:IShellExtInit.Initialize是回调函数,这里是实现回调函数处理过程。具体请查看回调函数的用法。
 
delphi不是只支持单继承吗?
 
接口就是接口,怎么会是接口类呢?还是不太明白。
 
DELPHI是只支持单继承,但可以利用接口来实现模拟多继承。。。
接口just接口,可以这么理解。
 
已有正确的答案了。
 
后退
顶部