1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
/***
*w32sut.h -
*
* Copyright (c) 1987-1992, Microsoft Corporation. All rights reserved.
*
*Purpose:
* This file declares the constants, structures, and functions
* used for accessing and using the Universal Thunk mechanism.
*
* This file should be compiled either with constants W32SUT_16 or
* W32SUT_32 defined.
*
****/
/* Check that one of the 2 constants is defined */
#ifdef W32SUT_16
#ifdef W32SUT_32
#error W32SUT_16 and W32SUT_32 cannot be defined simultaneously
#endif
#endif
#ifndef W32SUT_16
#ifndef W32SUT_32
#error Either W32SUT_16 or W32SUT_32 should be defined
#endif
#endif
/**** Prototypes for 32 bit DLL ***********/
#ifdef W32SUT_32
typedef DWORD ( WINAPI * UT32PROC)( LPVOID lpBuff,
DWORD dwUserDefined,
LPVOID *lpTranslationList
);
BOOL WINAPI UTRegister( HANDLE hModule,
LPCSTR lpsz16BitDLL,
LPCSTR lpszInitName,
LPCSTR lpszProcName,
UT32PROC * ppfn32Thunk,
FARPROC pfnUT32Callback,
LPVOID lpBuff
);
VOID WINAPI UTUnRegister(HANDLE hModule);
#endif
/**** Prototypes for 16 bit DLL ***********/
#ifdef W32SUT_16
typedef DWORD (FAR PASCAL * UT16CBPROC)( LPVOID lpBuff,
DWORD dwUserDefined,
LPVOID FAR *lpTranslationList
);
LPVOID WINAPI UTLinearToSelectorOffset(LPBYTE lpByte);
LPVOID WINAPI UTSelectorOffsetToLinear(LPBYTE lpByte);
#endif
|