1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
   | struct ClSerialPortInfo
{
	unsigned int SerialIndex;
	char ManufacturerName[MAX_PATH];
	unsigned int NameBytes;
	char port_ID[MAX_PATH];
	unsigned int IDBytes;
	unsigned int Version;
	unsigned int PortState;
};
 
 
class __declspec(dllexport) ClSerialPorts  
{
private:
 
	void Init();
	int	ClGetNumPorts(unsigned int *NbPort);
	int ClGetPortInfo(unsigned int SerialIndex,ClSerialPortInfo *SerialPortInfo);
	unsigned int m_SerialPortNumber;		//Max number of serial port
	ClSerialPortInfo *m_pSerialPortInfo;
 
public :
 
	unsigned int GetSerialPortNumber();
	ClSerialPortInfo* GetClSerialPortInfo();
 
	ClSerialPorts();
	virtual ~ClSerialPorts();
};
 
 
 
ClSerialPorts::ClSerialPorts()
{
	Init();
}
 
void ClSerialPorts::Init()
{
	void *SerialRefPtr;
	ClGetNumPorts(&m_SerialPortNumber);                          //je pense que c'est ici où on utilise la première fois la dll.
	m_pSerialPortInfo = new ClSerialPortInfo[m_SerialPortNumber];
	for (unsigned int i = 0; i < m_SerialPortNumber; i++)
	{
		ClGetPortInfo(i,&m_pSerialPortInfo[i]);
		m_pSerialPortInfo[i].PortState = clSerialInit (m_pSerialPortInfo[i].SerialIndex,&SerialRefPtr);
		clSerialClose(SerialRefPtr);
	}
}
 
int	ClSerialPorts::ClGetNumPorts(unsigned int *NbPort)
{
	int i;
	i = clGetNumPorts(NbPort);
	return i;
}
 
int ClSerialPorts::ClGetPortInfo(unsigned int SerialIndex,ClSerialPortInfo *SerialPortInfo)
{
	int i;
	SerialPortInfo->SerialIndex = SerialIndex;
	i = clGetPortInfo(SerialPortInfo->SerialIndex,SerialPortInfo->ManufacturerName,&SerialPortInfo->NameBytes,SerialPortInfo->port_ID,&SerialPortInfo->IDBytes,&SerialPortInfo->Version);
	return i;
}
 
ClSerialPorts::~ClSerialPorts()
{
	delete m_pSerialPortInfo;
}
 
unsigned int ClSerialPorts::GetSerialPortNumber()
{
	return m_SerialPortNumber;
}
 
ClSerialPortInfo* ClSerialPorts::GetClSerialPortInfo()
{
	return m_pSerialPortInfo;
} | 
Partager