www.pudn.com > SmartCardSrc.zip > ACOS1.h
//------------------------------------------------------------------------------ // // Copyright (c) 1999-2005 Matt Brunk// // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License VERSION 2 as // published by the Free Software Foundation. You are not allowed to // use any other version of the license; unless you got the explicit // permission from the author to do so. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // //------------------------------------------------------------------------------ #ifndef ACOS1_H_INCLUDED__ #define ACOS1_H_INCLUDED__ #include "serialport.h" class CACOS1 { public: //-------------------------------------------------------------------------- // Constructor //-------------------------------------------------------------------------- CACOS1(); //-------------------------------------------------------------------------- // Destructor //-------------------------------------------------------------------------- virtual ~CACOS1(); bool GetATR(unsigned char *outBuf, DWORD &nLength); void GetLastError(CString &ErrorMsg); bool SubmitIC(unsigned char *ic); bool SelectFile(unsigned char *file); bool StartSession(unsigned char *key, DWORD &dwLength); bool ReadRecord(int recordNum, int numBytes, unsigned char *data, DWORD &dwLength); bool WriteRecord(int recordNum, unsigned char *data, int numBytes); void DumpDCB(); void SetPort(int iPort) {m_iPort = iPort;} void SetBaud(int iBaud) {m_iBaud = iBaud;} void SetEditControl(CEdit *pEdit) {m_pEdit = pEdit;} bool OpenPort(); void ClosePort(); void EnableEncryption(bool bEnable); void SetVerbose(bool bEnable); void SetStopBits(int num); CString GetLastErrorMsg(); private: void AppendText(LPCTSTR Text); bool SendCommand(unsigned char *cmd); bool SendData(unsigned char *data, DWORD dwLength); bool GetStatus(); bool GetData(unsigned char *data, DWORD &dwLength); int m_iPort; int m_iBaud; CSerialPort m_port; CSerialPort::StopBits m_stopBits; CString m_lastErrorMsg; bool m_bEnableEncryption; bool m_bVerbose; CEdit *m_pEdit; unsigned char m_buf[1024]; unsigned char m_inBuf[64]; }; #endif // ACOS1_H_INCLUDED__