Freigeben über


IDispatchImpl-Klasse

Stellt eine Standardimplementierung für den IDispatch Teil einer dualen Schnittstelle bereit.

Wichtig

Diese Klasse und ihre Member können nicht in Anwendungen verwendet werden, die in der Windows-Runtime ausgeführt werden.

Syntax

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
[in] Eine duale Schnittstelle.

piid
[in] Ein Zeiger auf die IID von T.

plibid
[in] Ein Zeiger auf die LIBID der Typbibliothek, die Informationen zur Schnittstelle enthält. Standardmäßig wird die Typbibliothek auf Serverebene übergeben.

wMajor
[in] Die Hauptversion der Typbibliothek. Der Standardwert ist 1.

wMinor
[in] Die Nebenversion der Typbibliothek. Der Wert ist standardmäßig 0.

tihclass
[in] Die Klasse, die zum Verwalten der Typinformationen für T verwendet wird. Standardmäßig lautet CComTypeInfoHolderder Wert .

Member

Öffentliche Konstruktoren

Name Beschreibung
IDispatchImpl::IDispatchImpl Der Konstruktor. Aufrufe AddRef der geschützten Membervariable, die die Typinformationen für die duale Schnittstelle verwaltet. Der Destruktor ruft Release auf.

Öffentliche Methoden

Name Beschreibung
IDispatchImpl::GetIDsOfNames Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu.
IDispatchImpl::GetTypeInfo Ruft die Typinformationen für die duale Schnittstelle ab.
IDispatchImpl::GetTypeInfoCount Bestimmt, ob Typinformationen für die duale Schnittstelle verfügbar sind.
IDispatchImpl::Invoke Bietet Zugriff auf die Methoden und Eigenschaften, die von der dualen Schnittstelle verfügbar gemacht werden.

Hinweise

IDispatchImpl stellt eine Standardimplementierung für den IDispatch Teil einer beliebigen dualen Schnittstelle für ein Objekt bereit. Eine duale Schnittstelle wird von IDispatch nur automatisierungskompatiblen Typen abgeleitet und verwendet. Wie eine Dispinterface unterstützt eine duale Schnittstelle frühe Bindung und späte Bindung; Eine duale Schnittstelle unterstützt jedoch auch die vtable-Bindung.

Das folgende Beispiel zeigt eine typische Implementierung von 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>

Standardmäßig sucht die IDispatchImpl Klasse die Typinformationen für T in der Registrierung. Um eine nicht registrierte Schnittstelle zu implementieren, können Sie die IDispatchImpl Klasse verwenden, ohne auf die Registrierung zuzugreifen, indem Sie eine vordefinierte Versionsnummer verwenden. Wenn Sie ein IDispatchImpl Objekt erstellen, das 0xFFFF als Wert für wMajor und 0xFFFF als Wert für wMinor hat, ruft die IDispatchImpl Klasse die Typbibliothek aus der .dll Datei anstelle der Registrierung ab.

IDispatchImpl enthält ein statisches Element vom Typ CComTypeInfoHolder , das die Typinformationen für die duale Schnittstelle verwaltet. Wenn Sie über mehrere Objekte verfügen, die dieselbe duale Schnittstelle implementieren, wird nur eine Instanz von CComTypeInfoHolder verwendet.

Vererbungshierarchie

T

IDispatchImpl

Anforderungen

Kopfzeile: atlcom.h

IDispatchImpl::GetIDsOfNames

Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu.

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

Hinweise

Siehe "IDispatch::GetIDsOfNames" im Windows SDK.

IDispatchImpl::GetTypeInfo

Ruft die Typinformationen für die duale Schnittstelle ab.

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

Hinweise

Siehe "IDispatch::GetTypeInfo " im Windows SDK.

IDispatchImpl::GetTypeInfoCount

Bestimmt, ob Typinformationen für die duale Schnittstelle verfügbar sind.

STDMETHOD(GetTypeInfoCount)(UINT* pctinfo);

Hinweise

Siehe IDispatch::GetTypeInfoCount im Windows SDK.

IDispatchImpl::IDispatchImpl

Der Konstruktor. Aufrufe AddRef der geschützten Membervariable, die die Typinformationen für die duale Schnittstelle verwaltet. Der Destruktor ruft Release auf.

IDispatchImpl();

IDispatchImpl::Invoke

Bietet Zugriff auf die Methoden und Eigenschaften, die von der dualen Schnittstelle verfügbar gemacht werden.

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

Hinweise

Siehe "IDispatch::Invoke " im Windows SDK.

Siehe auch

Klassenübersicht