Skip to content
Snippets Groups Projects
Commit 6170666f authored by Alexandre Julliard's avatar Alexandre Julliard
Browse files

Moved useful NE format definitions to winbase16.h.

parent 31b6d090
No related branches found
No related tags found
No related merge requests found
......@@ -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))
......
/*
* 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 */
......@@ -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);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment