The connection point protocol defines a mechanism for a client interested in receiving event callbacks to pass its event sink interface pointer to an event source. Neither the client nor the event source needs to be written with knowledge of each other. Objects hosted on a web page or, more generally, objects used by scripting languages must use the connection points protocol to fire events to the scripting engine. Also, ActiveX controls fire their events using the connection points protocol. Although this protocol is acceptable for intra-apartment use, it is inefficient (when considering round-trips) for use across an apartment boundary.
ATL provides the IDispEvent and IDispEventSimple classes for a client object to use to receive event callbacks. Additionally, ATL provides the Implement Connection Point Wizard so you can easily generate a class that manages a connection point and contains helper methods to fire the events to all connected clients.