COM client objects can instantiate server objects and then make calls to those objects, but the server object can't call back to the client. COM connection points enable two-way communication between the server and client.
The clients for a COM connection point server can be written in C++ and in C# managed code. In the September issue of MSDN Magazine, Thottam R. Sriram provides an in-depth example of creating an Active Template Library (ATL) connection point server, as well as a sample C++ client that provides an implementation of the sink plus a sample C# client and the two ways you can register and listen to events from the server.
You can explore the sample code online, and check out previous CLR Inside Out columns in our online archive.