Implemented thunks for IDirectDrawSurface and IDirectDraw. This isn't good code,...
[reactos.git] / reactos / lib / ddraw / rosdraw.h
1 #ifndef __DDRAW_PRIVATE
2 #define __DDRAW_PRIVATE
3
4 /********* Includes *********/
5
6 #include <windows.h>
7 #include <stdio.h>
8 #include <ddraw.h>
9 #include <ddk/ddrawi.h>
10 #include <ddk/d3dhal.h>
11 #include <ddrawgdi.h>
12
13 /******** Main Object ********/
14
15 typedef struct
16 {
17 IDirectDraw7Vtbl* lpVtbl;
18 IDirectDraw4Vtbl* lpVtbl_v4;
19 IDirectDraw2Vtbl* lpVtbl_v2;
20 IDirectDrawVtbl* lpVtbl_v1;
21
22 DDRAWI_DIRECTDRAW_GBL DirectDrawGlobal;
23 DDHALINFO HalInfo;
24
25 HWND window;
26 DWORD cooperative_level;
27 HDC hdc;
28 int Height, Width, Bpp;
29
30 GUID* lpGUID;
31
32 } IDirectDrawImpl;
33
34 /******** Surface Object ********/
35
36 typedef struct
37 {
38 IDirectDrawSurface7Vtbl* lpVtbl;
39 IDirectDrawSurface3Vtbl* lpVtbl_v3;
40
41 LONG ref;
42
43 IDirectDrawImpl* owner;
44
45 } IDirectDrawSurfaceImpl;
46
47 /******** Clipper Object ********/
48
49 typedef struct
50 {
51 IDirectDrawClipperVtbl* lpVtbl;
52 LONG ref;
53
54 IDirectDrawImpl* owner;
55
56 } IDirectDrawClipperImpl;
57
58 /******** Palette Object ********/
59
60 typedef struct
61 {
62 IDirectDrawPaletteVtbl* lpVtbl;
63 LONG ref;
64
65 IDirectDrawImpl* owner;
66
67 } IDirectDrawPaletteImpl;
68
69 /*********** VTables ************/
70
71 extern IDirectDraw7Vtbl DirectDraw7_Vtable;
72 extern IDirectDrawVtbl DDRAW_IDirectDraw_VTable;
73 extern IDirectDraw2Vtbl DDRAW_IDirectDraw2_VTable;
74 extern IDirectDraw4Vtbl DDRAW_IDirectDraw4_VTable;
75
76 extern IDirectDrawSurface7Vtbl DirectDrawSurface7_Vtable;
77 extern IDirectDrawSurface3Vtbl DDRAW_IDDS3_Thunk_VTable;
78
79 extern IDirectDrawPaletteVtbl DirectDrawPalette_Vtable;
80 extern IDirectDrawClipperVtbl DirectDrawClipper_Vtable;
81 extern IDirectDrawColorControlVtbl DirectDrawColorControl_Vtable;
82 extern IDirectDrawGammaControlVtbl DirectDrawGammaControl_Vtable;
83
84 /********* Prototypes **********/
85
86 HRESULT Hal_DirectDraw_Initialize (LPDIRECTDRAW7 iface);
87 HRESULT Hal_DirectDraw_SetCooperativeLevel (LPDIRECTDRAW7 iface);
88 VOID Hal_DirectDraw_Release (LPDIRECTDRAW7 iface);
89
90 HRESULT Hel_DirectDraw_Initialize (LPDIRECTDRAW7 iface);
91 HRESULT Hel_DirectDraw_SetCooperativeLevel (LPDIRECTDRAW7 iface);
92 VOID Hel_DirectDraw_Release (LPDIRECTDRAW7 iface);
93
94 /*********** Macros ***********/
95
96 #define DX_STUB return DDERR_UNSUPPORTED;
97
98 #endif /* __DDRAW_PRIVATE */