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