From 6170666f25a76235509ab9a20b6cc061a6f88b97 Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Fri, 1 Dec 2000 21:31:02 +0000 Subject: [PATCH] Moved useful NE format definitions to winbase16.h. --- include/module.h | 12 +--- include/neexe.h | 133 --------------------------------------- include/wine/winbase16.h | 91 +++++++++++++++++++++++++++ 3 files changed, 92 insertions(+), 144 deletions(-) delete mode 100644 include/neexe.h diff --git a/include/module.h b/include/module.h index ef9bec2f70f..336686c834c 100644 --- a/include/module.h +++ b/include/module.h @@ -10,6 +10,7 @@ #include "windef.h" #include "winbase.h" #include "wine/windef16.h" +#include "wine/winbase16.h" /* In-memory module structure. See 'Windows Internals' p. 219 */ typedef struct _NE_MODULE @@ -99,15 +100,6 @@ typedef struct 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; @@ -150,8 +142,6 @@ typedef struct _wine_modref /* 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)) diff --git a/include/neexe.h b/include/neexe.h deleted file mode 100644 index b35c856078a..00000000000 --- a/include/neexe.h +++ /dev/null @@ -1,133 +0,0 @@ -/* - * Copyright Robert J. Amstadt, 1993 - */ -#ifndef __WINE_NEEXE_H -#define __WINE_NEEXE_H - -#include "windef.h" -#include "wine/windef16.h" - -/* - * NE Header FORMAT FLAGS - */ -#define NE_FFLAGS_SINGLEDATA 0x0001 -#define NE_FFLAGS_MULTIPLEDATA 0x0002 -#define NE_FFLAGS_WIN32 0x0010 -#define NE_FFLAGS_BUILTIN 0x0020 /* Wine built-in module */ -#define NE_FFLAGS_FRAMEBUF 0x0100 /* OS/2 fullscreen app */ -#define NE_FFLAGS_CONSOLE 0x0200 /* OS/2 console app */ -#define NE_FFLAGS_GUI 0x0300 /* right, (NE_FFLAGS_FRAMEBUF | NE_FFLAGS_CONSOLE) */ -#define NE_FFLAGS_SELFLOAD 0x0800 -#define NE_FFLAGS_LINKERROR 0x2000 -#define NE_FFLAGS_CALLWEP 0x4000 -#define NE_FFLAGS_LIBMODULE 0x8000 - -/* - * NE Header OPERATING SYSTEM - */ -#define NE_OSFLAGS_UNKNOWN 0x01 -#define NE_OSFLAGS_WINDOWS 0x04 - -/* - * NE Header ADDITIONAL FLAGS - */ -#define NE_AFLAGS_WIN2_PROTMODE 0x02 -#define NE_AFLAGS_WIN2_PROFONTS 0x04 -#define NE_AFLAGS_FASTLOAD 0x08 - -/* - * Segment table entry - */ -struct ne_segment_table_entry_s -{ - WORD seg_data_offset; /* Sector offset of segment data */ - WORD seg_data_length; /* Length of segment data */ - WORD seg_flags; /* Flags associated with this segment */ - WORD min_alloc; /* Minimum allocation size for this */ -}; - -/* - * Segment Flags - */ -#define NE_SEGFLAGS_DATA 0x0001 -#define NE_SEGFLAGS_ALLOCATED 0x0002 -#define NE_SEGFLAGS_LOADED 0x0004 -#define NE_SEGFLAGS_ITERATED 0x0008 -#define NE_SEGFLAGS_MOVEABLE 0x0010 -#define NE_SEGFLAGS_SHAREABLE 0x0020 -#define NE_SEGFLAGS_PRELOAD 0x0040 -#define NE_SEGFLAGS_EXECUTEONLY 0x0080 -#define NE_SEGFLAGS_READONLY 0x0080 -#define NE_SEGFLAGS_RELOC_DATA 0x0100 -#define NE_SEGFLAGS_SELFLOAD 0x0800 -#define NE_SEGFLAGS_DISCARDABLE 0x1000 -#define NE_SEGFLAGS_32BIT 0x2000 - -/* - * Relocation table entry - */ -struct relocation_entry_s -{ - BYTE address_type; /* Relocation address type */ - BYTE relocation_type; /* Relocation type */ - WORD offset; /* Offset in segment to fixup */ - WORD target1; /* Target specification */ - WORD target2; /* Target specification */ -}; - -/* - * Relocation address types - */ -#define NE_RADDR_LOWBYTE 0 -#define NE_RADDR_SELECTOR 2 -#define NE_RADDR_POINTER32 3 -#define NE_RADDR_OFFSET16 5 -#define NE_RADDR_POINTER48 11 -#define NE_RADDR_OFFSET32 13 - -/* - * Relocation types - */ -#define NE_RELTYPE_INTERNAL 0 -#define NE_RELTYPE_ORDINAL 1 -#define NE_RELTYPE_NAME 2 -#define NE_RELTYPE_OSFIXUP 3 -#define NE_RELFLAG_ADDITIVE 4 - -/* - * Resource table structures. - */ -struct resource_nameinfo_s -{ - unsigned short offset; - unsigned short length; - unsigned short flags; - unsigned short id; - HANDLE16 handle; - unsigned short usage; -}; - -struct resource_typeinfo_s -{ - unsigned short type_id; /* Type identifier */ - unsigned short count; /* Number of resources of this type */ - FARPROC16 resloader; /* SetResourceHandler() */ - /* - * Name info array. - */ -}; - -#define NE_RSCTYPE_ACCELERATOR 0x8009 -#define NE_RSCTYPE_BITMAP 0x8002 -#define NE_RSCTYPE_CURSOR 0x8001 -#define NE_RSCTYPE_DIALOG 0x8005 -#define NE_RSCTYPE_FONT 0x8008 -#define NE_RSCTYPE_FONTDIR 0x8007 -#define NE_RSCTYPE_GROUP_CURSOR 0x800c -#define NE_RSCTYPE_GROUP_ICON 0x800e -#define NE_RSCTYPE_ICON 0x8003 -#define NE_RSCTYPE_MENU 0x8004 -#define NE_RSCTYPE_RCDATA 0x800a -#define NE_RSCTYPE_STRING 0x8006 - -#endif /* __WINE_NEEXE_H */ diff --git a/include/wine/winbase16.h b/include/wine/winbase16.h index 6bc2aa159f9..b5bcbdf63ff 100644 --- a/include/wine/winbase16.h +++ b/include/wine/winbase16.h @@ -37,6 +37,15 @@ typedef struct _SEGINFO { #define WF_WIN32WOW 0x4000 /* undoc */ #define WF_WLO 0x8000 +/* 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; + #include "poppack.h" #define INVALID_HANDLE_VALUE16 ((HANDLE16) -1) @@ -52,6 +61,88 @@ typedef struct { } OSVERSIONINFO16; +/* + * NE Header FORMAT FLAGS + */ +#define NE_FFLAGS_SINGLEDATA 0x0001 +#define NE_FFLAGS_MULTIPLEDATA 0x0002 +#define NE_FFLAGS_WIN32 0x0010 +#define NE_FFLAGS_BUILTIN 0x0020 /* Wine built-in module */ +#define NE_FFLAGS_FRAMEBUF 0x0100 /* OS/2 fullscreen app */ +#define NE_FFLAGS_CONSOLE 0x0200 /* OS/2 console app */ +#define NE_FFLAGS_GUI 0x0300 /* right, (NE_FFLAGS_FRAMEBUF | NE_FFLAGS_CONSOLE) */ +#define NE_FFLAGS_SELFLOAD 0x0800 +#define NE_FFLAGS_LINKERROR 0x2000 +#define NE_FFLAGS_CALLWEP 0x4000 +#define NE_FFLAGS_LIBMODULE 0x8000 + +/* + * NE Header OPERATING SYSTEM + */ +#define NE_OSFLAGS_UNKNOWN 0x01 +#define NE_OSFLAGS_WINDOWS 0x04 + +/* + * NE Header ADDITIONAL FLAGS + */ +#define NE_AFLAGS_WIN2_PROTMODE 0x02 +#define NE_AFLAGS_WIN2_PROFONTS 0x04 +#define NE_AFLAGS_FASTLOAD 0x08 + +/* + * Segment Flags + */ +#define NE_SEGFLAGS_DATA 0x0001 +#define NE_SEGFLAGS_ALLOCATED 0x0002 +#define NE_SEGFLAGS_LOADED 0x0004 +#define NE_SEGFLAGS_ITERATED 0x0008 +#define NE_SEGFLAGS_MOVEABLE 0x0010 +#define NE_SEGFLAGS_SHAREABLE 0x0020 +#define NE_SEGFLAGS_PRELOAD 0x0040 +#define NE_SEGFLAGS_EXECUTEONLY 0x0080 +#define NE_SEGFLAGS_READONLY 0x0080 +#define NE_SEGFLAGS_RELOC_DATA 0x0100 +#define NE_SEGFLAGS_SELFLOAD 0x0800 +#define NE_SEGFLAGS_DISCARDABLE 0x1000 +#define NE_SEGFLAGS_32BIT 0x2000 + +/* + * Resource table structures. + */ +typedef struct +{ + WORD offset; + WORD length; + WORD flags; + WORD id; + HANDLE16 handle; + WORD usage; +} NE_NAMEINFO; + +typedef struct +{ + WORD type_id; /* Type identifier */ + WORD count; /* Number of resources of this type */ + FARPROC16 resloader; /* SetResourceHandler() */ + /* + * Name info array. + */ +} NE_TYPEINFO; + +#define NE_RSCTYPE_CURSOR 0x8001 +#define NE_RSCTYPE_BITMAP 0x8002 +#define NE_RSCTYPE_ICON 0x8003 +#define NE_RSCTYPE_MENU 0x8004 +#define NE_RSCTYPE_DIALOG 0x8005 +#define NE_RSCTYPE_STRING 0x8006 +#define NE_RSCTYPE_FONTDIR 0x8007 +#define NE_RSCTYPE_FONT 0x8008 +#define NE_RSCTYPE_ACCELERATOR 0x8009 +#define NE_RSCTYPE_RCDATA 0x800a +#define NE_RSCTYPE_GROUP_CURSOR 0x800c +#define NE_RSCTYPE_GROUP_ICON 0x800e + + /* undocumented functions */ WORD WINAPI AllocCStoDSAlias16(WORD); WORD WINAPI AllocDStoCSAlias16(WORD);