COM Programming by Example: Using MFC, ActiveX, ATL, ADO, and COM+