4 * Copyright 1995 Alexandre Julliard
7 #ifndef __WINE_MODULE_H
8 #define __WINE_MODULE_H
18 WORD offs WINE_PACKED;
22 WORD first; /* ordinal */
23 WORD last; /* ordinal */
24 WORD next; /* bundle */
28 /* In-memory segment table */
31 WORD filepos; /* Position in file, in sectors */
32 WORD size; /* Segment size on disk */
33 WORD flags; /* Segment flags */
34 WORD minsize; /* Min. size of segment in memory */
35 HANDLE16 hSeg; /* Selector or handle (selector - 1) */
36 /* of segment in memory */
40 /* Self-loading modules contain this structure in their first segment */
46 WORD version; /* Must be "A0" (0x3041) */
48 FARPROC16 BootApp; /* startup procedure */
49 FARPROC16 LoadAppSeg; /* procedure to load a segment */
51 FARPROC16 MyAlloc; /* memory allocation procedure,
52 * wine must write this field */
53 FARPROC16 EntryAddrProc;
54 FARPROC16 ExitProc; /* exit procedure */
56 FARPROC16 SetOwner; /* Set Owner procedure, exported by wine */
59 /* Parameters for LoadModule() */
62 HGLOBAL16 hEnvironment; /* Environment segment */
63 SEGPTR cmdLine WINE_PACKED; /* Command-line */
64 SEGPTR showCmd WINE_PACKED; /* Code for ShowWindow() */
65 SEGPTR reserved WINE_PACKED;
78 /* internal representation of 32bit modules. per process. */
85 typedef struct _wine_modref
87 struct _wine_modref *next;
88 struct _wine_modref *prev;
98 struct _wine_modref **deps;
105 char *short_filename;
109 #define WINE_MODREF_INTERNAL 0x00000001
110 #define WINE_MODREF_NO_DLL_CALLS 0x00000002
111 #define WINE_MODREF_PROCESS_ATTACHED 0x00000004
112 #define WINE_MODREF_LOAD_AS_DATAFILE 0x00000010
113 #define WINE_MODREF_DONT_RESOLVE_REFS 0x00000020
114 #define WINE_MODREF_MARKER 0x80000000
119 typedef struct resource_typeinfo_s NE_TYPEINFO;
120 typedef struct resource_nameinfo_s NE_NAMEINFO;
122 #define NE_SEG_TABLE(pModule) \
123 ((SEGTABLEENTRY *)((char *)(pModule) + (pModule)->seg_table))
125 #define NE_MODULE_TABLE(pModule) \
126 ((WORD *)((char *)(pModule) + (pModule)->modref_table))
128 #define NE_MODULE_NAME(pModule) \
129 (((OFSTRUCT *)((char*)(pModule) + (pModule)->fileinfo))->szPathName)
131 struct modref_list_t;
133 typedef struct modref_list_t
136 struct modref_list_t *next;
137 struct modref_list_t *prev;
142 extern FARPROC MODULE_GetProcAddress( HMODULE hModule, LPCSTR function, WIN_BOOL snoop );
143 extern WINE_MODREF *MODULE32_LookupHMODULE( HMODULE hModule );
144 extern WINE_MODREF *MODULE_FindModule( LPCSTR path );
147 extern INT WINAPI AccessResource(HMODULE,HRSRC);
149 #endif /* __WINE_MODULE_H */