Bagikan melalui


ITypeInfo::Memanggil metode (oaidl.h)

Memanggil metode, atau mengakses properti objek, yang mengimplementasikan antarmuka yang dijelaskan oleh deskripsi jenis.

Sintaks

HRESULT Invoke(
  [in]      PVOID      pvInstance,
  [in]      MEMBERID   memid,
  [in]      WORD       wFlags,
  [in, out] DISPPARAMS *pDispParams,
  [out]     VARIANT    *pVarResult,
  [out]     EXCEPINFO  *pExcepInfo,
  [out]     UINT       *puArgErr
);

Parameter

[in] pvInstance

Instans antarmuka yang dijelaskan oleh deskripsi jenis ini.

[in] memid

Anggota antarmuka.

[in] wFlags

Bendera yang menjelaskan konteks panggilan pemanggilan.

Nilai Makna
DISPATCH_METHOD
Anggota diakses sebagai metode. Jika ada ambiguitas, bendera ini dan DISPATCH_PROPERTYGET dapat diatur.
DISPATCH_PROPERTYGET
Anggota diambil sebagai properti atau anggota data.
DISPATCH_PROPERTYPUT
Anggota diubah sebagai properti atau anggota data.
DISPATCH_PROPERTYPUTREF
Anggota diubah dengan menggunakan penetapan referensi, bukan penetapan nilai. Bendera ini hanya valid ketika properti menerima referensi ke objek.

[in, out] pDispParams

Array argumen, array DISPID untuk argumen bernama, dan jumlah jumlah elemen di setiap array.

[out] pVarResult

Hasilnya. Harus null jika penelepon tidak mengharapkan hasil apa pun. Jika wFlags menentukan DISPATCH_PROPERTYPUT atau DISPATCH_PROPERTYPUTREF, pVarResultis diabaikan.

[out] pExcepInfo

Struktur informasi pengecualian, yang diisi hanya jika DISP_E_EXCEPTION dikembalikan. Jika pExcepInfo null pada input, hanya kesalahan HRESULT yang akan dikembalikan.

[out] puArgErr

Jika Invoke mengembalikan DISP_E_TYPEMISMATCH, puArgErr menunjukkan indeks (dalam rgvarg) argumen dengan jenis yang salah. Jika lebih dari satu argumen mengembalikan kesalahan, puArgErr hanya menunjukkan argumen pertama dengan kesalahan. Argumen dalam pDispParams-rgvarg> muncul dalam urutan terbalik, sehingga argumen pertama adalah argumen yang memiliki indeks tertinggi dalam array. Parameter ini tidak boleh null.

Nilai kembali

Menampilkan kode Deskripsi
S_OK
Berhasil.
E_INVALIDARG
Satu atau beberapa argumen tidak valid.
DISP_E_EXCEPTION
Anggota yang dipanggil telah mengembalikan kesalahan HRESULT. Jika anggota mengimplementasikan IErrorInfo, detail tersedia dalam objek kesalahan. Jika tidak, parameter pExcepInfo berisi detail.
 

Salah satu kesalahan IDispatch::Invoke juga dapat dikembalikan.

Keterangan

Gunakan fungsi ITypeInfo::Invoke untuk mengakses anggota objek atau memanggil metode yang mengimplementasikan antarmuka yang dijelaskan oleh deskripsi jenis ini. Untuk objek yang mendukung antarmuka IDispatch , Anda dapat menggunakan Invoke untuk mengimplementasikan IDispatch::Invoke.

ITypeInfo::Invoke mengambil pointer ke instans kelas. Jika tidak, parameternya sama dengan IDispatch::Invoke, kecuali bahwa ITypeInfo::Invoke menghilangkan parameter refiid dan lcid . Ketika dipanggil, ITypeInfo::Invoke melakukan tindakan yang dijelaskan oleh parameter IDispatch::Invoke pada instans yang ditentukan.

Untuk anggota antarmuka VTBL, ITypeInfo::Invoke meneruskan LCID informasi jenis ke dalam parameter yang ditandai dengan atribut lcid, dan nilai yang dikembalikan ke dalam atribut retval.

Jika deskripsi jenis mewarisi dari deskripsi jenis lain, fungsi ini berulang pada deskripsi jenis dasar untuk menemukan item dengan ID anggota yang diminta.

Persyaratan

Persyaratan Nilai
Target Platform Windows
Header oaidl.h

Lihat juga

ITypeInfo