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.