2 * Win95 Flat Thunk data structures
4 * Copyright 1998 Ulrich Weigand
7 #ifndef __WINE_FLATTHUNK_H
8 #define __WINE_FLATTHUNK_H
10 struct ThunkDataCommon
12 char magic
[4]; /* 00 */
13 DWORD checksum
; /* 04 */
18 struct ThunkDataCommon common
; /* 00 */
19 SEGPTR targetTable
; /* 08 */
20 DWORD firstTime
; /* 0C */
25 struct ThunkDataCommon common
; /* 00 */
26 DWORD
* targetTable
; /* 08 */
27 char lateBinding
[4]; /* 0C */
29 DWORD reserved1
; /* 14 */
30 DWORD reserved2
; /* 18 */
31 DWORD offsetQTThunk
; /* 1C */
32 DWORD offsetFTProlog
; /* 20 */
37 struct ThunkDataCommon common
; /* 00 */
38 DWORD flags1
; /* 08 */
39 DWORD reserved1
; /* 0C */
40 struct ThunkDataSL
* fpData
; /* 10 */
41 SEGPTR spData
; /* 14 */
42 DWORD reserved2
; /* 18 */
43 char lateBinding
[4]; /* 1C */
44 DWORD flags2
; /* 20 */
45 DWORD reserved3
; /* 20 */
46 SEGPTR apiDatabase
; /* 28 */
51 struct ThunkDataCommon common
; /* 00 */
52 DWORD reserved1
; /* 08 */
53 struct ThunkDataSL
* data
; /* 0C */
54 char lateBinding
[4]; /* 10 */
56 DWORD reserved2
; /* 18 */
57 DWORD reserved3
; /* 1C */
58 DWORD offsetTargetTable
; /* 20 */
64 This structure differs from the Win95 original
,
65 but
this should
not matter since it is strictly internal to
66 the thunk handling routines in KRNL386
/ KERNEL32
.
68 For reference
, here is the Win95 layout
:
70 struct ThunkDataCommon common
; /* 00 */
71 DWORD flags1
; /* 08 */
72 SEGPTR apiDatabase
; /* 0C */
75 DWORD lenMBATotal
; /* 14 */
76 DWORD lenMBAUsed
; /* 18 */
77 DWORD flags2
; /* 1C */
78 char pszDll16
[256]; /* 20 */
79 char pszDll32
[256]; /*120 */
81 We
do it differently since all our thunk handling is done
82 by
32-bit code
. Therefore we
do not need
do provide
83 easy access to
this data
, especially the process target
84 table database
, for 16-bit code
.
87 struct ThunkDataCommon common
;
89 struct SLApiDB
* apiDB
;
90 struct SLTargetDB
* targetDB
;
98 struct SLTargetDB
* next
;
106 DWORD errorReturnValue
;
110 #endif /* __WINE_FLATTHUNK_H */