#include "stdafx.h" #include "DllInterface.h" #include DllInterface::DllInterface() : m_isValid( FALSE ) { Initialize(); } DllInterface::~DllInterface() { if ( hDLL ) { FreeLibrary( hDLL ); } if ( eimResult.vect_adventitia ) { delete[] eimResult.vect_adventitia; } if ( eimResult.vect_intima ) { delete[] eimResult.vect_intima; } if ( eimResult.vect_media ) { delete[] eimResult.vect_media; } } BOOL DllInterface::IsValid() { return m_isValid; } void DllInterface::Clear() { eimResult.imt_max = 0.0; eimResult.imt_mean = 0.0; eimResult.imt_standardDeviation = 0.0; eimResult.intima_mean = 0.0; eimResult.media_mean = 0.0; eimResult.qualityIndex = 0.0; eimResult.distance = 0.0; eimResult.numberOfPoints = 0; } imt::IMTResult* DllInterface::GetResult() { return &eimResult; } BOOL DllInterface::initializeFromFile( const char* fileName, double mmPerPixelX, double mmPerPixelY ) { return m_initializeFromFile( fileName, mmPerPixelX, mmPerPixelY ); } BOOL DllInterface::setFirstPoint( CPoint pt ) { eimResult.p0.x = pt.x; eimResult.p0.y = pt.y; return m_setFirstPoint( pt.x, pt.y ); } BOOL DllInterface::setSecondPoint( CPoint pt ) { return m_setSecondPoint( pt.x, pt.y, &eimResult ); } void DllInterface::Initialize() { eimResult.vect_adventitia = NULL; eimResult.vect_intima = NULL; eimResult.vect_media = NULL; Clear(); hDLL = LoadLibrary( _T( "LibIMTDLL.dll" ) ); if ( hDLL ) { m_isValid = TRUE; m_initializeFromFile = (dll_initializeFromFile)GetProcAddress( hDLL, "initializeFromFile" ); if ( !m_initializeFromFile ) { m_isValid = FALSE; } initializeFromRaw = (dll_initializeFromRaw)GetProcAddress( hDLL, "initializeFromRaw" ); if ( !initializeFromRaw ) { m_isValid = FALSE; } m_setFirstPoint = (dll_setFirstPoint)GetProcAddress( hDLL, "setFirstPoint" ); if ( !m_setFirstPoint ) { m_isValid = FALSE; } getDistanceToFirstPoint = (dll_getDistanceToFirstPoint)GetProcAddress( hDLL, "getDistanceToFirstPoint" ); if ( !getDistanceToFirstPoint ) { m_isValid = FALSE; } m_setSecondPoint = (dll_setSecondPoint)GetProcAddress( hDLL, "setSecondPoint" ); if ( !m_setSecondPoint ) { m_isValid = FALSE; } getImageWidth = (dll_getImageWidth)GetProcAddress( hDLL, "getImageWidth" ); if ( !getImageWidth ) { m_isValid = FALSE; } getImageHeight = (dll_getImageHeight)GetProcAddress( hDLL, "getImageHeight" ); if ( !getImageHeight ) { m_isValid = FALSE; } getImageBitsPerPixel = (dll_getImageBitsPerPixel)GetProcAddress( hDLL, "getImageBitsPerPixel" ); if ( !getImageBitsPerPixel ) { m_isValid = FALSE; } getPixelArray = (dll_getPixelArray)GetProcAddress( hDLL, "getPixelArray" ); if ( !getPixelArray ) { m_isValid = FALSE; } } }