Delphi 对象链接与嵌入(四)

2008-02-23 07:16:08来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

8.4.2 创建OLE自动化服务器 

  OLE自动化服务器是应用程序或动态链接库(DLL),它可向OLE 自动化控制器输出OLE对象。 MemoEditdpr 就是OLE 自动化服务器, MemoAuto 单元中注册了MemoEdit.Appdication自动化类,所有OLE控制器均可对MemoEdit.Application进行引用。

  在Windows环境下有两种OLE自动化服务器,进程内服务器和进程外服务器, Delphi可创建这两种服务器。

  进程内服务器是输出OLE自动化对象的动态链接库。因为OLE自动化对象来自于DLL

对象是控制器程序的同一窗体进程,进程内服务器适合于创建共享的程序模块, 而这个模块可以被用不同语言编写的多个程序所共享。 进程内服务器被调用时在同一地址中运行,这样就不需要控制器进行调度,以避免处理大量的消息句柄。 进程外服务器是能输出OLE自动化对象的应用程序。

  有些OLE自动化服务器只能创建和输出一个OLE对象,有些服务器则可以处理多个OLE对象,另外一些服务器不能输出OLE对象,只能在程序内部使用OLE对象。 服务器与其能输出的对象数目的关系称为实例(instancing)

  在创建OLE 自动化对象时必须定义实例, 这样, 在创建一个OLE 自动化对象时,Windows就能决定是否创建一个新的服务器实例。表8.5列出三种实例类型。

8.6 实例的取值及含义

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

instancing类型          含义

─────────────────────────────── ───────

internal OLE对象是应用程序的内部对象,对象不需要注册,外部进程不能创

          建此对象

Single 每个服务器实例只能输出一个OLE对象实例, 若控制器需要多个OLE

 

          对象实例,WIndows为第一个OLE对象创建一个服务器实例

Multiple 一个服务器能创建和输出多个OLE 对象实例, 进程内服务器大多是

         Multiple类型

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

  每个使用OLEAuto单元的工程文件自动地拥有一个叫Automation的对象,它是非可视对象。就象Application部件拥有Delphi应用程序的一些信息一样,Automation对象也拥有服务器的一些信息,其中最重要的是StartMode属性和OnLastRelease事件。

  StartMode指示OLE自动化服务器打开方式打开的目的。表8.7列出StartMode四种取值。 

8.7 StartMode 的取值及含义

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  取值          含义

───────────────────────────────

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Delphi 对象链接与嵌入(一)

下一篇:Delphi自定义部件开发(五)