ITypeInfo::Invoke 方法 (oaidl.h)
叫用 (Invoke) 實作類型描述所描述之介面的方法,或存取實作類型描述所描述之介面的物件屬性。
語法
HRESULT Invoke(
[in] PVOID pvInstance,
[in] MEMBERID memid,
[in] WORD wFlags,
[in, out] DISPPARAMS *pDispParams,
[out] VARIANT *pVarResult,
[out] EXCEPINFO *pExcepInfo,
[out] UINT *puArgErr
);
參數
[in] pvInstance
此類型描述所描述之介面的實例。
[in] memid
介面成員。
[in] wFlags
描述叫用呼叫之內容的旗標。
[in, out] pDispParams
自變數陣列、具名自變數的 DISPID 陣列,以及每個數位中元素數目的計數。
[out] pVarResult
結果。 如果呼叫端不預期任何結果,則為 Null。 如果 wFlags 指定DISPATCH_PROPERTYPUT或DISPATCH_PROPERTYPUTREF, 則會忽略 pVarResultis 。
[out] pExcepInfo
只有在傳回DISP_E_EXCEPTION時,才會填入例外狀況信息結構。 如果 輸入上的 pExcepInfo 為 Null,則只會傳回 HRESULT 錯誤。
[out] puArgErr
如果 Invoke 傳回 DISP_E_TYPEMISMATCH,puArgErr 會指出自變數的 rgvarg) 內具有不正確類型的索引 (。 如果多個自變數傳回錯誤, puArgErr 只會指出含有錯誤的第一個自變數。 pDispParams->rgvarg 中的引數會以反向順序顯示,因此第一個引數會具有陣列中的最高索引。 這個參數不可以是 Null。
傳回值
傳回碼 | Description |
---|---|
|
成功。 |
|
一或多個自變數無效。 |
|
叫用的成員已傳回錯誤 HRESULT。 如果成員實作 IErrorInfo,錯誤物件中會提供詳細數據。 否則, pExcepInfo 參數會包含詳細數據。 |
您也可以傳回任何 IDispatch::Invoke 錯誤。
備註
使用函式 ITypeInfo::Invoke 來存取對象的成員,或叫用實作此類型描述所描述之介面的方法。 對於支援 IDispatch 介面的物件,您可以使用 Invoke 來實 作 IDispatch::Invoke。
ITypeInfo::Invoke 會取得 類別實例的指標。 否則,其參數與 IDispatch::Invoke 相同,但 ITypeInfo::Invoke 省略 refiid 和 lcid 參數除外。 呼叫時, ITypeInfo::Invoke 會在指定的實例上執行 IDispatch::Invoke 參數所描述的動作。
針對 VTBL 介面成員, ITypeInfo::Invoke 會將類型資訊的 LCID 傳遞至以 lcid 屬性標記的參數,並將傳回的值傳遞至 retval 屬性。
如果類型描述繼承自另一個類型描述,此函式就會在基底類型描述上遞歸,以尋找具有要求成員標識符的專案。
規格需求
需求 | 值 |
---|---|
目標平台 | Windows |
標頭 | oaidl.h |