blob: e6d0132b251900c4361067acc6fb884c3c0c7ed9 [file] [log] [blame]
/*
* GDI initialization code
*/
#include "windef.h"
#include "wingdi.h"
#include "wine/winbase16.h"
#include "gdi.h"
#include "global.h"
#include "module.h"
#include "psdrv.h"
#include "tweak.h"
#include "win16drv.h"
/***********************************************************************
* GDI initialisation routine
*/
BOOL WINAPI MAIN_GdiInit(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
{
NE_MODULE *pModule;
if ( GDI_HeapSel ) return TRUE;
/* Create GDI heap */
pModule = NE_GetPtr( GetModuleHandle16( "GDI" ) );
if ( pModule )
{
GDI_HeapSel = GlobalHandleToSel16( (NE_SEG_TABLE( pModule ) +
pModule->dgroup - 1)->hSeg );
}
else
{
GDI_HeapSel = GlobalAlloc16( GMEM_FIXED, GDI_HEAP_SIZE );
LocalInit16( GDI_HeapSel, 0, GDI_HEAP_SIZE-1 );
}
if (!TWEAK_Init()) return FALSE;
/* GDI initialisation */
if(!GDI_Init()) return FALSE;
/* Create the Win16 printer driver */
if (!WIN16DRV_Init()) return FALSE;
/* PSDRV initialization */
if(!PSDRV_Init()) return FALSE;
return TRUE;
}