| 1 | /*
 | 
|---|
| 2 |  * WOW Generic Thunk API 
 | 
|---|
| 3 |  */
 | 
|---|
| 4 | 
 | 
|---|
| 5 | #ifndef _WOWNT32_H_
 | 
|---|
| 6 | #define _WOWNT32_H_
 | 
|---|
| 7 | 
 | 
|---|
| 8 | LPVOID WINAPI WOWGetVDMPointer(DWORD,DWORD,BOOL);
 | 
|---|
| 9 | LPVOID WINAPI WOWGetVDMPointerFix(DWORD,DWORD,BOOL);
 | 
|---|
| 10 | VOID   WINAPI WOWGetVDMPointerUnfix(DWORD);
 | 
|---|
| 11 | 
 | 
|---|
| 12 | WORD   WINAPI WOWGlobalAlloc16(WORD,DWORD);
 | 
|---|
| 13 | WORD   WINAPI WOWGlobalFree16(WORD);
 | 
|---|
| 14 | DWORD  WINAPI WOWGlobalLock16(WORD);
 | 
|---|
| 15 | BOOL   WINAPI WOWGlobalUnlock16(WORD);
 | 
|---|
| 16 | DWORD  WINAPI WOWGlobalAllocLock16(WORD,DWORD,WORD *);
 | 
|---|
| 17 | WORD   WINAPI WOWGlobalUnlockFree16(DWORD);
 | 
|---|
| 18 | DWORD  WINAPI WOWGlobalLockSize16(WORD,PDWORD);
 | 
|---|
| 19 | 
 | 
|---|
| 20 | VOID   WINAPI WOWYield16(VOID);
 | 
|---|
| 21 | VOID   WINAPI WOWDirectedYield16(WORD);
 | 
|---|
| 22 | 
 | 
|---|
| 23 | typedef enum
 | 
|---|
| 24 | {
 | 
|---|
| 25 |     WOW_TYPE_HWND,
 | 
|---|
| 26 |     WOW_TYPE_HMENU,
 | 
|---|
| 27 |     WOW_TYPE_HDWP,
 | 
|---|
| 28 |     WOW_TYPE_HDROP,
 | 
|---|
| 29 |     WOW_TYPE_HDC,
 | 
|---|
| 30 |     WOW_TYPE_HFONT,
 | 
|---|
| 31 |     WOW_TYPE_HMETAFILE,
 | 
|---|
| 32 |     WOW_TYPE_HRGN,
 | 
|---|
| 33 |     WOW_TYPE_HBITMAP,
 | 
|---|
| 34 |     WOW_TYPE_HBRUSH,
 | 
|---|
| 35 |     WOW_TYPE_HPALETTE,
 | 
|---|
| 36 |     WOW_TYPE_HPEN,
 | 
|---|
| 37 |     WOW_TYPE_HACCEL,
 | 
|---|
| 38 |     WOW_TYPE_HTASK,
 | 
|---|
| 39 |     WOW_TYPE_FULLHWND
 | 
|---|
| 40 | 
 | 
|---|
| 41 | } WOW_HANDLE_TYPE;
 | 
|---|
| 42 | 
 | 
|---|
| 43 | HANDLE WINAPI WOWHandle32(WORD,WOW_HANDLE_TYPE);
 | 
|---|
| 44 | WORD   WINAPI WOWHandle16(HANDLE,WOW_HANDLE_TYPE);
 | 
|---|
| 45 | 
 | 
|---|
| 46 | #define HWND_32(h16)      ((HWND)      (WOWHandle32(h16, WOW_TYPE_HWND)))
 | 
|---|
| 47 | #define HMENU_32(h16)     ((HMENU)     (WOWHandle32(h16, WOW_TYPE_HMENU)))
 | 
|---|
| 48 | #define HDWP_32(h16)      ((HDWP)      (WOWHandle32(h16, WOW_TYPE_HDWP)))
 | 
|---|
| 49 | #define HDROP_32(h16)     ((HDROP)     (WOWHandle32(h16, WOW_TYPE_HDROP)))
 | 
|---|
| 50 | #define HDC_32(h16)       ((HDC)       (WOWHandle32(h16, WOW_TYPE_HDC)))
 | 
|---|
| 51 | #define HFONT_32(h16)     ((HFONT)     (WOWHandle32(h16, WOW_TYPE_HFONT)))
 | 
