Condividi tramite


Classe IDispatchImpl

Fornisce un'implementazione predefinita per la IDispatch parte di un'interfaccia duale.

Importante

Questa classe e i relativi membri non possono essere usati nelle applicazioni eseguite in Windows Runtime.

Sintassi

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

Parametri

T
[in] Interfaccia doppia.

piid
[in] Puntatore all'IID di T.

plibid
[in] Puntatore al LIBID della libreria dei tipi che contiene informazioni sull'interfaccia. Per impostazione predefinita, viene passata la libreria dei tipi a livello di server.

wMajor
[in] Versione principale della libreria dei tipi. Per impostazione predefinita, il valore è 1.

wMinor
[in] Versione secondaria della libreria dei tipi. Per impostazione predefinita, il valore è 0.

tihclass
[in] Classe utilizzata per gestire le informazioni sul tipo per T. Per impostazione predefinita, il valore è CComTypeInfoHolder.

Membri

Costruttori pubblici

Nome Descrizione
IDispatchImpl::IDispatchImpl Costruttore. Chiama AddRef sulla variabile membro protetta che gestisce le informazioni sul tipo per l'interfaccia duale. Il distruttore chiama Release.

Metodi pubblici

Nome Descrizione
IDispatchImpl::GetIDsOfNames Esegue il mapping di un set di nomi a un set corrispondente di ID dispatch.
IDispatchImpl::GetTypeInfo Recupera le informazioni sul tipo per l'interfaccia doppia.
IDispatchImpl::GetTypeInfoCount Determina se sono disponibili informazioni sul tipo per l'interfaccia duale.
IDispatchImpl::Invoke Fornisce l'accesso ai metodi e alle proprietà esposte dall'interfaccia duale.

Osservazioni:

IDispatchImpl fornisce un'implementazione predefinita per la IDispatch parte di qualsiasi interfaccia duale in un oggetto . Un'interfaccia doppia deriva da IDispatch e usa solo tipi compatibili con Automazione. Come una dispinterface, una doppia interfaccia supporta l'associazione anticipata e l'associazione tardiva; Tuttavia, un'interfaccia duale supporta anche l'associazione vtable.

Nell'esempio seguente viene illustrata un'implementazione tipica di 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>

Per impostazione predefinita, la IDispatchImpl classe cerca le informazioni sul tipo per T nel Registro di sistema. Per implementare un'interfaccia non registrata, è possibile usare la IDispatchImpl classe senza accedere al Registro di sistema usando un numero di versione predefinito. Se si crea un IDispatchImpl oggetto con 0xFFFF come valore per wMajor e 0xFFFF come valore per wMinor, la IDispatchImpl classe recupera la libreria dei tipi dal file .dll anziché dal Registro di sistema.

IDispatchImpl contiene un membro statico di tipo CComTypeInfoHolder che gestisce le informazioni sul tipo per l'interfaccia duale. Se sono presenti più oggetti che implementano la stessa interfaccia duale, viene usata una sola istanza di CComTypeInfoHolder .

Gerarchia di ereditarietà

T

IDispatchImpl

Requisiti

Intestazione: atlcom.h

IDispatchImpl::GetIDsOfNames

Esegue il mapping di un set di nomi a un set corrispondente di ID dispatch.

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

Osservazioni:

Vedere IDispatch::GetIDsOfNames in Windows SDK.

IDispatchImpl::GetTypeInfo

Recupera le informazioni sul tipo per l'interfaccia doppia.

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

Osservazioni:

Vedere IDispatch::GetTypeInfo in Windows SDK.

IDispatchImpl::GetTypeInfoCount

Determina se sono disponibili informazioni sul tipo per l'interfaccia duale.

STDMETHOD(GetTypeInfoCount)(UINT* pctinfo);

Osservazioni:

Vedere IDispatch::GetTypeInfoCount in Windows SDK.

IDispatchImpl::IDispatchImpl

Costruttore. Chiama AddRef sulla variabile membro protetta che gestisce le informazioni sul tipo per l'interfaccia duale. Il distruttore chiama Release.

IDispatchImpl();

IDispatchImpl::Invoke

Fornisce l'accesso ai metodi e alle proprietà esposte dall'interfaccia duale.

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

Osservazioni:

Vedi IDispatch::Invoke in Windows SDK.

Vedi anche

Cenni preliminari sulla classe