| 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 |  | 
|---|