From 4f00c4c74d213a37a4b1a3313e50ce2b4dd51271 Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Fri, 22 Mar 2013 21:48:15 +0100 Subject: finish rename --- freetrackclient/xxx_ftclient.cpp | 119 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 freetrackclient/xxx_ftclient.cpp (limited to 'freetrackclient/xxx_ftclient.cpp') diff --git a/freetrackclient/xxx_ftclient.cpp b/freetrackclient/xxx_ftclient.cpp new file mode 100644 index 00000000..d48a2c28 --- /dev/null +++ b/freetrackclient/xxx_ftclient.cpp @@ -0,0 +1,119 @@ +/** @file + @brief +*/ +#include "FTClient.h" + + + + + static double/*?*/ const FT_PROGRAMID = "FT_ProgramID"; + + + HANDLE hFTMemMap; + PFreetrackData FTData; + unsigned long lastDataID; + PHandle FTHandle; + PAnsiChar FTProgramName; + HANDLE FTMutex; + + +bool FTGetData(PFreetrackData data) +{ bool result; + result = false; + if( !! FTData ) { + if( FTData->DataID != lastDataID ) { + Move( FTData/*?*/^ , data/*?*/^ , SizeOf( TFreetrackData ) ); + lastDataID = FTData->DataID; + result = true; + } + } else + OpenMapping; +return result; +} + + +void FTReportName(PAnsiChar name) +{ + unsigned long MsgResult; + + if( OpenMapping && ( WaitForSingleObject( FTMutex , 100 ) == WAIT_OBJECT_0 ) ) { + Move( name/*?*/^ , FTProgramName/*?*/^ , 100 ); + SendMessageTimeout( FTHandle/*?*/^ , RegisterWindowMessage( FT_PROGRAMID ) , 0 , 0 , 0 , 2000 , MsgResult ); + ReleaseMutex( FTMutex ); + } +} + + +char* FTGetDllVersion() +{ char* result; + unsigned long VerInfoSize; + Pointer VerInfo; + unsigned long VerValueSize; + PVSFixedFileInfo VerValue; + unsigned long Dummy; + std::string verString; + char* dllName[100]; + + result = ""; + GetModuleFilename( HInstance , &dllName , 100 ); + VerInfoSize = GetFileVersionInfoSize( &dllName , Dummy ); + if( !( VerInfoSize == 0 ) ) { + GetMem( VerInfo , VerInfoSize ); + GetFileVersionInfo( &dllName , 0 , VerInfoSize , VerInfo ); + VerQueryValue( VerInfo , "\\" , Pointer( VerValue ) , VerValueSize ); + /*?*//* WITH VerValue/*?*/^ */ + { + verString = IntToStr( dwFileVersionMS >> 16 ); + verString = verString + "." + IntToStr( dwFileVersionMS && 0xFFFF ); + verString = verString + "." + IntToStr( dwFileVersionLS >> 16 ); + verString = verString + "." + IntToStr( dwFileVersionLS && 0xFFFF ); + result = char*( verString ); + } + FreeMem( VerInfo , VerInfoSize ); + } +return result; +} + + +char* FTProvider() +{ char* result; + result = FREETRACK;return result; +} + + + + + +bool OpenMapping() +{ bool result; + if( hFTMemMap != 0 ) + result = true;else { + hFTMemMap = OpenFileMapping( FILE_MAP_ALL_ACCESS , false , FT_MM_DATA ); + if( ( hFTMemMap != 0 ) ) { + FTData = MapViewOfFile( hFTMemMap , FILE_MAP_ALL_ACCESS , 0 , 0 , SizeOf( TFreetrackData ) + SizeOf( HANDLE ) + 100 ); + FTHandle = Pointer( unsigned long( FTData ) + SizeOf( TFreetrackData ) ); + FTProgramName = Pointer( unsigned long( FTHandle ) + SizeOf( HANDLE ) ); + FTMutex = OpenMutex( MUTEX_ALL_ACCESS , false , FREETRACK_MUTEX ); + } + result = !! FTData; + } +return result; +} + + +void DestroyMapping() +{ + if( FTData != 00 ) { + UnMapViewofFile( FTData ); + FTData = 00; + } + + CloseHandle( FTMutex ); + CloseHandle( hFTMemMap ); + hFTMemMap = 0; +} + + + + +//END -- cgit v1.2.3