Create Stubs for IDirectDrawVideoPortNotify and fix return values of IUnknown Stubs.
[reactos.git] / reactos / lib / ddraw / main / color.c
index 5e2dc14..ba36a71 100644 (file)
@@ -3,30 +3,39 @@
  * COPYRIGHT:            See COPYING in the top level directory
  * PROJECT:              ReactOS
  * FILE:                 lib/ddraw/main/color.c
- * PURPOSE:              DirectDraw Implementation 
+ * PURPOSE:              IDirectDrawColorControl Implementation 
  * PROGRAMMER:           Maarten Bosma
  *
  */
 
 #include "rosdraw.h"
 
-HRESULT WINAPI
-Main_DirectDrawColorControl_QueryInterface(LPDIRECTDRAWCOLORCONTROL iface, 
-                                                                                  REFIID riid, LPVOID* ppvObj) 
-{
-       DX_STUB;
-}
-
 ULONG WINAPI
 Main_DirectDrawColorControl_AddRef(LPDIRECTDRAWCOLORCONTROL iface)
 {
-       DX_STUB;
+    IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
+    ULONG ref = InterlockedIncrement((PLONG)&This->DirectDrawGlobal.dwRefCnt);
+
+       return ref;
 }
 
 ULONG WINAPI
 Main_DirectDrawColorControl_Release(LPDIRECTDRAWCOLORCONTROL iface)
 {
-       DX_STUB;
+    IDirectDrawSurfaceImpl* This = (IDirectDrawSurfaceImpl*)iface;
+    ULONG ref = InterlockedDecrement(&This->ref);
+    
+    if (ref == 0)
+               HeapFree(GetProcessHeap(), 0, This);
+
+    return ref;
+}
+
+HRESULT WINAPI
+Main_DirectDrawColorControl_QueryInterface(LPDIRECTDRAWCOLORCONTROL iface, 
+                                                                                  REFIID riid, LPVOID* ppvObj) 
+{
+       return E_NOINTERFACE;
 }
 
 HRESULT WINAPI