共用方式為


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

描述叫用呼叫之內容的旗標。

意義
DISPATCH_METHOD
成員會以方法的形式存取。 如果有模稜兩可之處,可同時設定這個旗標和 DISPATCH_PROPERTYGET 旗標。
DISPATCH_PROPERTYGET
成員會擷取為屬性或數據成員。
DISPATCH_PROPERTYPUT
成員會變更為屬性或數據成員。
DISPATCH_PROPERTYPUTREF
成員會使用參考指派來變更,而不是使用值指派。 只有當 屬性接受對象的參考時,這個旗標才有效。

[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
S_OK
成功。
E_INVALIDARG
一或多個自變數無效。
DISP_E_EXCEPTION
叫用的成員已傳回錯誤 HRESULT。 如果成員實作 IErrorInfo,錯誤物件中會提供詳細數據。 否則, pExcepInfo 參數會包含詳細數據。
 

您也可以傳回任何 IDispatch::Invoke 錯誤。

備註

使用函式 ITypeInfo::Invoke 來存取對象的成員,或叫用實作此類型描述所描述之介面的方法。 對於支援 IDispatch 介面的物件,您可以使用 Invoke 來實 作 IDispatch::Invoke

ITypeInfo::Invoke 會取得 類別實例的指標。 否則,其參數與 IDispatch::Invoke 相同,但 ITypeInfo::Invoke 省略 refiidlcid 參數除外。 呼叫時, ITypeInfo::Invoke 會在指定的實例上執行 IDispatch::Invoke 參數所描述的動作。

針對 VTBL 介面成員, ITypeInfo::Invoke 會將類型資訊的 LCID 傳遞至以 lcid 屬性標記的參數,並將傳回的值傳遞至 retval 屬性。

如果類型描述繼承自另一個類型描述,此函式就會在基底類型描述上遞歸,以尋找具有要求成員標識符的專案。

規格需求

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

另請參閱

ITypeInfo