diff options
-rw-r--r-- | freetrackclient/freetrackclient.c | 74 |
1 files changed, 24 insertions, 50 deletions
diff --git a/freetrackclient/freetrackclient.c b/freetrackclient/freetrackclient.c index 007d073f..4d71ce30 100644 --- a/freetrackclient/freetrackclient.c +++ b/freetrackclient/freetrackclient.c @@ -49,25 +49,39 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { switch (fdwReason) { case DLL_PROCESS_ATTACH: -#ifdef WIN64 - dbg_report("\n= WIN64 =========================================================================================\n"); -#else - dbg_report("\n= WIN32 =========================================================================================\n"); -#endif - dbg_report("DllMain: (0x%p, %d, %p)\n", hinstDLL, fdwReason, lpvReserved); - dbg_report("DllMain: Attach request\n"); DisableThreadLibraryCalls(hinstDLL); break; case DLL_PROCESS_DETACH: - dbg_report("DllMain: Detach\n"); - dbg_report("DllMain: (0x%p, %d, %p)\n", hinstDLL, fdwReason, lpvReserved); - dbg_report("==========================================================================================\n"); break; } return TRUE; } +static bool FTCreateMapping(void) +{ + if ( pMemData != NULL ) { + return true; + } + + dbg_report("FTCreateMapping request (pMemData == NULL).\n"); + + hFTMemMap = CreateFileMappingA( INVALID_HANDLE_VALUE , 00 , PAGE_READWRITE , 0 , + sizeof( FTHeap ), + (LPCSTR) FT_MM_DATA ); + + if (hFTMemMap == NULL) + { + pMemData = NULL; + return false; + } + + pMemData = (FTHeap*) MapViewOfFile(hFTMemMap, FILE_MAP_WRITE, 0, 0, sizeof( FTHeap ) ); + hFTMutex = CreateMutexA(NULL, false, FREETRACK_MUTEX); + + return true; +} + FT_EXPORT(bool) FTGetData(FTData* data) { // dbg_report("NP_GetData called."); @@ -109,43 +123,3 @@ FT_EXPORT(const char*) FTProvider(void) return dllProvider; } -// -// Create a memory-mapping to the Freetrack data. -// It contains the tracking data, a handle to the main-window and the program-name of the Game! -// -// -FT_EXPORT(bool) FTCreateMapping(void) -{ - if ( pMemData != NULL ) { - return true; - } - - dbg_report("FTCreateMapping request (pMemData == NULL).\n"); - - hFTMemMap = CreateFileMappingA( INVALID_HANDLE_VALUE , 00 , PAGE_READWRITE , 0 , - sizeof( FTHeap ), - (LPCSTR) FT_MM_DATA ); - - if (hFTMemMap == NULL) - { - pMemData = NULL; - return false; - } - - pMemData = (FTHeap*) MapViewOfFile(hFTMemMap, FILE_MAP_WRITE, 0, 0, sizeof( FTHeap ) ); - hFTMutex = CreateMutexA(NULL, false, FREETRACK_MUTEX); - - return true; -} - -FT_EXPORT(void) FTDestroyMapping(void) -{ - if ( pMemData != NULL ) { - UnmapViewOfFile ( pMemData ); - } - - CloseHandle( hFTMutex ); - CloseHandle( hFTMemMap ); - pMemData = 0; - hFTMemMap = 0; -} |