2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS DirectX
4 * FILE: ddraw/clipper/clipper_stubs.c
5 * PURPOSE: IDirectDrawClipper Implementation
6 * PROGRAMMER: Maarten Bosma
13 DirectDrawClipper_QueryInterface (LPDIRECTDRAWCLIPPER iface
,
14 REFIID id
, LPVOID
*obj
)
17 return DDERR_INVALIDOBJECT
;
23 DirectDrawClipper_Initialize (LPDIRECTDRAWCLIPPER iface
,
24 LPDIRECTDRAW lpDD
, DWORD dwFlags
)
26 LPDDRAWI_DDRAWCLIPPER_INT This
= (LPDDRAWI_DDRAWCLIPPER_INT
)iface
;
27 LPDDRAWI_DIRECTDRAW_INT DDraw
= (LPDDRAWI_DIRECTDRAW_INT
)lpDD
;
32 return DDERR_INVALIDOBJECT
;
35 return DDERR_ALREADYINITIALIZED
;
37 This
->lpVtbl
= (LPVOID
)&DirectDrawClipper_Vtable
;
38 This
->dwIntRefCnt
= 1;
40 DxHeapMemAlloc(This
->lpLcl
, sizeof(DDRAWI_DDRAWCLIPPER_LCL
));
41 //This->lpLcl->lpClipMore
42 This
->lpLcl
->lpDD_int
= DDraw
;
43 This
->lpLcl
->lpGbl
->dwRefCnt
= 1;
44 This
->lpLcl
->pAddrefedThisOwner
= (IUnknown
*)DDraw
;
46 // FIXME: Implement Linking and share global object
47 DxHeapMemAlloc(This
->lpLcl
->lpGbl
, sizeof(DDRAWI_DDRAWCLIPPER_GBL
));
48 This
->lpLcl
->lpGbl
->dwProcessId
= GetCurrentProcessId();
54 DirectDrawClipper_Release(LPDIRECTDRAWCLIPPER iface
)
56 LPDDRAWI_DDRAWCLIPPER_INT This
= (LPDDRAWI_DDRAWCLIPPER_INT
)iface
;
58 return DDERR_INVALIDOBJECT
;
64 This
->lpLcl
->dwLocalRefCnt
--;
67 if (This
->lpLcl
->lpGbl
)
68 This
->lpLcl
->lpGbl
->dwRefCnt
--;
71 return This
->dwIntRefCnt
;
75 DirectDrawClipper_AddRef (LPDIRECTDRAWCLIPPER iface
)
77 LPDDRAWI_DDRAWCLIPPER_INT This
= (LPDDRAWI_DDRAWCLIPPER_INT
)iface
;
79 return DDERR_INVALIDOBJECT
;
86 This
->lpLcl
->dwLocalRefCnt
++;
87 if (This
->lpLcl
->lpGbl
)
88 This
->lpLcl
->lpGbl
->dwRefCnt
++;
90 return This
->dwIntRefCnt
;
94 DirectDrawClipper_SetHwnd( LPDIRECTDRAWCLIPPER iface
,
98 LPDDRAWI_DDRAWCLIPPER_INT This
= (LPDDRAWI_DDRAWCLIPPER_INT
)iface
;
101 return DDERR_INVALIDOBJECT
;
104 return DDERR_INVALIDPARAMS
;
108 This
->lpLcl
->lpGbl
->hWnd
= (ULONG_PTR
)hWnd
;
109 This
->lpLcl
->lpGbl
->dwFlags
= dwFlags
;
115 DirectDrawClipper_GetHWnd( LPDIRECTDRAWCLIPPER iface
,
118 LPDDRAWI_DDRAWCLIPPER_INT This
= (LPDDRAWI_DDRAWCLIPPER_INT
)iface
;
121 return DDERR_INVALIDOBJECT
;
124 return DDERR_INVALIDPARAMS
;
126 *hWndPtr
= (HWND
)This
->lpLcl
->lpGbl
->hWnd
;
131 IDirectDrawClipperVtbl DirectDrawClipper_Vtable
=
133 DirectDrawClipper_QueryInterface
,
134 DirectDrawClipper_AddRef
,
135 DirectDrawClipper_Release
,
136 DirectDrawClipper_GetClipList
,
137 DirectDrawClipper_GetHWnd
,
138 DirectDrawClipper_Initialize
,
139 DirectDrawClipper_IsClipListChanged
,
140 DirectDrawClipper_SetClipList
,
141 DirectDrawClipper_SetHwnd