1/** 2 * This file has no copyright assigned and is placed in the Public Domain. 3 * This file is part of the mingw-w64 runtime package. 4 * No warranty is given; refer to the file DISCLAIMER.PD within this package. 5 */ 6#ifndef _WOWNT32_ 7#define _WOWNT32_ 8 9LPVOID WINAPI WOWGetVDMPointer(DWORD vp,DWORD dwBytes,WINBOOL fProtectedMode); 10LPVOID WINAPI WOWGetVDMPointerFix(DWORD vp,DWORD dwBytes,WINBOOL fProtectedMode); 11VOID WINAPI WOWGetVDMPointerUnfix(DWORD vp); 12WORD WINAPI WOWGlobalAlloc16(WORD wFlags,DWORD cb); 13WORD WINAPI WOWGlobalFree16(WORD hMem); 14DWORD WINAPI WOWGlobalLock16(WORD hMem); 15WINBOOL WINAPI WOWGlobalUnlock16(WORD hMem); 16DWORD WINAPI WOWGlobalAllocLock16(WORD wFlags,DWORD cb,WORD *phMem); 17WORD WINAPI WOWGlobalUnlockFree16(DWORD vpMem); 18DWORD WINAPI WOWGlobalLockSize16(WORD hMem,PDWORD pcb); 19VOID WINAPI WOWYield16(VOID); 20VOID WINAPI WOWDirectedYield16(WORD htask16); 21 22typedef enum _WOW_HANDLE_TYPE { 23 WOW_TYPE_HWND,WOW_TYPE_HMENU,WOW_TYPE_HDWP,WOW_TYPE_HDROP,WOW_TYPE_HDC,WOW_TYPE_HFONT,WOW_TYPE_HMETAFILE,WOW_TYPE_HRGN,WOW_TYPE_HBITMAP, 24 WOW_TYPE_HBRUSH,WOW_TYPE_HPALETTE,WOW_TYPE_HPEN,WOW_TYPE_HACCEL,WOW_TYPE_HTASK,WOW_TYPE_FULLHWND 25} WOW_HANDLE_TYPE; 26 27HANDLE WINAPI WOWHandle32 (WORD,WOW_HANDLE_TYPE); 28WORD WINAPI WOWHandle16 (HANDLE,WOW_HANDLE_TYPE); 29 30#define HWND_32(h16) ((HWND) (WOWHandle32(h16,WOW_TYPE_HWND))) 31#define HMENU_32(h16) ((HMENU) (WOWHandle32(h16,WOW_TYPE_HMENU))) 32#define HDWP_32(h16) ((HDWP) (WOWHandle32(h16,WOW_TYPE_HDWP))) 33#define HDROP_32(h16) ((HDROP) (WOWHandle32(h16,WOW_TYPE_HDROP))) 34#define HDC_32(h16) ((HDC) (WOWHandle32(h16,WOW_TYPE_HDC))) 35#define HFONT_32(h16) ((HFONT) (WOWHandle32(h16,WOW_TYPE_HFONT))) 36#define HMETAFILE_32(h16) ((HMETAFILE) (WOWHandle32(h16,WOW_TYPE_HMETAFILE))) 37#define HRGN_32(h16) ((HRGN) (WOWHandle32(h16,WOW_TYPE_HRGN))) 38#define HBITMAP_32(h16) ((HBITMAP) (WOWHandle32(h16,WOW_TYPE_HBITMAP))) 39#define HBRUSH_32(h16) ((HBRUSH) (WOWHandle32(h16,WOW_TYPE_HBRUSH))) 40#define HPALETTE_32(h16) ((HPALETTE) (WOWHandle32(h16,WOW_TYPE_HPALETTE))) 41#define HPEN_32(h16) ((HPEN) (WOWHandle32(h16,WOW_TYPE_HPEN))) 42#define HACCEL_32(h16) ((HACCEL) (WOWHandle32(h16,WOW_TYPE_HACCEL))) 43#define HTASK_32(h16) ((DWORD) (WOWHandle32(h16,WOW_TYPE_HTASK))) 44#define FULLHWND_32(h16) ((HWND) (WOWHandle32(h16,WOW_TYPE_FULLHWND))) 45 46#define HWND_16(h32) (WOWHandle16(h32,WOW_TYPE_HWND)) 47#define HMENU_16(h32) (WOWHandle16(h32,WOW_TYPE_HMENU)) 48#define HDWP_16(h32) (WOWHandle16(h32,WOW_TYPE_HDWP)) 49#define HDROP_16(h32) (WOWHandle16(h32,WOW_TYPE_HDROP)) 50#define HDC_16(h32) (WOWHandle16(h32,WOW_TYPE_HDC)) 51#define HFONT_16(h32) (WOWHandle16(h32,WOW_TYPE_HFONT)) 52#define HMETAFILE_16(h32) (WOWHandle16(h32,WOW_TYPE_HMETAFILE)) 53#define HRGN_16(h32) (WOWHandle16(h32,WOW_TYPE_HRGN)) 54#define HBITMAP_16(h32) (WOWHandle16(h32,WOW_TYPE_HBITMAP)) 55#define HBRUSH_16(h32) (WOWHandle16(h32,WOW_TYPE_HBRUSH)) 56#define HPALETTE_16(h32) (WOWHandle16(h32,WOW_TYPE_HPALETTE)) 57#define HPEN_16(h32) (WOWHandle16(h32,WOW_TYPE_HPEN)) 58#define HACCEL_16(h32) (WOWHandle16(h32,WOW_TYPE_HACCEL)) 59#define HTASK_16(h32) (WOWHandle16(h32,WOW_TYPE_HTASK)) 60 61DWORD WINAPI WOWCallback16(DWORD vpfn16,DWORD dwParam); 62 63#define WCB16_MAX_CBARGS (16) 64 65#define WCB16_PASCAL (0x0) 66#define WCB16_CDECL (0x1) 67 68WINBOOL WINAPI WOWCallback16Ex(DWORD vpfn16,DWORD dwFlags,DWORD cbArgs,PVOID pArgs,PDWORD pdwRetCode); 69#endif 70