Bagikan melalui


Kelas IDispatchImpl

Menyediakan implementasi default untuk IDispatch bagian dari antarmuka ganda.

Penting

Kelas ini dan anggotanya tidak dapat digunakan dalam aplikasi yang dijalankan di Windows Runtime.

Sintaks

template<class T,
        const IID* piid= &__uuidof(T),
        const GUID* plibid = &CAtlModule::m_libid,
        WORD wMajor = 1,
        WORD wMinor = 0,
        class tihclass = CComTypeInfoHolder>
class ATL_NO_VTABLE IDispatchImpl : public T

Parameter

T
[di] Antarmuka ganda.

piid
[di] Penunjuk ke IID T.

plibid
[di] Penunjuk ke LIBID pustaka jenis yang berisi informasi tentang antarmuka. Secara default, pustaka jenis tingkat server diteruskan.

wMajor
[di] Versi utama pustaka jenis. Secara default, nilainya adalah 1.

wMinor
[di] Versi minor dari pustaka jenis. Secara default, nilainya adalah 0.

tihclass
[di] Kelas yang digunakan untuk mengelola informasi jenis untuk T. Secara default, nilainya adalah CComTypeInfoHolder.

Anggota

Konstruktor Publik

Nama Deskripsi
IDispatchImpl::IDispatchImpl Konstruktor. AddRef Panggilan pada variabel anggota yang dilindungi yang mengelola informasi jenis untuk antarmuka ganda. Destruktor memanggil Release.

Metode Publik

Nama Deskripsi
IDispatchImpl::GetIDsOfNames Memetakan sekumpulan nama ke sekumpulan pengidentifikasi pengiriman yang sesuai.
IDispatchImpl::GetTypeInfo Mengambil informasi jenis untuk antarmuka ganda.
IDispatchImpl::GetTypeInfoCount Menentukan apakah ada informasi jenis yang tersedia untuk antarmuka ganda.
IDispatchImpl::Invoke Menyediakan akses ke metode dan properti yang diekspos oleh antarmuka ganda.

Keterangan

IDispatchImpl menyediakan implementasi default untuk IDispatch bagian dari antarmuka ganda apa pun pada objek. Antarmuka ganda berasal dari IDispatch dan hanya menggunakan jenis yang kompatibel dengan Automation. Seperti dispinterface, antarmuka ganda mendukung pengikatan awal dan pengikatan terlambat; namun, antarmuka ganda juga mendukung pengikatan vtable.

Contoh berikut menunjukkan implementasi umum dari IDispatchImpl.

class ATL_NO_VTABLE CBeeper :
   public CComObjectRootEx<CComSingleThreadModel>,
   public CComCoClass<CBeeper, &CLSID_Beeper>,
   public IDispatchImpl<IBeeper, &IID_IBeeper, &LIBID_NVC_ATL_COMLib, /*wMajor =*/ 1, /*wMinor =*/ 0>

Secara default, IDispatchImpl kelas mencari informasi jenis untuk T di registri. Untuk menerapkan antarmuka yang tidak terdaftar, Anda dapat menggunakan IDispatchImpl kelas tanpa mengakses registri dengan menggunakan nomor versi yang telah ditentukan sebelumnya. Jika Anda membuat IDispatchImpl objek yang memiliki 0xFFFF sebagai nilai untuk wMajor dan 0xFFFF sebagai nilai untuk wMinor, IDispatchImpl kelas mengambil pustaka jenis dari file .dll alih-alih registri.

IDispatchImpl berisi anggota statis jenis CComTypeInfoHolder yang mengelola informasi jenis untuk antarmuka ganda. Jika Anda memiliki beberapa objek yang mengimplementasikan antarmuka ganda yang sama, hanya satu instans yang CComTypeInfoHolder digunakan.

Hierarki Warisan

T

IDispatchImpl

Persyaratan

Header: atlcom.h

IDispatchImpl::GetIDsOfNames

Memetakan sekumpulan nama ke sekumpulan pengidentifikasi pengiriman yang sesuai.

STDMETHOD(GetIDsOfNames)(
    REFIID riid,
    LPOLESTR* rgszNames,
    UINT cNames,
    LCID lcid,
    DISPID* rgdispid);

Keterangan

Lihat IDispatch::GetIDsOfNames di Windows SDK.

IDispatchImpl::GetTypeInfo

Mengambil informasi jenis untuk antarmuka ganda.

STDMETHOD(GetTypeInfo)(
    UINT itinfo,
    LCID lcid,
    ITypeInfo** pptinfo);

Keterangan

Lihat IDispatch::GetTypeInfo di Windows SDK.

IDispatchImpl::GetTypeInfoCount

Menentukan apakah ada informasi jenis yang tersedia untuk antarmuka ganda.

STDMETHOD(GetTypeInfoCount)(UINT* pctinfo);

Keterangan

Lihat IDispatch::GetTypeInfoCount di Windows SDK.

IDispatchImpl::IDispatchImpl

Konstruktor. AddRef Panggilan pada variabel anggota yang dilindungi yang mengelola informasi jenis untuk antarmuka ganda. Destruktor memanggil Release.

IDispatchImpl();

IDispatchImpl::Invoke

Menyediakan akses ke metode dan properti yang diekspos oleh antarmuka ganda.

STDMETHOD(Invoke)(
    DISPID dispidMember,
    REFIID riid,
    LCID lcid,
    WORD wFlags,
    DISPPARAMS* pdispparams,
    VARIANT* pvarResult,
    EXCEPINFO* pexcepinfo,
    UINT* puArgErr);

Keterangan

Lihat IDispatch::Invoke di Windows SDK.

Lihat juga

Gambaran Umum Kelas