Source code of Windows XP (NT5)
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.
 
 
 
 
 
 

90 lines
1.7 KiB

#include "precomp.h"
//
// CPI32DLL.CPP
// CPI32 dll entry point
//
// Copyright(c) Microsoft 1997-
//
#define INIT_DBG_ZONE_DATA
#include "dbgzones.h"
BOOL APIENTRY DllMain (HINSTANCE hInstance, DWORD reason, LPVOID plReserved)
{
BOOL rc = TRUE;
switch (reason)
{
case DLL_PROCESS_ATTACH:
{
#ifdef _DEBUG
MLZ_DbgInit((PSTR *) &c_apszDbgZones[0],
(sizeof(c_apszDbgZones) / sizeof(c_apszDbgZones[0])) - 1);
#endif // _DEBUG
DBG_INIT_MEMORY_TRACKING(hInstance);
//
// Utility stuff
//
if (!UT_HandleProcessStart(hInstance))
{
rc = FALSE;
break;
}
//
// Call platform specific init code
//
OSI_Load();
//
// Do common stuff
//
//
// Init Persistent PKZIP -- this just calculates some values
// which are effectively constants, the tables are just too
// unwieldy to declare as such.
//
GDC_Init();
break;
}
case DLL_PROCESS_DETACH:
{
//
// Call platform specific cleanup code
//
OSI_Unload();
//
// Utility stuff
//
UT_HandleProcessEnd();
DBG_CHECK_MEMORY_TRACKING(hInstance);
#ifdef _DEBUG
MLZ_DbgDeInit();
#endif // _DEBUG
break;
}
case DLL_THREAD_DETACH:
UT_HandleThreadEnd();
break;
default:
break;
}
return(rc);
}