While dragging, catch keyboard messages between WM_KEYFIRST and
[wine.git] / include / builtin16.h
blobe069ad8873b5d7989be0a03d86afc0e6014c9d9c
1 /*
2 * Win16 built-in DLLs definitions
4 * Copyright 1999 Ulrich Weigand
5 */
7 #ifndef __WINE_BUILTIN16_H
8 #define __WINE_BUILTIN16_H
10 #include "windef.h"
11 #include "ldt.h"
13 struct _CONTEXT86;
14 struct _STACK16FRAME;
16 extern WORD CallFrom16Word();
17 extern LONG CallFrom16Long();
18 extern void CallFrom16Register();
19 extern void CallFrom16Thunk();
21 extern WORD CALLBACK CallTo16Word( FARPROC16 target, INT nArgs );
22 extern LONG CALLBACK CallTo16Long( FARPROC16 target, INT nArgs );
23 extern LONG CALLBACK CallTo16RegisterShort( const struct _CONTEXT86 *context, INT nArgs );
24 extern LONG CALLBACK CallTo16RegisterLong ( const struct _CONTEXT86 *context, INT nArgs );
26 #include "pshpack1.h"
28 typedef struct
30 WORD pushw_bp; /* pushw %bp */
31 BYTE pushl; /* pushl $target */
32 void (*target)();
33 WORD call; /* call CALLFROM16 */
34 short callfrom16;
35 } ENTRYPOINT16;
37 typedef struct
39 BYTE pushl; /* pushl $relay */
40 void *relay;
41 BYTE lcall; /* lcall __FLATCS__:glue */
42 void *glue;
43 WORD flatcs;
44 BYTE prefix; /* lret $nArgs */
45 BYTE lret;
46 WORD nArgs;
47 LPCSTR profile; /* profile string */
48 } CALLFROM16;
50 #include "poppack.h"
52 typedef struct
54 const char *name; /* DLL name */
55 void *module_start; /* 32-bit address of the module data */
56 int module_size; /* Size of the module data */
57 const BYTE *code_start; /* 32-bit address of DLL code */
58 const BYTE *data_start; /* 32-bit address of DLL data */
59 const char *owner; /* 32-bit dll that contains this dll */
60 const void *rsrc; /* resources data */
61 } BUILTIN16_DESCRIPTOR;
63 extern HMODULE16 BUILTIN_LoadModule( LPCSTR name );
64 extern LPCSTR BUILTIN_GetEntryPoint16( struct _STACK16FRAME *frame, LPSTR name, WORD *pOrd );
65 extern void BUILTIN_RegisterDLL( const BUILTIN16_DESCRIPTOR *descr );
67 #endif /* __WINE_BUILTIN16_H */