BOOL APIENTRY DllMain(HMODULE hInstance,DWORD fwdReason, LPVOID lpvReserved) { switch(fwdReason) { case DLL_PROCESS_ATTACH: { nameHinstanceP.hInstanceP = (HINSTANCE)hInstance; #ifdef AUTODLL ahkdll("autoload.ahk", "", ""); // used for remoteinjection of dll #endif break; } case DLL_THREAD_ATTACH: { break; } case DLL_PROCESS_DETACH: { int lpExitCode = 0; GetExitCodeThread(hThread,(LPDWORD)&lpExitCode); if ( lpExitCode == 259 ) CloseHandle( hThread ); // need better cleanup: windows, variables, no exit from script break; } case DLL_THREAD_DETACH: break; } return(TRUE); // a FALSE will abort the DLL attach }
BOOL APIENTRY DllMain(HMODULE hInstance,DWORD fwdReason, LPVOID lpvReserved) { switch(fwdReason) { case DLL_PROCESS_ATTACH: { nameHinstanceP.hInstanceP = (HINSTANCE)hInstance; g_hInstance = (HINSTANCE)hInstance; g_hMemoryModule = (HMODULE)lpvReserved; #ifdef AUTODLL ahkdll("autoload.ahk", "", ""); // used for remoteinjection of dll #endif break; } case DLL_THREAD_ATTACH: { break; } case DLL_PROCESS_DETACH: { if (hThread) { int lpExitCode = 0; GetExitCodeThread(hThread,(LPDWORD)&lpExitCode); if ( lpExitCode == 259 ) CloseHandle( hThread ); } // Unregister window class registered in Script::CreateWindows #ifndef MINIDLL #ifdef UNICODE if (g_ClassRegistered) UnregisterClass((LPCWSTR)&WINDOW_CLASS_MAIN,g_hInstance); if (g_ClassSplashRegistered) UnregisterClass((LPCWSTR)&WINDOW_CLASS_SPLASH,g_hInstance); #else if (g_ClassRegistered) UnregisterClass((LPCSTR)&WINDOW_CLASS_MAIN,g_hInstance); if (g_ClassSplashRegistered) UnregisterClass((LPCSTR)&WINDOW_CLASS_SPLASH,g_hInstance); #endif #endif // MINIDLL break; } case DLL_THREAD_DETACH: break; } return(TRUE); // a FALSE will abort the DLL attach }
unsigned int com_ahkdll(LPTSTR fileName,LPTSTR argv,LPTSTR args){return ahkdll(fileName,argv,args);}