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
必要項。型別程式庫的全域唯一識別項 (Globally Unique Identifier,GUID),以字串表示。
- lMajorVer
型別:System.Int32
選擇項。主要版本號碼。如果省略,則使用 0。
- lMinorVer
型別:System.Int32
選擇項。次要版本號碼。如果省略,則使用 0。
- lLocaleId
型別:System.Int32
選擇性的地區設定識別碼。如需詳細資訊,請參閱LocaleID。
- bstrWrapperTool
型別:System.String
產生型別程式庫的組件 (Assembly) 包裝函式時,所使用的包裝函式工具。下表中說明可支援的值。
[1|1] 值
[1|2] 結果
[2|1] "tlbimp"
[2|2] 專案系統產生適用於存取 COM 物件方法和屬性的泛用包裝函式。
[3|1] "aximp"
[3|2] 專案系統產生 Windows form 使用於 ActiveX 裝載的包裝函式。
[4|1] "" (空字串)
[4|2] 專案系統會檢查指定型別程式庫的主要互通性 (Interoperability) 組件是否存在。如果找到,則會將這個組件當做 COM 物件方法和屬性的包裝函式使用。如果找不到,則行為與指定 "tlbimp" 時相同。
傳回值
型別:VSLangProj.Reference
傳回 Reference 物件給所要求的 ActiveX 程式庫物件。
備註
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 檔。
如果集合中已有相同識別 (Identity) 的參考,則會產生錯誤。
如果在參考有效 COM 物件時收到「未註冊的程式庫」(Library not registered) 錯誤,原因可能是傳遞給 AddActiveX 方法的 lMajorVer 參數值無效。 AddActiveX 對 GUID 以外的任何資料預設都使用 0 這個值。 例如 COM 物件的版本為 1 時,此呼叫就會失敗,因為 typelib 並沒有註冊任何為 0 的版本。 例如呼叫 1.0 版的 Windows Media Player
ref = refColl.AddActiveX("{22D6F304-B0F6-11D0-94AB-0080C74C7E95}")
就會產生先前提到的錯誤,但
ref = refColl.AddActiveX("{22D6F304-B0F6-11D0-94AB-0080C74C7E95}", 1)
正常運作。
這個方法只會加入註冊型別程式庫。 整個過程會呼叫 QueryPathOfRegTypeLib 這個 Automation (以前稱為 OLE Automation) API 函式,並將所提供的資訊傳給 AddActiveX 方法。
如果 ActiveX 物件的檔名是已知的,則可使用 Add 加入物件。 Add 方法不需要 GUID、版本或地區設定 ID。
若要移除參考,請使用 Remove。
如需 COM 物件包裝函式、ActiveX 裝載以及主要互通性組件的詳細相關資訊,請參閱Tlbimp.exe (型別程式庫匯入工具) 和 Aximp.exe (Windows Form 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 安全性
- 完全信任立即呼叫者。這個成員無法供部分信任的程式碼使用。如需詳細資訊,請參閱從部分受信任程式碼使用程式庫。