--- /dev/null
+/*
+ * Module definitions
+ *
+ * Copyright 1995 Alexandre Julliard
+ */
+
+#ifndef __WINE_MODULE_H
+#define __WINE_MODULE_H
+
+#include "windef.h"
+#include "pe_image.h"
+
+
+typedef struct {
+ BYTE type;
+ BYTE flags;
+ BYTE segnum;
+ WORD offs WINE_PACKED;
+} ET_ENTRY;
+
+typedef struct {
+ WORD first; /* ordinal */
+ WORD last; /* ordinal */
+ WORD next; /* bundle */
+} ET_BUNDLE;
+
+
+ /* In-memory segment table */
+typedef struct
+{
+ WORD filepos; /* Position in file, in sectors */
+ WORD size; /* Segment size on disk */
+ WORD flags; /* Segment flags */
+ WORD minsize; /* Min. size of segment in memory */
+ HANDLE16 hSeg; /* Selector or handle (selector - 1) */
+ /* of segment in memory */
+} SEGTABLEENTRY;
+
+
+ /* Self-loading modules contain this structure in their first segment */
+
+#include "pshpack1.h"
+
+typedef struct
+{
+ WORD version; /* Must be "A0" (0x3041) */
+ WORD reserved;
+ FARPROC16 BootApp; /* startup procedure */
+ FARPROC16 LoadAppSeg; /* procedure to load a segment */
+ FARPROC16 reserved2;
+ FARPROC16 MyAlloc; /* memory allocation procedure,
+ * wine must write this field */
+ FARPROC16 EntryAddrProc;
+ FARPROC16 ExitProc; /* exit procedure */
+ WORD reserved3[4];
+ FARPROC16 SetOwner; /* Set Owner procedure, exported by wine */
+} SELFLOADHEADER;
+
+ /* Parameters for LoadModule() */
+typedef struct
+{
+ HGLOBAL16 hEnvironment; /* Environment segment */
+ SEGPTR cmdLine WINE_PACKED; /* Command-line */
+ SEGPTR showCmd WINE_PACKED; /* Code for ShowWindow() */
+ SEGPTR reserved WINE_PACKED;
+} LOADPARAMS16;
+
+typedef struct
+{
+ LPSTR lpEnvAddress;
+ LPSTR lpCmdLine;
+ UINT16 *lpCmdShow;
+ DWORD dwReserved;
+} LOADPARAMS;
+
+#include "poppack.h"
+
+/* internal representation of 32bit modules. per process. */
+typedef enum {
+ MODULE32_PE = 1,
+ MODULE32_ELF,
+ MODULE32_ELFDLL
+} MODULE32_TYPE;
+
+typedef struct _wine_modref
+{
+ struct _wine_modref *next;
+ struct _wine_modref *prev;
+ MODULE32_TYPE type;
+ union {
+ PE_MODREF pe;
+ ELF_MODREF elf;
+ } binfmt;
+
+ HMODULE module;
+
+ int nDeps;
+ struct _wine_modref **deps;
+
+ int flags;
+ int refCount;
+
+ char *filename;
+ char *modname;
+ char *short_filename;
+ char *short_modname;
+} WINE_MODREF;
+
+#define WINE_MODREF_INTERNAL 0x00000001
+#define WINE_MODREF_NO_DLL_CALLS 0x00000002
+#define WINE_MODREF_PROCESS_ATTACHED 0x00000004
+#define WINE_MODREF_LOAD_AS_DATAFILE 0x00000010
+#define WINE_MODREF_DONT_RESOLVE_REFS 0x00000020
+#define WINE_MODREF_MARKER 0x80000000
+
+
+
+/* Resource types */
+typedef struct resource_typeinfo_s NE_TYPEINFO;
+typedef struct resource_nameinfo_s NE_NAMEINFO;
+
+#define NE_SEG_TABLE(pModule) \
+ ((SEGTABLEENTRY *)((char *)(pModule) + (pModule)->seg_table))
+
+#define NE_MODULE_TABLE(pModule) \
+ ((WORD *)((char *)(pModule) + (pModule)->modref_table))
+
+#define NE_MODULE_NAME(pModule) \
+ (((OFSTRUCT *)((char*)(pModule) + (pModule)->fileinfo))->szPathName)
+
+struct modref_list_t;
+
+typedef struct modref_list_t
+{
+ WINE_MODREF* wm;
+ struct modref_list_t *next;
+ struct modref_list_t *prev;
+} modref_list;
+
+
+/* module.c */
+extern FARPROC MODULE_GetProcAddress( HMODULE hModule, LPCSTR function, WIN_BOOL snoop );
+extern WINE_MODREF *MODULE32_LookupHMODULE( HMODULE hModule );
+extern WINE_MODREF *MODULE_FindModule( LPCSTR path );
+
+/* resource.c */
+extern INT WINAPI AccessResource(HMODULE,HRSRC);
+
+#endif /* __WINE_MODULE_H */