淘豆网
下载此文档放大查看缩小查看   1/25
下载文档 文档分类:中学教育 > 中考

指南-4 创建组件的代码.doc


下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表
0/100
您的浏览器不支持进度条
更多>>该用户其他文档
下载所得到的文件列表
指南-4 创建组件的代码.doc
文档介绍:
指南-4_创建组件的代码创建组件的代码
本章会讲述一些基本代码,之间的关系。如何发现和注册组件是本指南的第一节的目标。在后续的章节里,我们就可以专注WebLock本生的功能开发了。
,你需要编写大量的代码。必须的3个接口,而且往往还要其它的接口。这一章你将会看到更多的代码,然而这些并不是整个WebLock组件代码。“Using Utilities to Make Things Easier”展示了更加简单,组件(使用泛型和宏),这一章的目的是为了学习基础知识,是很有帮助的。
1. WebLock组件用途
WebLock组件让你浏览器当前Book控件(类似于浏览器里面的一个Tab)处于一种特别模式,防止用户离开当前的域或者一个安全域集合。一旦开启此功能,此“weblock”模式受密码保护,将一直持续到密码持有人关闭此功能。他可以用于实现家长对儿童访问域名的控制,这样儿童访问的内容就被限制到了特定的域名上。 Web Lock User Interface 显示图标,用来激活web lock 模式(在左下角的状态栏),一旦你安装了weblock组件,图标就在那儿了,不离不弃。
Web Lock User Interface
WebLock组件的大多数实际工作是有组件本身代码实现的,例如,接口,和把功能挂接到Gecko浏览器。
2. Component Registration
组件,无论存储在哪儿(共享库,Javascript文件,或者其它样式),在使用他们提供的功能之前,都需要注册。注册是一个过程,发生在 的所有应用程序,无论他们是嵌入式的Gecko客户端、 Mozilla、 Netscape 7、 Compuserve 或使用 的任何其他软件。注册为应用程序提供了所需组件的正确使用信息。
WebLock组件为了注册,需要做大量的事情。本章已经包含了组件库的组件相关接口实现:nsIModule和nsIFactory接口,这是你实现的代码的入口点。一旦你的组件实现了这些接口,剩下的注册过程本身就很简单了。注册,这会在下一节描述。
2.1 程序
程序显示的注册组件。时,程序默认在注册表中注册该组件。我们建议当您在 Mozilla scape 客户端来测试您的组件时,您应该把你的组件复制到客户端的安装文件夹中的组件目录。当它复制时那里时,,就会注册在该目录中的所有组件。
1.4及后面版本后增加了一些新的选项,你可以通过-h参数查看详细信息。
2.2另外的注册方式
基于Gecko的嵌入式应用程序,组件。 XPInstall,这是Mozilla用于安装浏览器和其它组件的跨平台安装技术,这是另外的一种注册方式。这个会在以后的“Packaging WebLock”章节进行描述。对于你想扩展的应用,你也可以问问他的作者是否还支持其它方式。
3. WebLock Module 源代码概述
正如我们在前面章节所提及的,组件是分层的。组件主要由三层组成。从内到外,对象。这个对象包含了业务逻辑,实现业务功能,例如,启动一个网络下载,实现下载进程的监听,或者提供一个新类型的处理功能。在WebLock,这一层与多个Gecko服务协同工作,防止用户访问可接受域名清单里的域名。系统。
对象层之上的是nsIFactory对象。对象的基本抽象。正如你在文章“Onion Peel View of ponent Creation,”你所看到的那样,对象进行交互,这个函数将会根据你提供的CID和IID返回相应的对象。
再往外一层就是nsIModule层。这个接口又提供了nsIFactory对象的进一步抽象,并可能允许多个nsIFactory对象。本接口的关键在于getClassObject的返回类型不必非是nsIFactory。 nsIModule 对象实现细节。这非常有用,如果调用方需要知道像其线程模型,是不是单例,实现语言,等等。在这种情况下,使用的接口是 nsIClassInfo。从外向内开始,“Onion Peel View of ponent Creation ”表示构造一个 对象的序列。
Onion Peel View of ponent Creation
在我们看组件的这几个部分的具体实现代码之前,我们先看看 weblock.cpp,看看我们要去哪儿。这个文件在本章后面详细列出(webLock1.cpp)。
“weblock.cpp”文件包含了WebLock组件的三个类。为了让WebLock能够在Mozilla里工作,你需要为WebLock组件实现一个新的接口:iWebLock,它实现了web locking功能。为了实现必须的nsIModule接口,你需要创建类WebLockModule,你还需要创建类Web 内容来自淘豆网www.taodocs.com转载请标明出处.