//--------------------------------------------------------------------------- #pragma hdrstop #include "stdafx.h" #include "coscom_vc_1_2.h" //--------------------------------------------------------------------------- HINSTANCE CoscomDLLHandle; char CoscomDLLName[260]; TCOSCOMFUNC coscomopenPort; TCOSCOMFUNC coscomclosePort; TCOSCOMGETPCHARFUNC coscomgetVersion; TCOSCOMGETINTEGERFUNC coscomgetStatus; TCOSCOMGETINTEGERFUNC coscomgetDuration; TCOSCOMGETDOUBLEFUNC coscomgetSpeed; TCOSCOMGETINTEGERFUNC coscomgetAcceleration; TCOSCOMGETDOUBLEFUNC coscomgetElevation; TCOSCOMGETINTEGERFUNC coscomgetHeartrate; TCOSCOMGETINTEGERFUNC coscomgetDistance; TCOSCOMGETINTEGERFUNC coscomgetError; TCOSCOMSETDOUBLEFUNC coscomsetSpeed; TCOSCOMSETINTEGERFUNC coscomsetAcceleration; TCOSCOMSETDOUBLEFUNC coscomsetElevation; TCOSCOMSETSPEEDACCELFUNC coscomsetSpeedAccel; TCOSCOMBUTTONFUNC coscomKeyPressStart; TCOSCOMBUTTONFUNC coscomKeyPressStop; TCOSCOMBUTTONFUNC coscomKeyPressPlus; TCOSCOMBUTTONFUNC coscomKeyPressMinus; TCOSCOMBUTTONFUNC coscomKeyPressUp; TCOSCOMBUTTONFUNC coscomKeyPressDown; TCOSCOMSETINTEGERFUNC coscomsetFailSafe; TCOSCOMGETINTEGERFUNC coscomgetFailSafe; TCOSCOMGETINTEGERFUNC coscomgetWeight; TCOSCOMGETDOUBLEFUNC coscomgetEnergy; TCOSCOMGETDOUBLEFUNC coscomgetPower; //void resetCoscomDLLPointer(); //void getCoscomDLLPointer(); //bool areValidCoscomDLLPointer(); void __stdcall resetCoscomDLLPointer() { CoscomDLLHandle = 0; strcpy(CoscomDLLName,DefCoscomDLLName); coscomopenPort = NULL; coscomclosePort = NULL; coscomgetVersion = NULL; coscomgetStatus = NULL; coscomgetDuration = NULL; coscomgetSpeed = NULL; coscomgetAcceleration = NULL; coscomgetElevation = NULL; coscomgetHeartrate = NULL; coscomgetDistance = NULL; coscomgetError = NULL; coscomsetSpeed = NULL; coscomsetAcceleration = NULL; coscomsetElevation = NULL; coscomsetSpeedAccel = NULL; coscomKeyPressStart = NULL; coscomKeyPressStop = NULL; coscomKeyPressPlus = NULL; coscomKeyPressMinus = NULL; coscomKeyPressUp = NULL; coscomKeyPressDown = NULL; coscomsetFailSafe = NULL; coscomgetFailSafe = NULL; coscomgetWeight = NULL; coscomgetEnergy = NULL; coscomgetPower = NULL; } void __stdcall getCoscomDLLPointer() { if (CoscomDLLHandle == NULL) return; coscomopenPort = (TCOSCOMFUNC) GetProcAddress(CoscomDLLHandle,"coscomopenPort"); coscomclosePort = (TCOSCOMFUNC) GetProcAddress(CoscomDLLHandle,"coscomclosePort"); coscomgetVersion = (TCOSCOMGETPCHARFUNC) GetProcAddress(CoscomDLLHandle,"coscomgetVersion"); coscomgetStatus = (TCOSCOMGETINTEGERFUNC) GetProcAddress(CoscomDLLHandle,"coscomgetStatus"); coscomgetDuration = (TCOSCOMGETINTEGERFUNC) GetProcAddress(CoscomDLLHandle,"coscomgetDuration"); coscomgetSpeed =(TCOSCOMGETDOUBLEFUNC) GetProcAddress(CoscomDLLHandle,"coscomgetSpeed"); coscomgetAcceleration = (TCOSCOMGETINTEGERFUNC) GetProcAddress(CoscomDLLHandle,"coscomgetAcceleration"); coscomgetElevation =(TCOSCOMGETDOUBLEFUNC) GetProcAddress(CoscomDLLHandle,"coscomgetElevation"); coscomgetHeartrate =(TCOSCOMGETINTEGERFUNC) GetProcAddress(CoscomDLLHandle,"coscomgetHeartrate"); coscomgetDistance =(TCOSCOMGETINTEGERFUNC) GetProcAddress(CoscomDLLHandle,"coscomgetDistance"); coscomgetError = (TCOSCOMGETINTEGERFUNC) GetProcAddress(CoscomDLLHandle,"coscomgetError"); coscomsetSpeed =(TCOSCOMSETDOUBLEFUNC) GetProcAddress(CoscomDLLHandle,"coscomsetSpeed"); coscomsetAcceleration =(TCOSCOMSETINTEGERFUNC) GetProcAddress(CoscomDLLHandle,"coscomsetAcceleration"); coscomsetElevation =(TCOSCOMSETDOUBLEFUNC) GetProcAddress(CoscomDLLHandle,"coscomsetElevation"); coscomsetSpeedAccel =(TCOSCOMSETSPEEDACCELFUNC) GetProcAddress(CoscomDLLHandle,"coscomsetSpeedAccel"); coscomKeyPressStart =(TCOSCOMBUTTONFUNC) GetProcAddress(CoscomDLLHandle,"coscomKeyPressStart"); coscomKeyPressStop = (TCOSCOMBUTTONFUNC)GetProcAddress(CoscomDLLHandle,"coscomKeyPressStop"); coscomKeyPressPlus = (TCOSCOMBUTTONFUNC)GetProcAddress(CoscomDLLHandle,"coscomKeyPressPlus"); coscomKeyPressMinus = (TCOSCOMBUTTONFUNC)GetProcAddress(CoscomDLLHandle,"coscomKeyPressMinus"); coscomKeyPressUp = (TCOSCOMBUTTONFUNC)GetProcAddress(CoscomDLLHandle,"coscomKeyPressUp"); coscomKeyPressDown = (TCOSCOMBUTTONFUNC)GetProcAddress(CoscomDLLHandle,"coscomKeyPressDown"); coscomsetFailSafe = (TCOSCOMSETINTEGERFUNC) GetProcAddress(CoscomDLLHandle,"coscomsetFailSafe"); coscomgetFailSafe = (TCOSCOMGETINTEGERFUNC) GetProcAddress(CoscomDLLHandle,"coscomgetFailSafe"); coscomgetWeight = (TCOSCOMGETINTEGERFUNC) GetProcAddress(CoscomDLLHandle,"coscomgetWeight"); coscomgetEnergy = (TCOSCOMGETDOUBLEFUNC) GetProcAddress(CoscomDLLHandle,"coscomgetEnergy"); coscomgetPower = (TCOSCOMGETDOUBLEFUNC) GetProcAddress(CoscomDLLHandle,"coscomgetPower"); } bool __stdcall areValidCoscomDLLPointer() { return (coscomopenPort != NULL) && (coscomclosePort != NULL) && (coscomgetVersion != NULL) && (coscomgetStatus != NULL) && (coscomgetSpeed != NULL) && (coscomgetDuration != NULL) && (coscomgetAcceleration != NULL) && (coscomgetElevation != NULL) && (coscomgetHeartrate != NULL) && (coscomgetDistance != NULL) && (coscomgetError != NULL) && (coscomsetSpeed != NULL) && (coscomsetAcceleration != NULL) && (coscomsetElevation != NULL) && (coscomsetSpeedAccel != NULL) && (coscomKeyPressStart != NULL) && (coscomKeyPressStop != NULL) && (coscomKeyPressPlus != NULL) && (coscomKeyPressMinus != NULL) && (coscomKeyPressUp != NULL) && (coscomKeyPressDown != NULL) && (coscomsetFailSafe != NULL) && (coscomgetFailSafe != NULL) && (coscomgetWeight != NULL) && (coscomgetEnergy != NULL) && (coscomgetPower != NULL) ; } bool __stdcall vc_loadcoscomDLL() { resetCoscomDLLPointer(); CoscomDLLHandle = LoadLibrary(CoscomDLLName); getCoscomDLLPointer(); if ((CoscomDLLHandle == 0) ) { return FALSE; } else if (!areValidCoscomDLLPointer() ) { vc_unloadcoscomDLL(); return FALSE; } else return TRUE; } bool __stdcall vc_unloadcoscomDLL() { if (CoscomDLLHandle != 0) { FreeLibrary(CoscomDLLHandle); CoscomDLLHandle = NULL; } return true; }