References.AddActiveX 方法
将引用添加到 ActiveX 类型库。
命名空间: VSLangProj
程序集: VSLangProj(在 VSLangProj.dll 中)
语法
声明
Function AddActiveX ( _
bstrTypeLibGuid As String, _
lMajorVer As Integer, _
lMinorVer As Integer, _
lLocaleId As Integer, _
bstrWrapperTool As String _
) As Reference
Reference AddActiveX(
string bstrTypeLibGuid,
int lMajorVer,
int lMinorVer,
int lLocaleId,
string bstrWrapperTool
)
Reference^ AddActiveX(
[InAttribute] String^ bstrTypeLibGuid,
[InAttribute] int lMajorVer,
[InAttribute] int lMinorVer,
[InAttribute] int lLocaleId,
[InAttribute] String^ bstrWrapperTool
)
abstract AddActiveX :
bstrTypeLibGuid:string *
lMajorVer:int *
lMinorVer:int *
lLocaleId:int *
bstrWrapperTool:string -> Reference
function AddActiveX(
bstrTypeLibGuid : String,
lMajorVer : int,
lMinorVer : int,
lLocaleId : int,
bstrWrapperTool : String
) : Reference
参数
- bstrTypeLibGuid
类型:System.String
必选。类型库的全局唯一标识符 (GUID),表示为一个字符串。
- lMajorVer
类型:System.Int32
可选。主版本号。如果省略,则使用“0”。
- lMinorVer
类型:System.Int32
可选。次版本号。如果省略,则使用“0”。
- lLocaleId
类型:System.Int32
可选区域设置 ID。有关更多信息,请参见 LocaleID。
- bstrWrapperTool
类型:System.String
用于为类型库生成程序集包装的包装工具。下表描述了受支持的值。
[1|1] 值
[1|2] 结果
[2|1] "tlbimp"
[2|2] 该项目系统生成适合访问 COM 对象的方法和属性的泛型包装。
[3|1] "aximp"
[3|2] 项目系统生成 Windows 窗体用于 ActiveX 宿主的包装。
[4|1] "" ((空字符串)
[4|2] 项目系统检查指定类型库的主互操作性程序集是否存在。如果找到,则该程序集将被用作 COM 对象的方法和属性的包装。如果没有找到,则行为和指定了的 "tlbimp" 相同。
返回值
类型:VSLangProj.Reference
为所请求的 ActiveX 库对象返回一个 Reference 对象。
备注
AddActiveX 方法为指定的对象和该对象列出的任何依赖项添加项目引用。 因此,对此方法调用一次就可能导致将多个引用添加到 References 集合。
GUID 的有效格式是“{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}”,其中 X 是一个十六进制数 (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F)。 为 ActiveX 对象确定 GUID 的一种方法是用随 Visual Studio 一起分发的 Oleview.exe 工具查看 .ocx 文件或 .tlb 文件。
如果集合中已经存在具有相同标识的引用,则将生成错误。
如果在引用有效的 COM 对象时,出现“库未注册”错误,则很可能是由于您未将有效的 lMajorVer 参数值传递给 AddActiveX 方法。 默认情况下,对于 GUID 以外的任何项,AddActiveX 都使用值 0。 例如,如果 COM 对象的版本为 1,则调用将失败,原因是没有版本为 0 的已注册类型库。 例如,调用 1.0 版的 Windows Media Player 时,
ref = refColl.AddActiveX("{22D6F304-B0F6-11D0-94AB-0080C74C7E95}")
将产生上述错误,但是
ref = refColl.AddActiveX("{22D6F304-B0F6-11D0-94AB-0080C74C7E95}", 1)
正常工作。
此方法只添加已注册的类型库。 调用“自动化”(原来为“OLE 自动化”)API 函数 QueryPathOfRegTypeLib,将提供的信息传递给 AddActiveX 方法。
如果知道 ActiveX 对象的文件名,则可以通过使用 Add 添加该对象。 Add 方法不需要 GUID、版本或区域设置 ID。
若要移除引用,请使用 Remove。
有关 COM 对象包装、ActiveX 承载和主互操作程序集的更多信息,请参见 Tlbimp.exe(类型库导入程序) 和 Aximp.exe(Windows 窗体 ActiveX 控件导入程序)。
示例
' Macro Editor
' Add a reference to the ActiveX Data Objects Library, Version 2.5
Imports VSLangProj
Public Sub AddARef()
Try
Dim proj As VSLangProj.VSProject = _
CType(DTE.Solution.Projects.Item(1).Object, _
VSLangProj.VSProject)
' GUID for ActiveX Data Objects, version 2.5
proj.References.AddActiveX( _
"{00000205-0000-0010-8000-00AA006D2EA4}", 2, 5)
Catch ex As System.Exception
MsgBox("Cannot add that reference.")
End Try
End Sub
.NET Framework 安全性
- 对直接调用方的完全信任。此成员不能由部分信任的代码使用。有关更多信息,请参见通过部分受信任的代码使用库。