diff --git a/dlls/gdi32/dib.c b/dlls/gdi32/dib.c
index 9f7aa4e..e8b3dc9 100644
--- a/dlls/gdi32/dib.c
+++ b/dlls/gdi32/dib.c
@@ -376,7 +376,7 @@
     UINT result = 0;
     BITMAPOBJ * bitmap;
 
-    if (!(dc = DC_GetDCPtr( hdc ))) return 0;
+    if (!(dc = get_dc_ptr( hdc ))) return 0;
 
     if ((bitmap = GDI_GetObjPtr( dc->hBitmap, BITMAP_MAGIC )))
     {
@@ -396,7 +396,7 @@
     if (dc->funcs->pSetDIBColorTable)
         dc->funcs->pSetDIBColorTable(dc->physDev, startpos, entries, colors);
 
-    DC_ReleaseDCPtr( dc );
+    release_dc_ptr( dc );
     return result;
 }
 
@@ -409,7 +409,7 @@
     DC * dc;
     UINT result = 0;
 
-    if (!(dc = DC_GetDCPtr( hdc ))) return 0;
+    if (!(dc = get_dc_ptr( hdc ))) return 0;
 
     if (dc->funcs->pGetDIBColorTable)
         result = dc->funcs->pGetDIBColorTable(dc->physDev, startpos, entries, colors);
@@ -431,7 +431,7 @@
             GDI_ReleaseObj( dc->hBitmap );
         }
     }
-    DC_ReleaseDCPtr( dc );
+    release_dc_ptr( dc );
     return result;
 }
 
@@ -1075,14 +1075,14 @@
     {
         if (init == CBM_INIT) SetDIBits( hdc, handle, 0, height, bits, data, coloruse );
 
-        else if (hdc && ((dc = DC_GetDCPtr( hdc )) != NULL) )
+        else if (hdc && ((dc = get_dc_ptr( hdc )) != NULL) )
         {
             if (!BITMAP_SetOwnerDC( handle, dc ))
             {
                 DeleteObject( handle );
                 handle = 0;
             }
-            DC_ReleaseDCPtr( dc );
+            release_dc_ptr( dc );
         }
     }
 
@@ -1323,7 +1323,7 @@
         bDesktopDC = TRUE;
     }
 
-    if (!(dc = DC_GetDCPtr( hdc ))) goto error;
+    if (!(dc = get_dc_ptr( hdc ))) goto error;
 
     /* create Device Dependent Bitmap and add DIB pointer */
     ret = CreateBitmap( dib->dsBm.bmWidth, dib->dsBm.bmHeight, 1,
@@ -1347,7 +1347,7 @@
         }
     }
 
-    DC_ReleaseDCPtr( dc );
+    release_dc_ptr( dc );
     if (bDesktopDC) DeleteDC( hdc );
     if (ret && bits) *bits = dib->dsBm.bmBits;
     return ret;
