TypeLibrary 声明
ActiveX 组件常常要描述类型库中该组件支持的常量。类型库是一个文件,其中包含有关 ActiveX 组件所支持的对象和类型的信
息。如果用户的 Web 应用程序依赖于已在类型库中声明了类型的 ActiveX 对象,就可以在 Global.asa 文件中声明其类型。这
样做以后,就可以在应用程序范围内从任何脚本引用已在类型库中声明了的数据类型。
有关在 ASP 中使用常量的详细信息,请参阅“使用变量和常量”。
语法
<!--METADATA TYPE="TypeLib"
FILE="file"
UUID="typelibraryuuid"
VERSION="majorversionnumber.minorversionnumber"
LCID="localeid"
-->
参数
file
类型库的绝对路径。如果提供了该参数和 typelibraryuuid 参数,则 file 将用于标识类型库。file 参数和
typelibraryuuid 参数都是必选项。
typelibraryuuid
类型库统一的唯一标识。file 参数和 typelibraryuuid 参数都是必选项。
majorversionnumber
用于选择版本。如果找不到所需的版本,将返回错误。该参数是可选项。
minorversionnumber
用于选择版本。如果找不到所需的版本,将返回错误。该参数是可选项。
localeid
现场标识,用于类型库。如果找不到所需的现场,将返回错误。该参数是可选项。
错误信息
服务器可返回下列错误消息。
错误 说明
ASP 0222 指定的类型库无效。METADATA 标记包含无效的类型库指定。
ASP 0223 找不到类型库。METADATA 包含的类型库指定与注册表项不符。
ASP 0224 类型库无法加载。ASP 无法加载 METADATA 标记中指定的类型库。
ASP 0225 类型库不能重叠。ASP 无法从在 METADATA 标记中指定的类型库中创建 Type Library Wrapper 对象。
注释
最好将 METADATA 标记写在 Global.asa 文件的开始位置。但是,无论是内部和外部 SCRIPT 标记,都可以出现在 Global.asa
文件中的任何位置。
通过将类型库的名称加在该常量的前面,可以避免对常量的不明确引用。例如,ADODB.adErrItemNotFound 会比
adErrItemNotFound 更明确。
如果使用 Microsoft Visual InterDev 创建 global.asa 文件,则 METADATA 标记将包含可选的 STARTSPAN 和 ENDSPAN 关
键字。而 IIS 则会忽略这两个关键字。
示例
下面示例中的 MyComponent 是用 Visual Basic 5.0 编写的。MyComponent 使用下列语句定义常量 MyError。
Public Const MyError = "You are not using MyComponent correctly."
类型库包含在 mycomponent.lib 中,该文件安装在下面的目录中。
C:\MyComponent
下面的 METADATA 标记包含在 MyApp 应用程序的 global.asa 文件中。该示例使用可选的 STARTSPAN 和 ENDSPAN 标记。而
IIS 则不需要这两个标记。
<!--METADATA TYPE="TypeLib"
FILE="MyComponent.lib"
-->
现在,MyApp 应用程序中的任何 ASP 都包含如下脚本:
<%
Dim MyVar
Set MyVar = Server.CreateObject("MyComponent.MyClass")
Currentreturn = MyVar.MyMethod
If Currentreturn = False
Response.Write(MyError)
End If
%>