Added support for the Win32 Console interface to the main DOSVM event
[wine] / include / neexe.h
1 /*
2  * Copyright  Robert J. Amstadt, 1993
3  */
4 #ifndef __WINE_NEEXE_H
5 #define __WINE_NEEXE_H
6
7 #include "windef.h"
8
9 /*
10  * NE Header FORMAT FLAGS
11  */
12 #define NE_FFLAGS_SINGLEDATA    0x0001
13 #define NE_FFLAGS_MULTIPLEDATA  0x0002
14 #define NE_FFLAGS_WIN32         0x0010
15 #define NE_FFLAGS_BUILTIN       0x0020  /* Wine built-in module */
16 #define NE_FFLAGS_FRAMEBUF      0x0100  /* OS/2 fullscreen app */
17 #define NE_FFLAGS_CONSOLE       0x0200  /* OS/2 console app */
18 #define NE_FFLAGS_GUI           0x0300  /* right, (NE_FFLAGS_FRAMEBUF | NE_FFLAGS_CONSOLE) */
19 #define NE_FFLAGS_SELFLOAD      0x0800
20 #define NE_FFLAGS_LINKERROR     0x2000
21 #define NE_FFLAGS_CALLWEP       0x4000
22 #define NE_FFLAGS_LIBMODULE     0x8000
23
24 /*
25  * NE Header OPERATING SYSTEM
26  */
27 #define NE_OSFLAGS_UNKNOWN      0x01
28 #define NE_OSFLAGS_WINDOWS      0x04
29
30 /*
31  * NE Header ADDITIONAL FLAGS
32  */
33 #define NE_AFLAGS_WIN2_PROTMODE 0x02
34 #define NE_AFLAGS_WIN2_PROFONTS 0x04
35 #define NE_AFLAGS_FASTLOAD      0x08
36
37 /*
38  * Segment table entry
39  */
40 struct ne_segment_table_entry_s
41 {
42     WORD seg_data_offset;       /* Sector offset of segment data        */
43     WORD seg_data_length;       /* Length of segment data               */
44     WORD seg_flags;             /* Flags associated with this segment   */
45     WORD min_alloc;             /* Minimum allocation size for this     */
46 };
47
48 /*
49  * Segment Flags
50  */
51 #define NE_SEGFLAGS_DATA        0x0001
52 #define NE_SEGFLAGS_ALLOCATED   0x0002
53 #define NE_SEGFLAGS_LOADED      0x0004
54 #define NE_SEGFLAGS_ITERATED    0x0008
55 #define NE_SEGFLAGS_MOVEABLE    0x0010
56 #define NE_SEGFLAGS_SHAREABLE   0x0020
57 #define NE_SEGFLAGS_PRELOAD     0x0040
58 #define NE_SEGFLAGS_EXECUTEONLY 0x0080
59 #define NE_SEGFLAGS_READONLY    0x0080
60 #define NE_SEGFLAGS_RELOC_DATA  0x0100
61 #define NE_SEGFLAGS_SELFLOAD    0x0800
62 #define NE_SEGFLAGS_DISCARDABLE 0x1000
63 #define NE_SEGFLAGS_32BIT       0x2000
64
65 /*
66  * Relocation table entry
67  */
68 struct relocation_entry_s
69 {
70     BYTE address_type;  /* Relocation address type              */
71     BYTE relocation_type;       /* Relocation type                      */
72     WORD offset;                /* Offset in segment to fixup           */
73     WORD target1;               /* Target specification                 */
74     WORD target2;               /* Target specification                 */
75 };
76
77 /*
78  * Relocation address types
79  */
80 #define NE_RADDR_LOWBYTE        0
81 #define NE_RADDR_SELECTOR       2
82 #define NE_RADDR_POINTER32      3
83 #define NE_RADDR_OFFSET16       5
84 #define NE_RADDR_POINTER48      11
85 #define NE_RADDR_OFFSET32       13
86
87 /*
88  * Relocation types
89  */
90 #define NE_RELTYPE_INTERNAL     0
91 #define NE_RELTYPE_ORDINAL      1
92 #define NE_RELTYPE_NAME         2
93 #define NE_RELTYPE_OSFIXUP      3
94 #define NE_RELFLAG_ADDITIVE     4
95
96 /*
97  * Resource table structures.
98  */
99 struct resource_nameinfo_s
100 {
101     unsigned short offset;
102     unsigned short length;
103     unsigned short flags;
104     unsigned short id;
105     HANDLE16 handle;
106     unsigned short usage;
107 };
108
109 struct resource_typeinfo_s
110 {
111     unsigned short type_id;     /* Type identifier */
112     unsigned short count;       /* Number of resources of this type */
113     FARPROC16      resloader;   /* SetResourceHandler() */
114     /*
115      * Name info array.
116      */
117 };
118
119 #define NE_RSCTYPE_ACCELERATOR          0x8009
120 #define NE_RSCTYPE_BITMAP               0x8002
121 #define NE_RSCTYPE_CURSOR               0x8001
122 #define NE_RSCTYPE_DIALOG               0x8005
123 #define NE_RSCTYPE_FONT                 0x8008
124 #define NE_RSCTYPE_FONTDIR              0x8007
125 #define NE_RSCTYPE_GROUP_CURSOR         0x800c
126 #define NE_RSCTYPE_GROUP_ICON           0x800e
127 #define NE_RSCTYPE_ICON                 0x8003
128 #define NE_RSCTYPE_MENU                 0x8004
129 #define NE_RSCTYPE_RCDATA               0x800a
130 #define NE_RSCTYPE_STRING               0x8006
131
132 #endif  /* __WINE_NEEXE_H */