ITypeComp::Bind 方法 (oaidl.h)
對應名稱至型別的成員,或繫結包含於型別程式庫中的全域變數和函式。
語法
HRESULT Bind(
[in] LPOLESTR szName,
[in] ULONG lHashVal,
[in] WORD wFlags,
[out] ITypeInfo **ppTInfo,
[out] DESCKIND *pDescKind,
[out] BINDPTR *pBindPtr
);
參數
[in] szName
要系結的名稱。
[in] lHashVal
LHashValOfNameSys 所計算名稱的哈希值。
[in] wFlags
INVOKEKIND 列舉中定義的一或多個旗標。 指定名稱是否參考為方法或屬性。 系結至變數時,請指定旗標INVOKE_PROPERTYGET。 指定要系結至任何類型的成員的零。
[out] ppTInfo
如果傳回 FUNCDESC 或 VARDESC, 則 ppTInfo 會指向類型描述的指標,其中包含其系結的專案。
[out] pDescKind
指出系結至 的名稱是否為 VARDESC、FUNCDESC 或 TYPECOMP。 如果沒有相符專案,DESCKIND_NONE。
[out] pBindPtr
系結至 VARDESC、FUNCDESC 或 ITypeComp 介面。
傳回值
這個方法可以傳回其中一個值。
傳回碼 | Description |
---|---|
|
成功。 |
|
一或多個自變數無效。 |
|
記憶體不足,無法完成作業。 |
備註
使用 Bind 系結至類型的變數和方法,或系結至類型庫中的全域變數和方法。 傳回的 DESCKIND 指標 pDescKind 指出名稱是否系結至 VARDESC、FUNCDESC 或 ITypeComp 實例。 傳回的 pBindPtr 會指向 VARDESC、FUNCDESC 或 ITypeComp。
如果數據成員或方法系結至 ,則ppTInfopoints會指向包含方法或數據成員的類型描述。
如果 Bind 會將名稱系結至巢狀系結內容,它會傳回 pBindPtr 中 ITypeComp 實例的指標,以及 ppTInfo 中的 Null 類型描述指標。 例如,如果模組 (TKIND_MODULE) 、列舉 (TKIND_ENUM) 或 coclass (TKIND_COCLASS) 傳遞類型描述的名稱,Bind 會傳回模組、列舉或 coclass 之類型描述的 ITypeComp 實例。 這項功能支援 Visual Basic 等語言,可讓類型描述的成員參考以類型描述的名稱限定。 例如,模組中的函式可由 modulename參考。functionname。
標示為 Application 物件的TKIND_ENUM、TKIND_MODULE和TKIND_COCLASS類型成員可以直接從 ITypeComp 系結至,而不需指定模組的名稱。 coclass 的 ITypeComp 會延遲至其預設介面的 ITypeComp 。
如同 ITypeComp、ITypeInfo 和 ITypeInfo 的其他方法,呼叫程式代碼會負責釋放傳回的物件實例或結構。 如果傳回 VARDESC 或 FUNCDESC,則呼叫端會負責使用傳回的類型描述來刪除它,並釋放類型描述實例本身。 否則,如果傳回 ITypeComp 實例,呼叫端必須釋放它。
如果您呼叫類型庫的 Bind 方法,請將 Application 物件類別的成員名稱傳遞 (已設定TYPEFLAG_FAPPOBJECT旗標的類別) 套用特殊規則。 在此情況下,Bind 會傳回 pDescKind 中的DESCKIND_IMPLICITAPPOBJ、描述 pBindPtr 中 Application 物件的 VARDESC,以及 ppTInfo 中 Application 物件類別的 ITypeInfo。 若要系結至物件,ITypeInfo::GetTypeComp 必須呼叫 以取得 Application 物件類別的 ITypeComp,然後使用一開始傳遞至類型庫的 ITypeComp 的名稱重新叫用其 Bind 方法。
呼叫端應該使用傳回的 ITypeInfo 指標 (ppTInfo) 來取得成員的位址。
規格需求
需求 | 值 |
---|---|
目標平台 | Windows |
標頭 | oaidl.h |