3 * COPYRIGHT: See COPYING in the top level directory
4 * PROJECT: ReactOS DirectX
5 * FILE: ddraw/clipper/clipper_stubs.c
6 * PURPOSE: IDirectDrawClipper Implementation
7 * PROGRAMMER: Maarten Bosma
14 DirectDrawClipper_QueryInterface (LPDIRECTDRAWCLIPPER iface
,
15 REFIID id
, LPVOID
*obj
)
18 return DDERR_INVALIDOBJECT
;
24 DirectDrawClipper_Initialize (LPDIRECTDRAWCLIPPER iface
,
25 LPDIRECTDRAW lpDD
, DWORD dwFlags
)
27 LPDDRAWI_DDRAWCLIPPER_INT This
= (LPDDRAWI_DDRAWCLIPPER_INT
)iface
;
28 LPDDRAWI_DIRECTDRAW_INT DDraw
= (LPDDRAWI_DIRECTDRAW_INT
)lpDD
;
33 return DDERR_INVALIDOBJECT
;
36 return DDERR_ALREADYINITIALIZED
;
38 This
->lpVtbl
= (LPVOID
)&DirectDrawClipper_Vtable
;
39 This
->dwIntRefCnt
= 1;
41 DxHeapMemAlloc(This
->lpLcl
, sizeof(DDRAWI_DDRAWCLIPPER_LCL
));
42 //This->lpLcl->lpClipMore
43 This
->lpLcl
->lpDD_int
= DDraw
;
44 This
->lpLcl
->lpGbl
->dwRefCnt
= 1;
45 This
->lpLcl
->pAddrefedThisOwner
= (IUnknown
*)DDraw
;
47 // FIXME: Implement Linking and share global object
48 DxHeapMemAlloc(This
->lpLcl
->lpGbl
, sizeof(DDRAWI_DDRAWCLIPPER_GBL
));
49 This
->lpLcl
->lpGbl
->dwProcessId
= GetCurrentProcessId();
55 DirectDrawClipper_Release(LPDIRECTDRAWCLIPPER iface
)
57 LPDDRAWI_DDRAWCLIPPER_INT This
= (LPDDRAWI_DDRAWCLIPPER_INT
)iface
;
59 return DDERR_INVALIDOBJECT
;
65 This
->lpLcl
->dwLocalRefCnt
--;
68 if (This
->lpLcl
->lpGbl
)
69 This
->lpLcl
->lpGbl
->dwRefCnt
--;
72 return This
->dwIntRefCnt
;
76 DirectDrawClipper_AddRef (LPDIRECTDRAWCLIPPER iface
)
78 LPDDRAWI_DDRAWCLIPPER_INT This
= (LPDDRAWI_DDRAWCLIPPER_INT
)iface
;
80 return DDERR_INVALIDOBJECT
;
87 This
->lpLcl
->dwLocalRefCnt
++;
88 if (This
->lpLcl
->lpGbl
)
89 This
->lpLcl
->lpGbl
->dwRefCnt
++;
91 return This
->dwIntRefCnt
;
95 DirectDrawClipper_SetHwnd( LPDIRECTDRAWCLIPPER iface
,
99 LPDDRAWI_DDRAWCLIPPER_INT This
= (LPDDRAWI_DDRAWCLIPPER_INT
)iface
;
102 return DDERR_INVALIDOBJECT
;
105 return DDERR_INVALIDPARAMS
;
109 This
->lpLcl
->lpGbl
->hWnd
= (ULONG_PTR
)hWnd
;
110 This
->lpLcl
->lpGbl
->dwFlags
= dwFlags
;
116 DirectDrawClipper_GetHWnd( LPDIRECTDRAWCLIPPER iface
,
119 LPDDRAWI_DDRAWCLIPPER_INT This
= (LPDDRAWI_DDRAWCLIPPER_INT
)iface
;
122 return DDERR_INVALIDOBJECT
;
125 return DDERR_INVALIDPARAMS
;
127 *hWndPtr
= (HWND
)This
->lpLcl
->lpGbl
->hWnd
;
132 IDirectDrawClipperVtbl DirectDrawClipper_Vtable
=
134 DirectDrawClipper_QueryInterface
,
135 DirectDrawClipper_AddRef
,
136 DirectDrawClipper_Release
,
137 DirectDrawClipper_GetClipList
,
138 DirectDrawClipper_GetHWnd
,
139 DirectDrawClipper_Initialize
,
140 DirectDrawClipper_IsClipListChanged
,
141 DirectDrawClipper_SetClipList
,
142 DirectDrawClipper_SetHwnd