Figure 5: Modem class declaration
class AFX_EXT_CLASS CRemoteConnect : public CLocalConnect { // public interface public: enum MODEM_CONNECTTYPE {MAKECALL,ANSWERCALL,DEFERCALL}; CRemoteConnect(MODEM_CONNECTTYPE, BOOL spawnThreadOnConnect=TRUE, BOOL enableEcho=FALSE); virtual ~CRemoteConnect(); BOOL isModemConnected() { return m_ModemConnected; }; HANDLE& GetConnectEventHandle() { return m_ConnectEvent; }; HANDLE& GetDisconnectEventHandle() { return m_DisconnectEventHandle; }; // server prepares for next call BOOL ReAnswerModem(); // some redefined members public: virtual BOOL PortInitOk() { return m_ModemConnected; } // TAPI private helper functions <not shown for brevity> };