Note what to do with the winedefault.reg in the file.
[wine/multimedia.git] / include / wownt32.h
blob105cbcd8b1f0d9873bcbc0a7df2927ba86a2bf60
1 /*
2 * WOW Generic Thunk API
3 */
5 #ifndef _WOWNT32_H_
6 #define _WOWNT32_H_
8 LPVOID WINAPI WOWGetVDMPointer(DWORD,DWORD,BOOL);
9 LPVOID WINAPI WOWGetVDMPointerFix(DWORD,DWORD,BOOL);
10 VOID WINAPI WOWGetVDMPointerUnfix(DWORD);
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);
20 VOID WINAPI WOWYield16(VOID);
21 VOID WINAPI WOWDirectedYield16(WORD);
23 typedef enum
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
41 } WOW_HANDLE_TYPE;
43 HANDLE WINAPI WOWHandle32(WORD,WOW_HANDLE_TYPE);
44 WORD WINAPI WOWHandle16(HANDLE,WOW_HANDLE_TYPE);
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)))
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))
78 #define WCB16_PASCAL 0
79 #define WCB16_CDECL 1
80 #define WCB16_MAX_CBARGS 16
82 DWORD WINAPI WOWCallback16(DWORD,DWORD);
83 BOOL WINAPI WOWCallback16Ex(DWORD,DWORD,DWORD,LPVOID,LPDWORD);
86 #ifdef __WINE__
88 * These are the 16-bit side WOW routines. They reside in wownt16.h
89 * in the SDK; since we don't support Win16 source code anyway, I've
90 * placed them here for compilation with Wine ...
93 DWORD WINAPI GetVDMPointer32W16(SEGPTR,UINT16);
95 DWORD WINAPI LoadLibraryEx32W16(LPCSTR,DWORD,DWORD);
96 DWORD WINAPI GetProcAddress32W16(DWORD,LPCSTR);
97 DWORD WINAPI FreeLibrary32W16(DWORD);
99 #define CPEX_DEST_STDCALL 0x00000000L
100 #define CPEX_DEST_CDECL 0x80000000L
102 DWORD WINAPI CallProcExW16(VOID);
103 DWORD WINAPI CallProcEx32W16(VOID);
105 #endif /* __WINE__ */
108 #endif /* _WOWNT32_H_ */