1 /* DirectDrawClipper implementation
3 * Copyright 2000 Marcus Meissner
16 #include "debugtools.h"
17 #include "ddraw_private.h"
19 DEFAULT_DEBUG_CHANNEL(ddraw);
21 /******************************************************************************
22 * DirectDrawCreateClipper (DDRAW.7)
24 HRESULT WINAPI DirectDrawCreateClipper(
25 DWORD dwFlags, LPDIRECTDRAWCLIPPER *lplpDDClipper, LPUNKNOWN pUnkOuter
27 IDirectDrawClipperImpl** ilplpDDClipper=(IDirectDrawClipperImpl**)lplpDDClipper;
28 TRACE("(%08lx,%p,%p)\n", dwFlags, ilplpDDClipper, pUnkOuter);
30 *ilplpDDClipper = (IDirectDrawClipperImpl*)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(IDirectDrawClipperImpl));
31 ICOM_VTBL(*ilplpDDClipper) = &ddclipvt;
32 (*ilplpDDClipper)->ref = 1;
33 (*ilplpDDClipper)->hWnd = 0;
37 /******************************************************************************
40 static HRESULT WINAPI IDirectDrawClipperImpl_SetHwnd(
41 LPDIRECTDRAWCLIPPER iface, DWORD dwFlags, HWND hWnd
43 ICOM_THIS(IDirectDrawClipperImpl,iface);
45 TRACE("(%p)->SetHwnd(0x%08lx,0x%08lx)\n",This,dwFlags,(DWORD)hWnd);
47 FIXME("dwFlags = 0x%08lx, not supported.\n",dwFlags);
48 return DDERR_INVALIDPARAMS;
55 static ULONG WINAPI IDirectDrawClipperImpl_Release(LPDIRECTDRAWCLIPPER iface) {
56 ICOM_THIS(IDirectDrawClipperImpl,iface);
57 TRACE("(%p)->() decrementing from %lu.\n", This, This->ref );
62 HeapFree(GetProcessHeap(),0,This);
66 static HRESULT WINAPI IDirectDrawClipperImpl_GetClipList(
67 LPDIRECTDRAWCLIPPER iface,LPRECT rects,LPRGNDATA lprgn,LPDWORD hmm
69 ICOM_THIS(IDirectDrawClipperImpl,iface);
70 FIXME("(%p,%p,%p,%p),stub!\n",This,rects,lprgn,hmm);
75 static HRESULT WINAPI IDirectDrawClipperImpl_SetClipList(
76 LPDIRECTDRAWCLIPPER iface,LPRGNDATA lprgn,DWORD hmm
78 ICOM_THIS(IDirectDrawClipperImpl,iface);
79 FIXME("(%p,%p,%ld),stub!\n",This,lprgn,hmm);
83 static HRESULT WINAPI IDirectDrawClipperImpl_QueryInterface(
84 LPDIRECTDRAWCLIPPER iface, REFIID riid, LPVOID* ppvObj
86 ICOM_THIS(IDirectDrawClipperImpl,iface);
87 FIXME("(%p)->(%p,%p),stub!\n",This,riid,ppvObj);
88 return OLE_E_ENUM_NOMORE;
91 static ULONG WINAPI IDirectDrawClipperImpl_AddRef( LPDIRECTDRAWCLIPPER iface )
93 ICOM_THIS(IDirectDrawClipperImpl,iface);
94 TRACE("(%p)->() incrementing from %lu.\n", This, This->ref );
98 static HRESULT WINAPI IDirectDrawClipperImpl_GetHWnd(
99 LPDIRECTDRAWCLIPPER iface, HWND* hWndPtr
101 ICOM_THIS(IDirectDrawClipperImpl,iface);
102 FIXME("(%p)->(%p),stub!\n",This,hWndPtr);
104 *hWndPtr = This->hWnd;
109 static HRESULT WINAPI IDirectDrawClipperImpl_Initialize(
110 LPDIRECTDRAWCLIPPER iface, LPDIRECTDRAW lpDD, DWORD dwFlags
112 ICOM_THIS(IDirectDrawClipperImpl,iface);
113 FIXME("(%p)->(%p,0x%08lx),stub!\n",This,lpDD,dwFlags);
117 static HRESULT WINAPI IDirectDrawClipperImpl_IsClipListChanged(
118 LPDIRECTDRAWCLIPPER iface, BOOL* lpbChanged
120 ICOM_THIS(IDirectDrawClipperImpl,iface);
121 FIXME("(%p)->(%p),stub!\n",This,lpbChanged);
125 ICOM_VTABLE(IDirectDrawClipper) ddclipvt =
127 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
128 IDirectDrawClipperImpl_QueryInterface,
129 IDirectDrawClipperImpl_AddRef,
130 IDirectDrawClipperImpl_Release,
131 IDirectDrawClipperImpl_GetClipList,
132 IDirectDrawClipperImpl_GetHWnd,
133 IDirectDrawClipperImpl_Initialize,
134 IDirectDrawClipperImpl_IsClipListChanged,
135 IDirectDrawClipperImpl_SetClipList,
136 IDirectDrawClipperImpl_SetHwnd