Use the exported IMAGE_OS2_HEADER to generate the module header in the
[wine] / include / module.h
1 /*
2  * Module definitions
3  *
4  * Copyright 1995 Alexandre Julliard
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19  */
20
21 #ifndef __WINE_MODULE_H
22 #define __WINE_MODULE_H
23
24 #include <stdarg.h>
25 #include <windef.h>
26 #include <winbase.h>
27 #include <winreg.h>
28 #include <wine/windef16.h>
29 #include <wine/winbase16.h>
30 #include <winternl.h>
31
32 #include <pshpack1.h>
33
34 typedef struct {
35     BYTE type;
36     BYTE flags;
37     BYTE segnum;
38     WORD offs;
39 } ET_ENTRY;
40
41 typedef struct {
42     WORD first; /* ordinal */
43     WORD last; /* ordinal */
44     WORD next; /* bundle */
45 } ET_BUNDLE;
46
47
48   /* In-memory segment table */
49 typedef struct
50 {
51     WORD      filepos;   /* Position in file, in sectors */
52     WORD      size;      /* Segment size on disk */
53     WORD      flags;     /* Segment flags */
54     WORD      minsize;   /* Min. size of segment in memory */
55     HANDLE16  hSeg;      /* Selector or handle (selector - 1) */
56                          /* of segment in memory */
57 } SEGTABLEENTRY;
58
59 #include <poppack.h>
60
61 enum loadorder_type
62 {
63     LOADORDER_INVALID = 0, /* Must be 0 */
64     LOADORDER_DLL,         /* Native DLLs */
65     LOADORDER_BI,          /* Built-in modules */
66     LOADORDER_NTYPES
67 };
68
69 /* module.c */
70 extern NTSTATUS MODULE_DllThreadAttach( LPVOID lpReserved );
71
72 /* resource16.c */
73 extern HGLOBAL16 WINAPI NE_DefResourceHandler(HGLOBAL16,HMODULE16,HRSRC16);
74
75 /* loadorder.c */
76 extern void MODULE_GetLoadOrderW( enum loadorder_type plo[], const WCHAR *app_name,
77                                   const WCHAR *path );
78
79 #endif  /* __WINE_MODULE_H */