J'ai la classe COM Quote avec dispinterface _QuoteEvents. Pour la gestion des événements que j'utilise les instructions suivantes:Le moyen le plus rapide (en termes de performances) pour la gestion des événements COM
classe de puits d'événements, dérivés de IDispEventSimpleImpl:
class CProxyQuoteEvents : public IDispEventSimpleImpl<SINK_ID, CProxyQuoteEvents, &__uuidof(_IQuoteEvents)> {
....
}
initialisation de la bibliothèque COM et des objets de création et de conseil:
CProxyQuoteEvents g_quoteEventsProxy;
QuotePtr g_quote;
CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
g_quote.CreateInstance(__uuidof(Quote));
g_quoteEventsProxy.DispEventAdvise(g_quote, &__uuidof(_IQuoteEvents));
Toutes ces constructions fonctionne bien pour moi (les événements se déroulent comme prévu), mais je veux savoir s'il existe une autre solution plus rapide? Peut-être que je peux le réaliser sans ATL si éviter ATL sera plus rapide?
Aussi s'il vous plaît expliquer s'il y a une différence entre
class ATL_NO_VTABLE CSimple :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CSimple, &CLSID_Simple>,
public IDispatchImpl<ISwitch, &IID_ISwitch, &LIBID_DISPEVENTLib>,
public IDispEventSimpleImpl</*nID =*/ 1, CSimple, &__uuidof(Word::ApplicationEvents)>
et
class CSimple :
public IDispEventSimpleImpl</*nID =*/ 1, CSimple, &__uuidof(Word::ApplicationEvents)>