0b4d72acb8
const al posto di #define.
88 lines
2.8 KiB
C++
88 lines
2.8 KiB
C++
//----------------------------------------------------------------------------
|
|
// EgalTech 2013-2013
|
|
//----------------------------------------------------------------------------
|
|
// File : EGkDllMain.cpp Data : 20.11.13 Versione : 1.3a1
|
|
// Contenuto : Inizializzazione della DLL.
|
|
//
|
|
//
|
|
//
|
|
// Modifiche : 16.11.13 DS Creazione modulo.
|
|
// 21.11.13 DS Agg. GetEGkVersion.
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
//--------------------------- Include ----------------------------------------
|
|
#include "stdafx.h"
|
|
#include <windows.h>
|
|
#include <\EgtDev\Include\EgtTrace.h>
|
|
#include <\EgtDev\Include\EGkVersion.h>
|
|
|
|
//--------------------------- Costanti ----------------------------------------
|
|
#if defined( _DEBUG)
|
|
const char* EGK_STR = "EgtGeomKernelD32.dll ver. " ;
|
|
#else
|
|
const char* EGK_STR = "EgtGeomKernelR32.dll ver. " ;
|
|
#endif
|
|
const int STR_DIM = 40 ;
|
|
|
|
//-----------------------------------------------------------------------------
|
|
static HINSTANCE s_hModule = NULL ;
|
|
static char s_szEGkNameVer[STR_DIM] ;
|
|
|
|
//-----------------------------------------------------------------------------
|
|
extern "C" int APIENTRY
|
|
DllMain( HMODULE hModule, DWORD dwReason, LPVOID lpReserved)
|
|
{
|
|
|
|
if ( dwReason == DLL_PROCESS_ATTACH) {
|
|
s_hModule = hModule ;
|
|
EGT_TRACE( "EgtGeomKernel.dll Initializing!\n") ;
|
|
}
|
|
else if ( dwReason == DLL_PROCESS_DETACH) {
|
|
s_hModule = NULL ;
|
|
EGT_TRACE( "EgtGeomKernel.dll Terminating!\n") ;
|
|
}
|
|
|
|
return 1 ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
const char*
|
|
GetEGkVersion( void)
|
|
{
|
|
wchar_t szFileName[_MAX_PATH] ;
|
|
DWORD dwNULL ;
|
|
DWORD dwSize ;
|
|
UINT dwUsefulSize ;
|
|
LPVOID lpData ;
|
|
LPVOID lpUsefulData ;
|
|
VS_FIXEDFILEINFO* pvsInfo ;
|
|
|
|
|
|
// trovo nome del file dato l'hInstance
|
|
::GetModuleFileNameW( s_hModule, szFileName, _MAX_PATH) ;
|
|
|
|
// mi faccio dare il buffer delle informazioni dal file
|
|
dwSize = ::GetFileVersionInfoSizeW( szFileName, &dwNULL) ;
|
|
lpData = malloc( size_t( dwSize));
|
|
GetFileVersionInfoW( szFileName, dwNULL, dwSize, lpData) ;
|
|
|
|
// Chiedo le info standard
|
|
if ( ::VerQueryValueW( lpData, L"\\", &lpUsefulData, &dwUsefulSize)) {
|
|
pvsInfo = (VS_FIXEDFILEINFO*) lpUsefulData ;
|
|
sprintf_s( s_szEGkNameVer, STR_DIM, "%s%d.%d%c%d",
|
|
EGK_STR,
|
|
pvsInfo->dwFileVersionMS >> 16,
|
|
pvsInfo->dwFileVersionMS % 0x10000,
|
|
(pvsInfo->dwFileVersionLS >> 16) + 96,
|
|
pvsInfo->dwFileVersionLS % 0x10000);
|
|
}
|
|
else
|
|
sprintf_s( s_szEGkNameVer, STR_DIM, "%s0.0a0", EGK_STR) ;
|
|
|
|
// disalloco il buffer
|
|
free( lpData) ;
|
|
|
|
return s_szEGkNameVer ;
|
|
}
|