| 24 | HINSTANCE g_hInstance = NULL; |
| 25 | |
| 26 | BOOL WINAPI DllMain(HINSTANCE hModule, DWORD reason, LPVOID reserved) { |
| 27 | g_hInstance = hModule; |
| 28 | EmmyFacade::Get().SetWorkMode(WorkMode::Attach); |
| 29 | EmmyFacade::Get().StartHook = FindAndHook; |
| 30 | |
| 31 | if (reason == DLL_PROCESS_ATTACH) { |
| 32 | TSharedData data; |
| 33 | DisableThreadLibraryCalls(hModule); |
| 34 | if (!CreateMemFile(&file)) { |
| 35 | return FALSE; |
| 36 | } |
| 37 | // Set shared memory to hold what our remote process needs |
| 38 | memset(file.lpMemFile, 0, SHMEMSIZE); |
| 39 | data.hModule = hModule; |
| 40 | data.lpInit = (LPDWORD)(StartupHookMode); |
| 41 | data.dwOffset = (DWORD)(data.lpInit) - (DWORD)(data.hModule); |
| 42 | memcpy(file.lpMemFile, &data, sizeof(TSharedData)); |
| 43 | } |
| 44 | else if (reason == DLL_PROCESS_DETACH) { |
| 45 | // Destroy(); |
| 46 | CloseMemFile(&file); |
| 47 | } |
| 48 | |
| 49 | return TRUE; |
| 50 | } |
| 51 | #endif |
| 52 |
nothing calls this directly
no test coverage detected