ddraw: COM cleanup for the IDirectDrawPalette interface.
diff --git a/dlls/ddraw/palette.c b/dlls/ddraw/palette.c
index ff78411..534255a 100644
--- a/dlls/ddraw/palette.c
+++ b/dlls/ddraw/palette.c
@@ -70,7 +70,7 @@
 static ULONG WINAPI
 IDirectDrawPaletteImpl_AddRef(IDirectDrawPalette *iface)
 {
-    IDirectDrawPaletteImpl *This = (IDirectDrawPaletteImpl *)iface;
+    IDirectDrawPaletteImpl *This = impl_from_IDirectDrawPalette(iface);
     ULONG ref = InterlockedIncrement(&This->ref);
 
     TRACE("%p increasing refcount to %u.\n", This, ref);
@@ -90,7 +90,7 @@
 static ULONG WINAPI
 IDirectDrawPaletteImpl_Release(IDirectDrawPalette *iface)
 {
-    IDirectDrawPaletteImpl *This = (IDirectDrawPaletteImpl *)iface;
+    IDirectDrawPaletteImpl *This = impl_from_IDirectDrawPalette(iface);
     ULONG ref = InterlockedDecrement(&This->ref);
 
     TRACE("%p decreasing refcount to %u.\n", This, ref);
@@ -155,7 +155,7 @@
 IDirectDrawPaletteImpl_GetCaps(IDirectDrawPalette *iface,
                                DWORD *Caps)
 {
-    IDirectDrawPaletteImpl *This = (IDirectDrawPaletteImpl *)iface;
+    IDirectDrawPaletteImpl *This = impl_from_IDirectDrawPalette(iface);
 
     TRACE("iface %p, caps %p.\n", iface, Caps);
 
@@ -191,7 +191,7 @@
                                   DWORD Count,
                                   PALETTEENTRY *PalEnt)
 {
-    IDirectDrawPaletteImpl *This = (IDirectDrawPaletteImpl *)iface;
+    IDirectDrawPaletteImpl *This = impl_from_IDirectDrawPalette(iface);
     HRESULT hr;
 
     TRACE("iface %p, flags %#x, start %u, count %u, entries %p.\n",
@@ -230,7 +230,7 @@
                                   DWORD Count,
                                   PALETTEENTRY *PalEnt)
 {
-    IDirectDrawPaletteImpl *This = (IDirectDrawPaletteImpl *)iface;
+    IDirectDrawPaletteImpl *This = impl_from_IDirectDrawPalette(iface);
     HRESULT hr;
 
     TRACE("iface %p, flags %#x, start %u, count %u, entries %p.\n",
@@ -262,7 +262,7 @@
 {
     if (!iface) return NULL;
     assert(iface->lpVtbl == &ddraw_palette_vtbl);
-    return CONTAINING_RECORD(iface, IDirectDrawPaletteImpl, lpVtbl);
+    return CONTAINING_RECORD(iface, IDirectDrawPaletteImpl, IDirectDrawPalette_iface);
 }
 
 HRESULT ddraw_palette_init(IDirectDrawPaletteImpl *palette,
@@ -270,7 +270,7 @@
 {
     HRESULT hr;
 
-    palette->lpVtbl = &ddraw_palette_vtbl;
+    palette->IDirectDrawPalette_iface.lpVtbl = &ddraw_palette_vtbl;
     palette->ref = 1;
 
     hr = wined3d_palette_create(ddraw->wined3d_device, flags,