|---|
| 52 | #define HMETAFILE_32(h16) ((HMETAFILE) (WOWHandle32(h16, WOW_TYPE_HMETAFILE)))
 | 
|---|
| 53 | #define HRGN_32(h16)      ((HRGN)      (WOWHandle32(h16, WOW_TYPE_HRGN)))
 | 
|---|
| 54 | #define HBITMAP_32(h16)   ((HBITMAP)   (WOWHandle32(h16, WOW_TYPE_HBITMAP)))
 | 
|---|
| 55 | #define HBRUSH_32(h16)    ((HBRUSH)    (WOWHandle32(h16, WOW_TYPE_HBRUSH)))
 | 
|---|
| 56 | #define HPALETTE_32(h16)  ((HPALETTE)  (WOWHandle32(h16, WOW_TYPE_HPALETTE)))
 | 
|---|
| 57 | #define HPEN_32(h16)      ((HPEN)      (WOWHandle32(h16, WOW_TYPE_HPEN)))
 | 
|---|
| 58 | #define HACCEL_32(h16)    ((HACCEL)    (WOWHandle32(h16, WOW_TYPE_HACCEL)))
 | 
|---|
| 59 | #define HTASK_32(h16)     ((DWORD)     (WOWHandle32(h16, WOW_TYPE_HTASK)))
 | 
|---|
| 60 | #define FULLHWND_32(h16)  ((HWND)      (WOWHandle32(h16, WOW_TYPE_FULLHWND)))
 | 
|---|
| 61 | 
 | 
|---|
| 62 | #define HWND_16(h32)      (WOWHandle16(h32, WOW_TYPE_HWND))
 | 
|---|
| 63 | #define HMENU_16(h32)     (WOWHandle16(h32, WOW_TYPE_HMENU))
 | 
|---|
| 64 | #define HDWP_16(h32)      (WOWHandle16(h32, WOW_TYPE_HDWP))
 | 
|---|
| 65 | #define HDROP_16(h32)     (WOWHandle16(h32, WOW_TYPE_HDROP))
 | 
|---|
| 66 | #define HDC_16(h32)       (WOWHandle16(h32, WOW_TYPE_HDC))
 | 
|---|
| 67 | #define HFONT_16(h32)     (WOWHandle16(h32, WOW_TYPE_HFONT))
 | 
|---|
| 68 | #define HMETAFILE_16(h32) (WOWHandle16(h32, WOW_TYPE_HMETAFILE))
 | 
|---|
| 69 | #define HRGN_16(h32)      (WOWHandle16(h32, WOW_TYPE_HRGN))
 | 
|---|
| 70 | #define HBITMAP_16(h32)   (WOWHandle16(h32, WOW_TYPE_HBITMAP))
 | 
|---|
| 71 | #define HBRUSH_16(h32)    (WOWHandle16(h32, WOW_TYPE_HBRUSH))
 | 
|---|
| 72 | #define HPALETTE_16(h32)  (WOWHandle16(h32, WOW_TYPE_HPALETTE))
 | 
|---|
| 73 | #define HPEN_16(h32)      (WOWHandle16(h32, WOW_TYPE_HPEN))
 | 
|---|
| 74 | #define HACCEL_16(h32)    (WOWHandle16(h32, WOW_TYPE_HACCEL))
 | 
|---|
| 75 | #define HTASK_16(h32)     (WOWHandle16(h32, WOW_TYPE_HTASK))
 | 
|---|
| 76 | 
 | 
|---|
| 77 | 
 | 
|---|
| 78 | #define WCB16_PASCAL     0
 | 
|---|
| 79 | #define WCB16_CDECL      1
 | 
|---|
| 80 | #define WCB16_MAX_CBARGS 16
 | 
|---|
| 81 | 
 | 
|---|
| 82 | DWORD WINAPI WOWCallback16(DWORD,DWORD);
 | 
|---|
| 83 | BOOL  WINAPI WOWCallback16Ex(DWORD,DWORD,DWORD,LPVOID,LPDWORD);
 | 
|---|
| 84 | 
 | 
|---|
| 85 | #endif /* _WOWNT32_H_ */
 | 
|---|
| 86 | 
 | 
|---|
| 87 | 
 | 
|---|