/*********************************************************************** * USER initialisation routine */ static BOOL process_attach(void) { HINSTANCE16 instance; /* Create USER heap */ if ((instance = LoadLibrary16( "USER.EXE" )) >= 32) USER_HeapSel = instance | 7; else { USER_HeapSel = GlobalAlloc16( GMEM_FIXED, 65536 ); LocalInit16( USER_HeapSel, 32, 65534 ); } /* some Win9x dlls expect keyboard to be loaded */ if (GetVersion() & 0x80000000) LoadLibrary16( "keyboard.drv" ); winstation_init(); /* Initialize system colors and metrics */ SYSPARAMS_Init(); /* Setup palette function pointers */ palette_init(); /* Initialize built-in window classes */ CLASS_RegisterBuiltinClasses(); /* Initialize message spying */ if (!SPY_Init()) return FALSE; return TRUE; }
INT WINAPI DllMain( IN PVOID hInstanceDll, IN ULONG dwReason, IN PVOID reserved) { switch (dwReason) { case DLL_PROCESS_ATTACH: User32Instance = hInstanceDll; if (!RegisterClientPFN()) { return FALSE; } if (!Init()) return FALSE; if (!InitThread()) { Cleanup(); return FALSE; } /* Initialize message spying */ if (!SPY_Init()) return FALSE; break; case DLL_THREAD_ATTACH: if (!InitThread()) return FALSE; break; case DLL_THREAD_DETACH: CleanupThread(); break; case DLL_PROCESS_DETACH: if (hImmInstance) FreeLibrary(hImmInstance); CleanupThread(); Cleanup(); break; } return TRUE; }
/*********************************************************************** * USER initialisation routine */ static BOOL process_attach(void) { winstation_init(); /* Initialize system colors and metrics */ SYSPARAMS_Init(); /* Setup palette function pointers */ palette_init(); /* Initialize built-in window classes */ CLASS_RegisterBuiltinClasses(); /* Initialize message spying */ if (!SPY_Init()) return FALSE; return TRUE; }