campo-sirio/include/smartcard.h
guy 10d04217ca Patch level : 10.0 260
Files correlati     : xvaga.dll
Ricompilazione Demo : [ ]
Commento            :
Aggiunto supporto per le Property Grid


git-svn-id: svn://10.65.10.50/trunk@18531 c028cbd2-c16b-5b4b-a496-9718f37d4682
2009-03-17 11:02:30 +00:00

74 lines
2.1 KiB
C++
Executable File

#ifndef __SMARTCARD_H
#define __SMARTCARD_H
#ifndef __MASK_H
#include <mask.h>
#endif
#define MAX_SM_FIELDS 16
typedef enum {no_smartcard, ase_smartcard} smartcard_type;
typedef enum {no_smarterror, wrong_function, card_removed, no_power, wrong_card,
wrong_password, password_blocked,invelid_handle, invalid_parameter,
no_card, reset_card, protection_error, unknown_reader, no_reader,
buffer_overflow, sevice_stopped, timeout_err, no_memory, new_card, unknown_err } smartcard_error;
class TSmart_card : public TObject
{
smartcard_type _type;
int _last_smart_field;
int _num_fields;
int _key_field;
int _anno_field;
int _ndoc_field;
int _check_field;
bool _has_pwd;
bool _card_connected;
int _input_field[MAX_SM_FIELDS];
int _output_field[MAX_SM_FIELDS];
int _prog_field[MAX_SM_FIELDS];
TBit_array _prot_field;
TString_array _tab_field;
TString_array _values;
TString16 _password;
TString _ASE_reader_name;
unsigned long ASEsearch();
unsigned long ASEread(char ** buffer);
unsigned long ASEwrite(char * buffer) const ;
bool ASEloadlibrary();
protected:
bool init();
public:
smartcard_type type() const { return _type; }
int anno_field() const { return _anno_field;}
int ndoc_field() const { return _ndoc_field;}
void display_error(smartcard_error error) const ;
bool card_connected() const { return _card_connected; }
const bool with_card(const TMask & m) { return m.get_bool(_check_field); }
smartcard_error connect_card();
smartcard_error disconnect_card();
smartcard_error read();
smartcard_error write() const ;
smartcard_error check_key(const TMask & m);
void mask2card(const TMask & m);
void card2mask(TMask & m);
void enable_prot_fields(TMask & m, bool on = true) const;
void disable_prot_fields(TMask & m) const { enable_prot_fields(m, false); }
const TString & get(int field) const { return _values.row(field);}
int get_int(int field) const { return atoi(get(field));}
void add2field(int field, real & val);
void sub2field(int field, real & val) { add2field(field, -val);}
TSmart_card();
virtual ~TSmart_card() {}
};
#endif // __SMARTCARD_H