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
S_OK
成功。
E_INVALIDARG
一或多個自變數無效。
E_OUTOFMEMORY
記憶體不足,無法完成作業。

備註

使用 Bind 系結至類型的變數和方法,或系結至類型庫中的全域變數和方法。 傳回的 DESCKIND 指標 pDescKind 指出名稱是否系結至 VARDESC、FUNCDESC 或 ITypeComp 實例。 傳回的 pBindPtr 會指向 VARDESC、FUNCDESC 或 ITypeComp

如果數據成員或方法系結至 ,則ppTInfopoints會指向包含方法或數據成員的類型描述。

如果 Bind 會將名稱系結至巢狀系結內容,它會傳回 pBindPtrITypeComp 實例的指標,以及 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

如同 ITypeCompITypeInfo 和 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) 來取得成員的位址。

注意wflags 參數與 IDispatch::Invoke 中的 wflags 參數相同。
 

規格需求

需求
目標平台 Windows
標頭 oaidl.h

另請參閱

ITypeComp