source: trunk/include/win/pe_image.h@ 10367

Last change on this file since 10367 was 4124, checked in by sandervl, 25 years ago

header updates

File size: 3.1 KB
Line 
1/* $Id: pe_image.h,v 1.2 2000-08-30 13:56:38 sandervl Exp $ */
2
3#ifndef __WINE_PE_IMAGE_H
4#define __WINE_PE_IMAGE_H
5
6#include "windef.h"
7#include "winbase.h"
8#include "peexe.h"
9/* modreference used for attached processes
10 * all section are calculated here, relocations etc.
11 */
12typedef struct {
13 PIMAGE_IMPORT_DESCRIPTOR pe_import;
14 PIMAGE_EXPORT_DIRECTORY pe_export;
15 PIMAGE_RESOURCE_DIRECTORY pe_resource;
16 int tlsindex;
17} PE_MODREF;
18
19struct _wine_modref;
20extern int PE_unloadImage(HMODULE hModule);
21extern FARPROC PE_FindExportedFunction(struct _wine_modref *wm, LPCSTR funcName, BOOL snoop);
22extern BOOL PE_EnumResourceTypesA(HMODULE,ENUMRESTYPEPROCA,LONG);
23extern BOOL PE_EnumResourceTypesW(HMODULE,ENUMRESTYPEPROCW,LONG);
24extern BOOL PE_EnumResourceNamesA(HMODULE,LPCSTR,ENUMRESNAMEPROCA,LONG);
25extern BOOL PE_EnumResourceNamesW(HMODULE,LPCWSTR,ENUMRESNAMEPROCW,LONG);
26extern BOOL PE_EnumResourceLanguagesA(HMODULE,LPCSTR,LPCSTR,ENUMRESLANGPROCA,LONG);
27extern BOOL PE_EnumResourceLanguagesW(HMODULE,LPCWSTR,LPCWSTR,ENUMRESLANGPROCW,LONG);
28extern HRSRC PE_FindResourceExW(struct _wine_modref*,LPCWSTR,LPCWSTR,WORD);
29extern DWORD PE_SizeofResource(HMODULE,HRSRC);
30extern struct _wine_modref *PE_LoadLibraryExA(LPCSTR, DWORD, DWORD *);
31extern void PE_UnloadLibrary(struct _wine_modref *);
32extern HGLOBAL PE_LoadResource(struct _wine_modref *wm,HRSRC);
33extern HMODULE PE_LoadImage( HFILE hFile, OFSTRUCT *ofs, LPCSTR *modName );
34extern struct _wine_modref *PE_CreateModule( HMODULE hModule, OFSTRUCT *ofs,
35 DWORD flags, BOOL builtin );
36extern BOOL PE_CreateProcess( HFILE hFile, OFSTRUCT *ofs, LPCSTR cmd_line, LPCSTR env,
37 LPSECURITY_ATTRIBUTES psa, LPSECURITY_ATTRIBUTES tsa,
38 BOOL inherit, LPSTARTUPINFOA startup,
39 LPPROCESS_INFORMATION info );
40
41extern void PE_InitTls(void);
42extern BOOL PE_InitDLL(struct _wine_modref *wm, DWORD type, LPVOID lpReserved);
43
44extern PIMAGE_RESOURCE_DIRECTORY GetResDirEntryA(PIMAGE_RESOURCE_DIRECTORY,LPCSTR,DWORD,BOOL);
45extern PIMAGE_RESOURCE_DIRECTORY GetResDirEntryW(PIMAGE_RESOURCE_DIRECTORY,LPCWSTR,DWORD,BOOL);
46
47typedef DWORD (* CALLBACK DLLENTRYPROC)(HMODULE,DWORD,LPVOID);
48
49typedef struct {
50 WORD popl WINE_PACKED; /* 0x8f 0x05 */
51 DWORD addr_popped WINE_PACKED;/* ... */
52 BYTE pushl1 WINE_PACKED; /* 0x68 */
53 DWORD newret WINE_PACKED; /* ... */
54 BYTE pushl2 WINE_PACKED; /* 0x68 */
55 DWORD origfun WINE_PACKED; /* original function */
56 BYTE ret1 WINE_PACKED; /* 0xc3 */
57 WORD addesp WINE_PACKED; /* 0x83 0xc4 */
58 BYTE nrofargs WINE_PACKED; /* nr of arguments to add esp, */
59 BYTE pushl3 WINE_PACKED; /* 0x68 */
60 DWORD oldret WINE_PACKED; /* Filled out from popl above */
61 BYTE ret2 WINE_PACKED; /* 0xc3 */
62} ELF_STDCALL_STUB;
63
64typedef struct {
65 void* dlhandle;
66 ELF_STDCALL_STUB *stubs;
67} ELF_MODREF;
68
69extern struct _wine_modref *ELF_CreateDummyModule(LPCSTR,LPCSTR);
70extern struct _wine_modref *ELF_LoadLibraryExA( LPCSTR libname, DWORD flags, DWORD *err);
71extern void ELF_UnloadLibrary(struct _wine_modref *);
72extern FARPROC ELF_FindExportedFunction(struct _wine_modref *wm, LPCSTR funcName);
73
74#endif /* __WINE_PE_IMAGE_H */
Note: See TracBrowser for help on using the repository browser.