Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//
// IEAKENG.CPP
//
#include "precomp.h"
// prototype declarations
// global variables
HINSTANCE g_hInst; HINSTANCE g_hDLLInst; DWORD g_dwPlatformId = PLATFORM_WIN32; BOOL g_fRunningOnNT;
BOOL WINAPI DllMain(HINSTANCE hDLLInst, DWORD dwReason, LPVOID) { switch (dwReason) { case DLL_PROCESS_ATTACH: { OSVERSIONINFOA osviA;
// The DLL is being loaded for the first time by a given process.
// Perform per-process initialization here. If the initialization
// is successful, return TRUE; if unsuccessful, return FALSE.
// Initialize the global variable holding the hinstance.
g_hDLLInst = hDLLInst;
g_hInst = LoadLibrary(TEXT("ieakui.dll")); if (g_hInst == NULL) { TCHAR szTitle[MAX_PATH], szMsg[MAX_PATH];
LoadString(g_hDLLInst, IDS_ENGINE_TITLE, szTitle, ARRAYSIZE(szTitle)); LoadString(g_hDLLInst, IDS_IEAKUI_LOADERROR, szMsg, ARRAYSIZE(szMsg)); MessageBox(NULL, szMsg, szTitle, MB_OK | MB_SETFOREGROUND); return FALSE; }
osviA.dwOSVersionInfoSize = sizeof(osviA); GetVersionExA(&osviA); if (VER_PLATFORM_WIN32_NT == osviA.dwPlatformId) g_fRunningOnNT = TRUE;
DisableThreadLibraryCalls(g_hInst);
break; }
case DLL_PROCESS_DETACH: // The DLL is being unloaded by a given process. Do any
// per-process clean up here, such as undoing what was done in
// DLL_PROCESS_ATTACH. The return value is ignored.
if(g_hInst) FreeLibrary(g_hInst);
break;
case DLL_THREAD_ATTACH: // A thread is being created in a process that has already loaded
// this DLL. Perform any per-thread initialization here. The
// return value is ignored.
// Initialize the global variable holding the hinstance.
// NOTE: this is probably taken care of already by DLL_PROCESS_ATTACH.
g_hDLLInst = hDLLInst;
break;
case DLL_THREAD_DETACH: // A thread is exiting cleanly in a process that has already
// loaded this DLL. Perform any per-thread clean up here. The
// return value is ignored.
break; }
return TRUE; }
|