手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>程序设计>delphi>列表

Delphi 对象链接与嵌入(四)

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

  SmStandAlone 用户启动应用程序

  SmAutomation Windows为创建OLE对象而启动程序

  SmRegSever 应用程序仅为注册一个或多个OLE对象而启动

  SmUnregSever 应用程序仅为注销一个或多个OLE对象而启动

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

  当StartMode模式是SmAutomation,而用户不再需要服务器时发生OnLastRelease 事件。此时所有OLE控制器释放了由服务器创建的对象。缺省情况下,服务器关闭实例,但OnLastRelease 事件可根据实际情况是否关闭。OnLastRelease 事件可得到一个叫ShutDown的布尔型变量。把ShutDown设置成True,则在最后一个OLE对象释放时服务器不关闭。

  无论创建何种自动化服务器,必须定义对控制器的界面,包括定义和注册OLE对象,OLE自动化对象的属性和方法。定义界面主要是为了控制器能够引用它们。

  对已存在的自动化服务器界进行修改时,要确保向上兼容 ,不要删去已有的属性、方法,这样会导致已存在的自动化控制器发生错误,修改服务器只能增加属性和方法。

  创建OLE自动化服务器第一步是创建服务器自身。即创建能输出OLE 对象的应用程序或动态链接库。这主要取决于是创建进程内服务器还是进程外服务器。

  创建进程内服务器,即动态链接库:

  1.创建动态链接库;

  2.在工程文件的uses条款中加入OLEAuto单元;

  3.DLL中输出四个标准入口,即加入以下代码。 

  exports

DLLGetClassObject,DLLCanUnloadNow;

DLLReGISterServer,DLLUnregisterServer; 

以上代码必须准确拼写,包括大小写。与Object Pascal的其它项目不同,这些代码

对大小写敏感。

  创建进程外服务器:

  1.创建一个Delphi应用程序;

  2.在工程文件的begin之后加入以下代码; 

  if Automation,Server Registration then Exit; 

创建服务器之后,应该向服务器加入OLE自动化对象,这个过程大部分是自动完成的,但必须向Delphi的自动化对象专家提供必要的信息。

  把OLE自动化对象加入服务器:

  1.Delphi集成开发环境中选择File| New 菜单项, 并在对象集中选择Automation

Object,Delphi打开自动化对象专家。

2.给自动化对象命名

   这是服务器内部标识OLE对象的名字,必须是个有效的面象对象Pascal标识符,习惯上以T字母开头;

  3.OLE类命名

   该名用以外部控制器创建对象。当服务器在Windows中注册OLE对象, 就以这个名字在系统注册。控制器使用这个名字调用CreateOLEObject来创建对象。

  4.描述要输出的对象。

  5.定义对象的实例(instancing),进程内服务器常定义为Multiple,进程外服务器常定义为Single

  6.选择OK键完成该过程

   自动化对象专家将产生以下代码:

   ● TAutoObject派生下来的自动化对象定义,但没有定义任何属性方法;

   ● 调用DelphiOLE自动化管理器的注册代码,管理器负责Windows中注册服务器和对象。 

  在注册代码中包括一个自动产生的

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!