共用方式為


ICreateTypeInfo::AddFuncDesc 方法 (oaidl.h)

將函式描述新增至類型描述。

語法

HRESULT AddFuncDesc(
  [in] UINT     index,
  [in] FUNCDESC *pFuncDesc
);

參數

[in] index

類型資訊中新 FUNCDESC 的索引。

[in] pFuncDesc

描述函式的 FUNCDESC 結構。 FUNCDESC 中的 bstrIDLInfo 欄位應該是 null。

傳回值

這個方法可以傳回下列其中一個值。

傳回碼 Description
S_OK
成功。
E_INVALIDARG
一或多個自變數無效。
E_OUTOFMEMORY
記憶體不足,無法完成作業。
E_ACCESSDENIED
無法寫入目的地。
STG_E_INSUFFICIENTMEMORY
記憶體不足,無法完成作業。
TYPE_E_WRONGTYPEKIND
型別不符。

備註

索引會指定類型資訊內函式的順序。 第一個函式的索引為零。 如果指定的索引超過類型資訊中的函式數目,則會傳回錯誤。 呼叫此函式並不會將 FUNCDESC 結構的擁有權傳遞給 ICreateTypeInfo。 因此,呼叫端仍然必須取消配置 FUNCDESC 結構。

如果 TYPEKIND 是TKIND_MODULE或 oVft 為 -1 或 0,則會忽略傳遞的虛擬函式數據表 (VTBL) 欄位 (oVft) 。 呼叫 ICreateTypeInfo::LayOut 時,會設定此屬性。 如果 TYPEKIND 是TKIND_DISPATCH和雙重介面,或是 TYPEKIND 是TKIND_INTERFACE,則會使用 oVft 值。 如果使用 oVft,它必須是計算機上的 sizeof (VOID *) 倍數,否則函式會失敗並傳回E_INVALIDARG作為 HRESULT。

AddFuncDesc 函式會針對 TYPEKIND = TKIND_DISPATCH 或 TKIND_INTERFACE 類別使用傳入的成員標識子 (memid) 欄位。 如果成員標識碼設定為 MEMBERID_NIL,AddFuncDesc 會將成員標識碼指派給函式。 否則,會忽略每個 FUNCDESC 內的成員標識符欄位。

FUNCDESC 結構中的任何 HREFTYPE 欄位都必須由呼叫 AddFuncDesc相同 ITypeInfo 實例產生。

相同屬性的 get 和 put 存取子函式必須有相同的分派標識碼 (DISPID) 。

規格需求

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

另請參閱

ICreateTypeInfo