/* * Win16 built-in DLLs definitions * * Copyright 1999 Ulrich Weigand */ #ifndef __WINE_BUILTIN16_H #define __WINE_BUILTIN16_H #include "windef.h" #include "wine/windef16.h" struct _CONTEXT86; struct _STACK16FRAME; #ifdef __i386__ #include "pshpack1.h" typedef struct { WORD pushw_bp; /* pushw %bp */ BYTE pushl; /* pushl $target */ void (*target)(); WORD call; /* call CALLFROM16 */ short callfrom16; } ENTRYPOINT16; typedef struct { BYTE pushl; /* pushl $relay */ void *relay; BYTE lcall; /* lcall __FLATCS__:glue */ void *glue; WORD flatcs; BYTE prefix; /* lret $nArgs */ BYTE lret; WORD nArgs; LPCSTR profile; /* profile string */ } CALLFROM16; #include "poppack.h" #else typedef struct { void (*target)(); int callfrom16; } ENTRYPOINT16; typedef struct { LPCSTR profile; } CALLFROM16; #endif typedef struct { void *module_start; /* 32-bit address of the module data */ int module_size; /* Size of the module data */ void *code_start; /* 32-bit address of DLL code */ void *data_start; /* 32-bit address of DLL data */ const char *owner; /* 32-bit dll that contains this dll */ const void *rsrc; /* resources data */ } BUILTIN16_DESCRIPTOR; extern HMODULE16 BUILTIN_LoadModule( LPCSTR name ); extern LPCSTR BUILTIN_GetEntryPoint16( struct _STACK16FRAME *frame, LPSTR name, WORD *pOrd ); extern void __wine_register_dll_16( const BUILTIN16_DESCRIPTOR *descr ); extern WORD __wine_call_from_16_word(); extern LONG __wine_call_from_16_long(); extern void __wine_call_from_16_regs(); extern void __wine_call_from_16_thunk(); #endif /* __WINE_BUILTIN16_H */