更新:2007 年 11 月
将引用添加到 ActiveX 类型库。
命名空间:  VSLangProj
程序集:  VSLangProj(在 VSLangProj.dll 中)
语法
声明
Function AddActiveX ( _
    bstrTypeLibGuid As String, _
    lMajorVer As Integer, _
    lMinorVer As Integer, _
    lLocaleId As Integer, _
    bstrWrapperTool As String _
) As Reference
用法
Dim instance As References
Dim bstrTypeLibGuid As String
Dim lMajorVer As Integer
Dim lMinorVer As Integer
Dim lLocaleId As Integer
Dim bstrWrapperTool As String
Dim returnValue As Reference
returnValue = instance.AddActiveX(bstrTypeLibGuid, _
    lMajorVer, lMinorVer, lLocaleId, _
    bstrWrapperTool)
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
)
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- 用于为类型库生成程序集包装的包装工具。下表描述了受支持的值。 - 值 - 结果 - "tlbimp" - 项目系统生成适合访问 COM 对象的方法和属性的一般包装。 - "aximp" - 项目系统生成 Windows 窗体用于 ActiveX 宿主的包装。 - "" (空字符串) - 项目系统检查指定类型库的主互操作性程序集是否存在。如果找到了,则该程序集将被用作 COM 对象的方法和属性的包装。如果没有找到,则行为和指定了 "tlbimp" 时相同。 
返回值
为所请求的 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) 和 Windows 窗体 ActiveX 控件导入程序 (Aximp.exe)。
示例
' 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
权限
- 对直接调用方的完全信任。此成员不能由部分信任的代码使用。有关更多信息,请参见通过部分受信任的代码使用库。