高手请进!!COM插件的设计!!!急用!!! (150分)

  • 主题发起人 tiger333
  • 开始时间
T

tiger333

Unregistered / Unconfirmed
GUEST, unregistred user!
请高手介绍如何具体设计COM插件,系统是如何调用COM插件和声明接口,十分感谢!!
这方面资料很少,翻了几十页,也没有找到到详细的资料。请各位指教!!
 
看<DelphiCom 深入编程>这本书!什么都有了!!!
 
to: tiger333, 给你一个思路,具体的情况,因为需要考虑插件与系统内部数据的访问,可能随着你的系统的不同有所改变,但是基本原理一样:
1、考虑应用程序如何获得插件列表,可以通过注册表、一个特定的目录、配置文件等;比如通过注册表获得列表,可以使用一个特定的键值:如 HKCU/<YourApplication>/Plugins 里的所有的字符串值(GUID)作为插件列表;
2、定义插件的接口,如
代码:
IPlugin = interface
  procedure Start(Reserved: Integer);
  procedure Stop;
  procedure Config;
end
3、设计应用程序的插件管理界面,如一个Form,里面可以配置插件的 启动、停止、加载、卸载等,这个管理界面主要是操作第1点所提到的插件列表;
4、根据配置好的插件列表,在应用程序的适当时候(如启动完成后),加载所有的插件(如通过第1点提到的 COM 对象的 GUID),将应用程序的特定数据通过上面提到的接口中的 Reserved 参数传入;
 
买本书吗,看例子就可以了
 
看<DelphiCom 深入编程>这本书!什么都有了!!!
 
to sslxml: 你所提到的两点
2、定义插件的接口,如
代码:
IPlugin = interface
 procedure Start(Reserved: Integer);
 procedure Stop;
 procedure Config;
end
3、设计应用程序的插件管理界面,如一个Form,里面可以配置插件的 启动、停止、加载、卸载等,这个管理界面主要是操作第1点所提到的插件列表;
这里的插件是设计成自动化服务器(OLE Automation ),或者仅仅是DLL形式?
插件的启动和停止如何做到?加载和卸载如何做到?
谢谢你的指点!很快就给你加分!
 
to: tiger333,
>> 这里的插件是设计成自动化服务器(OLE Automation ),或者仅仅是DLL形式?
DLL 形式??你指的是 COM 形式吧。设计成什么模式主要看你的应用情况,都行,COM 的好处在于参数类型可以是多样的,可以使用指针等,自动化服务器可以被其他应用程序(VB)使用,特别是可以被脚本使用。各有利弊。我比较倾向于 COM 形式。
>> 插件的启动和停止如何做到?加载和卸载如何做到?
启动和停止直接调用插件的 Start 和 Stop 方法既可。加载和卸载可以实现为在注册表中增加一项或删除一项。也可以类似调用 COM 的 DllRegisterServer 和 DllUnregisterServer 的方法,而注册过程放入在 COM 内部实现。参见 Delphi 的例子。ShellExt/ContextMenu
>> 谢谢你的指点!很快就给你加分!
呵呵,刚才看了一下,你才 63 了呀。
 

Similar threads

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