From 1abc24d29c648703b104f2d830a6b46e1ed2f542 Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Wed, 26 Sep 2007 17:51:41 +0200 Subject: [PATCH] gdi32: Don't hold the gdi lock while calling DC driver functions. --- dlls/gdi32/dc.c | 273 +++++++++++++++++++++++++----------------------- 1 file changed, 140 insertions(+), 133 deletions(-) diff --git a/dlls/gdi32/dc.c b/dlls/gdi32/dc.c index bb917856f5f..705d263f84d 100644 --- a/dlls/gdi32/dc.c +++ b/dlls/gdi32/dc.c @@ -366,10 +366,10 @@ HDC WINAPI GetDCState( HDC hdc ) DC * newdc, * dc; HGDIOBJ handle; - if (!(dc = DC_GetDCPtr( hdc ))) return 0; + if (!(dc = get_dc_ptr( hdc ))) return 0; if (!(newdc = GDI_AllocObject( sizeof(DC), GDIMAGIC(dc->header.wMagic), &handle, &dc_funcs ))) { - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dc ); return 0; } TRACE("(%p): returning %p\n", hdc, handle ); @@ -421,6 +421,7 @@ HDC WINAPI GetDCState( HDC hdc ) newdc->refcount = 1; newdc->saveLevel = 0; newdc->saved_dc = 0; + GDI_ReleaseObj( handle ); PATH_InitGdiPath( &newdc->path ); @@ -452,8 +453,8 @@ HDC WINAPI GetDCState( HDC hdc ) } else newdc->gdiFont = 0; - DC_ReleaseDCPtr( newdc ); - DC_ReleaseDCPtr( dc ); + release_dc_ptr( newdc ); + release_dc_ptr( dc ); return handle; } @@ -579,7 +580,7 @@ INT WINAPI SaveDC( HDC hdc ) DC * dc, * dcs; INT ret; - dc = DC_GetDCPtr( hdc ); + dc = get_dc_ptr( hdc ); if (!dc) return 0; if(dc->funcs->pSaveDC) @@ -587,16 +588,16 @@ INT WINAPI SaveDC( HDC hdc ) ret = dc->funcs->pSaveDC( dc->physDev ); if(ret) ret = ++dc->saveLevel; - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dc ); return ret; } if (!(hdcs = GetDCState( hdc ))) { - DC_ReleaseDCPtr( dc ); - return 0; + release_dc_ptr( dc ); + return 0; } - dcs = DC_GetDCPtr( hdcs ); + dcs = get_dc_ptr( hdcs ); /* Copy path. The reason why path saving / restoring is in SaveDC/ * RestoreDC and not in GetDCState/SetDCState is that the ...DCState @@ -606,8 +607,8 @@ INT WINAPI SaveDC( HDC hdc ) */ if (!PATH_AssignGdiPath( &dcs->path, &dc->path )) { - DC_ReleaseDCPtr( dc ); - DC_ReleaseDCPtr( dcs ); + release_dc_ptr( dc ); + release_dc_ptr( dcs ); DeleteDC( hdcs ); return 0; } @@ -616,8 +617,8 @@ INT WINAPI SaveDC( HDC hdc ) dc->saved_dc = hdcs; TRACE("(%p): returning %d\n", hdc, dc->saveLevel+1 ); ret = ++dc->saveLevel; - DC_ReleaseDCPtr( dcs ); - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dcs ); + release_dc_ptr( dc ); return ret; } @@ -803,6 +804,7 @@ HDC WINAPI CreateICW( LPCWSTR driver, LPCWSTR device, LPCWSTR output, HDC WINAPI CreateCompatibleDC( HDC hdc ) { DC *dc, *origDC; + HDC ret; const DC_FUNCTIONS *funcs = NULL; PHYSDEV physDev = NULL; @@ -832,6 +834,7 @@ HDC WINAPI CreateCompatibleDC( HDC hdc ) * the new DC. The driver may use this read-only info * while creating the compatible DC below. */ dc->physDev = physDev; + ret = dc->hSelf; if (dc->funcs->pCreateDC && !dc->funcs->pCreateDC( dc->hSelf, &dc->physDev, NULL, NULL, NULL, NULL )) @@ -842,7 +845,7 @@ HDC WINAPI CreateCompatibleDC( HDC hdc ) DC_InitDC( dc ); release_dc_ptr( dc ); - return dc->hSelf; + return ret; error: if (dc && dc->hVisRgn) DeleteObject( dc->hVisRgn ); @@ -932,10 +935,10 @@ HDC WINAPI ResetDCW( HDC hdc, const DEVMODEW *devmode ) DC *dc; HDC ret = hdc; - if ((dc = DC_GetDCPtr( hdc ))) + if ((dc = get_dc_ptr( hdc ))) { if (dc->funcs->pResetDC) ret = dc->funcs->pResetDC( dc->physDev, devmode ); - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dc ); } return ret; } @@ -967,7 +970,7 @@ INT WINAPI GetDeviceCaps( HDC hdc, INT cap ) DC *dc; INT ret = 0; - if ((dc = DC_GetDCPtr( hdc ))) + if ((dc = get_dc_ptr( hdc ))) { if (dc->funcs->pGetDeviceCaps) ret = dc->funcs->pGetDeviceCaps( dc->physDev, cap ); else switch(cap) /* return meaningful values for some entries */ @@ -984,7 +987,7 @@ INT WINAPI GetDeviceCaps( HDC hdc, INT cap ) case LOGPIXELSY: ret = 72; break; case SIZEPALETTE: ret = 2; break; } - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dc ); } return ret; } @@ -996,11 +999,11 @@ INT WINAPI GetDeviceCaps( HDC hdc, INT cap ) COLORREF WINAPI GetBkColor( HDC hdc ) { COLORREF ret = 0; - DC * dc = DC_GetDCPtr( hdc ); + DC * dc = get_dc_ptr( hdc ); if (dc) { ret = dc->backgroundColor; - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dc ); } return ret; } @@ -1012,7 +1015,7 @@ COLORREF WINAPI GetBkColor( HDC hdc ) COLORREF WINAPI SetBkColor( HDC hdc, COLORREF color ) { COLORREF oldColor; - DC * dc = DC_GetDCPtr( hdc ); + DC * dc = get_dc_ptr( hdc ); TRACE("hdc=%p color=0x%08x\n", hdc, color); @@ -1028,7 +1031,7 @@ COLORREF WINAPI SetBkColor( HDC hdc, COLORREF color ) } } dc->backgroundColor = color; - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dc ); return oldColor; } @@ -1039,11 +1042,11 @@ COLORREF WINAPI SetBkColor( HDC hdc, COLORREF color ) COLORREF WINAPI GetTextColor( HDC hdc ) { COLORREF ret = 0; - DC * dc = DC_GetDCPtr( hdc ); + DC * dc = get_dc_ptr( hdc ); if (dc) { ret = dc->textColor; - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dc ); } return ret; } @@ -1055,7 +1058,7 @@ COLORREF WINAPI GetTextColor( HDC hdc ) COLORREF WINAPI SetTextColor( HDC hdc, COLORREF color ) { COLORREF oldColor; - DC * dc = DC_GetDCPtr( hdc ); + DC * dc = get_dc_ptr( hdc ); TRACE(" hdc=%p color=0x%08x\n", hdc, color); @@ -1071,7 +1074,7 @@ COLORREF WINAPI SetTextColor( HDC hdc, COLORREF color ) } } dc->textColor = color; - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dc ); return oldColor; } @@ -1082,11 +1085,11 @@ COLORREF WINAPI SetTextColor( HDC hdc, COLORREF color ) UINT WINAPI GetTextAlign( HDC hdc ) { UINT ret = 0; - DC * dc = DC_GetDCPtr( hdc ); + DC * dc = get_dc_ptr( hdc ); if (dc) { ret = dc->textAlign; - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dc ); } return ret; } @@ -1098,7 +1101,7 @@ UINT WINAPI GetTextAlign( HDC hdc ) UINT WINAPI SetTextAlign( HDC hdc, UINT align ) { UINT ret; - DC *dc = DC_GetDCPtr( hdc ); + DC *dc = get_dc_ptr( hdc ); TRACE("hdc=%p align=%d\n", hdc, align); @@ -1109,7 +1112,7 @@ UINT WINAPI SetTextAlign( HDC hdc, UINT align ) ret = GDI_ERROR; if (ret != GDI_ERROR) dc->textAlign = align; - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dc ); return ret; } @@ -1121,11 +1124,11 @@ BOOL WINAPI GetDCOrgEx( HDC hDC, LPPOINT lpp ) DC * dc; if (!lpp) return FALSE; - if (!(dc = DC_GetDCPtr( hDC ))) return FALSE; + if (!(dc = get_dc_ptr( hDC ))) return FALSE; lpp->x = lpp->y = 0; if (dc->funcs->pGetDCOrgEx) dc->funcs->pGetDCOrgEx( dc->physDev, lpp ); - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dc ); return TRUE; } @@ -1137,10 +1140,10 @@ DWORD WINAPI SetDCOrg16( HDC16 hdc16, INT16 x, INT16 y ) { DWORD prevOrg = 0; HDC hdc = HDC_32( hdc16 ); - DC *dc = DC_GetDCPtr( hdc ); + DC *dc = get_dc_ptr( hdc ); if (!dc) return 0; if (dc->funcs->pSetDCOrg) prevOrg = dc->funcs->pSetDCOrg( dc->physDev, x, y ); - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dc ); return prevOrg; } @@ -1151,11 +1154,11 @@ DWORD WINAPI SetDCOrg16( HDC16 hdc16, INT16 x, INT16 y ) INT WINAPI GetGraphicsMode( HDC hdc ) { INT ret = 0; - DC * dc = DC_GetDCPtr( hdc ); + DC * dc = get_dc_ptr( hdc ); if (dc) { ret = dc->GraphicsMode; - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dc ); } return ret; } @@ -1167,7 +1170,7 @@ INT WINAPI GetGraphicsMode( HDC hdc ) INT WINAPI SetGraphicsMode( HDC hdc, INT mode ) { INT ret = 0; - DC *dc = DC_GetDCPtr( hdc ); + DC *dc = get_dc_ptr( hdc ); /* One would think that setting the graphics mode to GM_COMPATIBLE * would also reset the world transformation matrix to the unity @@ -1180,7 +1183,7 @@ INT WINAPI SetGraphicsMode( HDC hdc, INT mode ) ret = dc->GraphicsMode; dc->GraphicsMode = mode; } - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dc ); return ret; } @@ -1191,11 +1194,11 @@ INT WINAPI SetGraphicsMode( HDC hdc, INT mode ) INT WINAPI GetArcDirection( HDC hdc ) { INT ret = 0; - DC * dc = DC_GetDCPtr( hdc ); + DC * dc = get_dc_ptr( hdc ); if (dc) { ret = dc->ArcDirection; - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dc ); } return ret; } @@ -1215,7 +1218,7 @@ INT WINAPI SetArcDirection( HDC hdc, INT nDirection ) return 0; } - if ((dc = DC_GetDCPtr( hdc ))) + if ((dc = get_dc_ptr( hdc ))) { if (dc->funcs->pSetArcDirection) { @@ -1223,7 +1226,7 @@ INT WINAPI SetArcDirection( HDC hdc, INT nDirection ) } nOldDirection = dc->ArcDirection; dc->ArcDirection = nDirection; - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dc ); } return nOldDirection; } @@ -1236,9 +1239,9 @@ BOOL WINAPI GetWorldTransform( HDC hdc, LPXFORM xform ) { DC * dc; if (!xform) return FALSE; - if (!(dc = DC_GetDCPtr( hdc ))) return FALSE; + if (!(dc = get_dc_ptr( hdc ))) return FALSE; *xform = dc->xformWorld2Wnd; - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dc ); return TRUE; } @@ -1260,7 +1263,7 @@ BOOL WINAPI GetTransform( HDC hdc, DWORD unknown, LPXFORM xform ) BOOL WINAPI SetWorldTransform( HDC hdc, const XFORM *xform ) { BOOL ret = FALSE; - DC *dc = DC_GetDCPtr( hdc ); + DC *dc = get_dc_ptr( hdc ); if (!dc) return FALSE; if (!xform) goto done; @@ -1278,7 +1281,7 @@ BOOL WINAPI SetWorldTransform( HDC hdc, const XFORM *xform ) DC_UpdateXforms( dc ); ret = TRUE; done: - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dc ); return ret; } @@ -1311,7 +1314,7 @@ BOOL WINAPI ModifyWorldTransform( HDC hdc, const XFORM *xform, DWORD iMode ) { BOOL ret = FALSE; - DC *dc = DC_GetDCPtr( hdc ); + DC *dc = get_dc_ptr( hdc ); /* Check for illegal parameters */ if (!dc) return FALSE; @@ -1351,7 +1354,7 @@ BOOL WINAPI ModifyWorldTransform( HDC hdc, const XFORM *xform, DC_UpdateXforms( dc ); ret = TRUE; done: - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dc ); return ret; } @@ -1412,7 +1415,7 @@ BOOL WINAPI CombineTransform( LPXFORM xformResult, const XFORM *xform1, */ BOOL WINAPI SetDCHook( HDC hdc, DCHOOKPROC hookProc, DWORD_PTR dwHookData ) { - DC *dc = DC_GetDCPtr( hdc ); + DC *dc = get_dc_ptr( hdc ); if (!dc) return FALSE; @@ -1421,7 +1424,7 @@ BOOL WINAPI SetDCHook( HDC hdc, DCHOOKPROC hookProc, DWORD_PTR dwHookData ) dc->dwHookData = dwHookData; dc->hookThunk = hookProc; } - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dc ); return TRUE; } @@ -1430,21 +1433,21 @@ BOOL WINAPI SetDCHook( HDC hdc, DCHOOKPROC hookProc, DWORD_PTR dwHookData ) static BOOL WINAPI call_dc_hook16( HDC hdc, WORD code, DWORD_PTR data, LPARAM lParam ) { WORD args[6]; - DWORD ret; - FARPROC16 proc = NULL; - DC *dc = DC_GetDCPtr( hdc ); + DWORD ret = 0; + DC *dc = get_dc_ptr( hdc ); if (!dc) return FALSE; - proc = dc->hookProc; - DC_ReleaseDCPtr( dc ); - if (!proc) return FALSE; - args[5] = HDC_16(hdc); - args[4] = code; - args[3] = HIWORD(data); - args[2] = LOWORD(data); - args[1] = HIWORD(lParam); - args[0] = LOWORD(lParam); - WOWCallback16Ex( (DWORD)proc, WCB16_PASCAL, sizeof(args), args, &ret ); + if (dc->hookProc) + { + args[5] = HDC_16(hdc); + args[4] = code; + args[3] = HIWORD(data); + args[2] = LOWORD(data); + args[1] = HIWORD(lParam); + args[0] = LOWORD(lParam); + WOWCallback16Ex( (DWORD)dc->hookProc, WCB16_PASCAL, sizeof(args), args, &ret ); + } + release_dc_ptr( dc ); return LOWORD(ret); } @@ -1453,13 +1456,17 @@ static BOOL WINAPI call_dc_hook16( HDC hdc, WORD code, DWORD_PTR data, LPARAM lP */ BOOL16 WINAPI SetDCHook16( HDC16 hdc16, FARPROC16 hookProc, DWORD dwHookData ) { - HDC hdc = HDC_32( hdc16 ); - DC *dc = DC_GetDCPtr( hdc ); - if (!dc) return FALSE; + DC *dc = get_dc_ptr( HDC_32(hdc16) ); - dc->hookProc = hookProc; - DC_ReleaseDCPtr( dc ); - return SetDCHook( hdc, call_dc_hook16, dwHookData ); + if (!dc) return FALSE; + if (!(dc->flags & DC_SAVED)) + { + dc->dwHookData = dwHookData; + dc->hookThunk = call_dc_hook16; + dc->hookProc = hookProc; + } + release_dc_ptr( dc ); + return TRUE; } @@ -1469,13 +1476,13 @@ BOOL16 WINAPI SetDCHook16( HDC16 hdc16, FARPROC16 hookProc, DWORD dwHookData ) DWORD WINAPI GetDCHook16( HDC16 hdc16, FARPROC16 *phookProc ) { HDC hdc = HDC_32( hdc16 ); - DC *dc = DC_GetDCPtr( hdc ); + DC *dc = get_dc_ptr( hdc ); DWORD ret; if (!dc) return 0; *phookProc = dc->hookProc; ret = dc->dwHookData; - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dc ); return ret; } @@ -1522,13 +1529,13 @@ INT WINAPI SetICMMode(HDC hdc, INT iEnableICM) BOOL WINAPI GetDeviceGammaRamp(HDC hDC, LPVOID ptr) { BOOL ret = FALSE; - DC *dc = DC_GetDCPtr( hDC ); + DC *dc = get_dc_ptr( hDC ); if( dc ) { if (dc->funcs->pGetDeviceGammaRamp) ret = dc->funcs->pGetDeviceGammaRamp(dc->physDev, ptr); - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dc ); } return ret; } @@ -1539,13 +1546,13 @@ BOOL WINAPI GetDeviceGammaRamp(HDC hDC, LPVOID ptr) BOOL WINAPI SetDeviceGammaRamp(HDC hDC, LPVOID ptr) { BOOL ret = FALSE; - DC *dc = DC_GetDCPtr( hDC ); + DC *dc = get_dc_ptr( hDC ); if( dc ) { if (dc->funcs->pSetDeviceGammaRamp) ret = dc->funcs->pSetDeviceGammaRamp(dc->physDev, ptr); - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dc ); } return ret; } @@ -1603,7 +1610,7 @@ HCOLORSPACE WINAPI SetColorSpace( HDC hDC, HCOLORSPACE hColorSpace ) UINT WINAPI GetBoundsRect(HDC hdc, LPRECT rect, UINT flags) { UINT ret; - DC *dc = DC_GetDCPtr( hdc ); + DC *dc = get_dc_ptr( hdc ); if ( !dc ) return 0; @@ -1619,7 +1626,7 @@ UINT WINAPI GetBoundsRect(HDC hdc, LPRECT rect, UINT flags) dc->BoundsRect.bottom = 0; dc->flags &= ~DC_BOUNDS_SET; } - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dc ); return ret; } @@ -1633,7 +1640,7 @@ UINT WINAPI SetBoundsRect(HDC hdc, const RECT* rect, UINT flags) DC *dc; if ((flags & DCB_ENABLE) && (flags & DCB_DISABLE)) return 0; - if (!(dc = DC_GetDCPtr( hdc ))) return 0; + if (!(dc = get_dc_ptr( hdc ))) return 0; ret = ((dc->flags & DC_BOUNDS_ENABLE) ? DCB_ENABLE : DCB_DISABLE) | ((dc->flags & DC_BOUNDS_SET) ? DCB_SET : DCB_RESET); @@ -1666,7 +1673,7 @@ UINT WINAPI SetBoundsRect(HDC hdc, const RECT* rect, UINT flags) if (flags & DCB_ENABLE) dc->flags |= DC_BOUNDS_ENABLE; if (flags & DCB_DISABLE) dc->flags &= ~DC_BOUNDS_ENABLE; - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dc ); return ret; } @@ -1677,11 +1684,11 @@ UINT WINAPI SetBoundsRect(HDC hdc, const RECT* rect, UINT flags) INT WINAPI GetRelAbs( HDC hdc, DWORD dwIgnore ) { INT ret = 0; - DC *dc = DC_GetDCPtr( hdc ); + DC *dc = get_dc_ptr( hdc ); if (dc) { ret = dc->relAbsMode; - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dc ); } return ret; } @@ -1695,11 +1702,11 @@ INT WINAPI GetRelAbs( HDC hdc, DWORD dwIgnore ) INT WINAPI GetBkMode( HDC hdc ) { INT ret = 0; - DC * dc = DC_GetDCPtr( hdc ); + DC * dc = get_dc_ptr( hdc ); if (dc) { ret = dc->backgroundMode; - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dc ); } return ret; } @@ -1717,7 +1724,7 @@ INT WINAPI SetBkMode( HDC hdc, INT mode ) SetLastError(ERROR_INVALID_PARAMETER); return 0; } - if (!(dc = DC_GetDCPtr( hdc ))) return 0; + if (!(dc = get_dc_ptr( hdc ))) return 0; ret = dc->backgroundMode; if (dc->funcs->pSetBkMode) @@ -1725,7 +1732,7 @@ INT WINAPI SetBkMode( HDC hdc, INT mode ) ret = 0; if (ret) dc->backgroundMode = mode; - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dc ); return ret; } @@ -1736,11 +1743,11 @@ INT WINAPI SetBkMode( HDC hdc, INT mode ) INT WINAPI GetROP2( HDC hdc ) { INT ret = 0; - DC * dc = DC_GetDCPtr( hdc ); + DC * dc = get_dc_ptr( hdc ); if (dc) { ret = dc->ROPmode; - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dc ); } return ret; } @@ -1758,14 +1765,14 @@ INT WINAPI SetROP2( HDC hdc, INT mode ) SetLastError(ERROR_INVALID_PARAMETER); return 0; } - if (!(dc = DC_GetDCPtr( hdc ))) return 0; + if (!(dc = get_dc_ptr( hdc ))) return 0; ret = dc->ROPmode; if (dc->funcs->pSetROP2) if (!dc->funcs->pSetROP2( dc->physDev, mode )) ret = 0; if (ret) dc->ROPmode = mode; - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dc ); return ret; } @@ -1782,7 +1789,7 @@ INT WINAPI SetRelAbs( HDC hdc, INT mode ) SetLastError(ERROR_INVALID_PARAMETER); return 0; } - if (!(dc = DC_GetDCPtr( hdc ))) return 0; + if (!(dc = get_dc_ptr( hdc ))) return 0; if (dc->funcs->pSetRelAbs) ret = dc->funcs->pSetRelAbs( dc->physDev, mode ); else @@ -1790,7 +1797,7 @@ INT WINAPI SetRelAbs( HDC hdc, INT mode ) ret = dc->relAbsMode; dc->relAbsMode = mode; } - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dc ); return ret; } @@ -1801,11 +1808,11 @@ INT WINAPI SetRelAbs( HDC hdc, INT mode ) INT WINAPI GetPolyFillMode( HDC hdc ) { INT ret = 0; - DC * dc = DC_GetDCPtr( hdc ); + DC * dc = get_dc_ptr( hdc ); if (dc) { ret = dc->polyFillMode; - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dc ); } return ret; } @@ -1823,14 +1830,14 @@ INT WINAPI SetPolyFillMode( HDC hdc, INT mode ) SetLastError(ERROR_INVALID_PARAMETER); return 0; } - if (!(dc = DC_GetDCPtr( hdc ))) return 0; + if (!(dc = get_dc_ptr( hdc ))) return 0; ret = dc->polyFillMode; if (dc->funcs->pSetPolyFillMode) if (!dc->funcs->pSetPolyFillMode( dc->physDev, mode )) ret = 0; if (ret) dc->polyFillMode = mode; - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dc ); return ret; } @@ -1841,11 +1848,11 @@ INT WINAPI SetPolyFillMode( HDC hdc, INT mode ) INT WINAPI GetStretchBltMode( HDC hdc ) { INT ret = 0; - DC * dc = DC_GetDCPtr( hdc ); + DC * dc = get_dc_ptr( hdc ); if (dc) { ret = dc->stretchBltMode; - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dc ); } return ret; } @@ -1863,14 +1870,14 @@ INT WINAPI SetStretchBltMode( HDC hdc, INT mode ) SetLastError(ERROR_INVALID_PARAMETER); return 0; } - if (!(dc = DC_GetDCPtr( hdc ))) return 0; + if (!(dc = get_dc_ptr( hdc ))) return 0; ret = dc->stretchBltMode; if (dc->funcs->pSetStretchBltMode) if (!dc->funcs->pSetStretchBltMode( dc->physDev, mode )) ret = 0; if (ret) dc->stretchBltMode = mode; - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dc ); return ret; } @@ -1881,11 +1888,11 @@ INT WINAPI SetStretchBltMode( HDC hdc, INT mode ) INT WINAPI GetMapMode( HDC hdc ) { INT ret = 0; - DC * dc = DC_GetDCPtr( hdc ); + DC * dc = get_dc_ptr( hdc ); if (dc) { ret = dc->MapMode; - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dc ); } return ret; } @@ -1896,11 +1903,11 @@ INT WINAPI GetMapMode( HDC hdc ) */ BOOL WINAPI GetBrushOrgEx( HDC hdc, LPPOINT pt ) { - DC * dc = DC_GetDCPtr( hdc ); + DC * dc = get_dc_ptr( hdc ); if (!dc) return FALSE; pt->x = dc->brushOrgX; pt->y = dc->brushOrgY; - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dc ); return TRUE; } @@ -1910,11 +1917,11 @@ BOOL WINAPI GetBrushOrgEx( HDC hdc, LPPOINT pt ) */ BOOL WINAPI GetCurrentPositionEx( HDC hdc, LPPOINT pt ) { - DC * dc = DC_GetDCPtr( hdc ); + DC * dc = get_dc_ptr( hdc ); if (!dc) return FALSE; pt->x = dc->CursPosX; pt->y = dc->CursPosY; - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dc ); return TRUE; } @@ -1924,11 +1931,11 @@ BOOL WINAPI GetCurrentPositionEx( HDC hdc, LPPOINT pt ) */ BOOL WINAPI GetViewportExtEx( HDC hdc, LPSIZE size ) { - DC * dc = DC_GetDCPtr( hdc ); + DC * dc = get_dc_ptr( hdc ); if (!dc) return FALSE; size->cx = dc->vportExtX; size->cy = dc->vportExtY; - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dc ); return TRUE; } @@ -1938,11 +1945,11 @@ BOOL WINAPI GetViewportExtEx( HDC hdc, LPSIZE size ) */ BOOL WINAPI GetViewportOrgEx( HDC hdc, LPPOINT pt ) { - DC * dc = DC_GetDCPtr( hdc ); + DC * dc = get_dc_ptr( hdc ); if (!dc) return FALSE; pt->x = dc->vportOrgX; pt->y = dc->vportOrgY; - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dc ); return TRUE; } @@ -1952,11 +1959,11 @@ BOOL WINAPI GetViewportOrgEx( HDC hdc, LPPOINT pt ) */ BOOL WINAPI GetWindowExtEx( HDC hdc, LPSIZE size ) { - DC * dc = DC_GetDCPtr( hdc ); + DC * dc = get_dc_ptr( hdc ); if (!dc) return FALSE; size->cx = dc->wndExtX; size->cy = dc->wndExtY; - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dc ); return TRUE; } @@ -1966,11 +1973,11 @@ BOOL WINAPI GetWindowExtEx( HDC hdc, LPSIZE size ) */ BOOL WINAPI GetWindowOrgEx( HDC hdc, LPPOINT pt ) { - DC * dc = DC_GetDCPtr( hdc ); + DC * dc = get_dc_ptr( hdc ); if (!dc) return FALSE; pt->x = dc->wndOrgX; pt->y = dc->wndOrgY; - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dc ); return TRUE; } @@ -1981,11 +1988,11 @@ BOOL WINAPI GetWindowOrgEx( HDC hdc, LPPOINT pt ) HRGN16 WINAPI InquireVisRgn16( HDC16 hdc ) { HRGN16 ret = 0; - DC * dc = DC_GetDCPtr( HDC_32(hdc) ); + DC * dc = get_dc_ptr( HDC_32(hdc) ); if (dc) { ret = HRGN_16(dc->hVisRgn); - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dc ); } return ret; } @@ -1997,11 +2004,11 @@ HRGN16 WINAPI InquireVisRgn16( HDC16 hdc ) HRGN16 WINAPI GetClipRgn16( HDC16 hdc ) { HRGN16 ret = 0; - DC * dc = DC_GetDCPtr( HDC_32(hdc) ); + DC * dc = get_dc_ptr( HDC_32(hdc) ); if (dc) { ret = HRGN_16(dc->hClipRgn); - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dc ); } return ret; } @@ -2017,11 +2024,11 @@ DWORD WINAPI GetLayout(HDC hdc) { DWORD layout = GDI_ERROR; - DC * dc = DC_GetDCPtr( hdc ); + DC * dc = get_dc_ptr( hdc ); if (dc) { layout = dc->layout; - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dc ); } TRACE("hdc : %p, layout : %08x\n", hdc, layout); @@ -2039,12 +2046,12 @@ DWORD WINAPI SetLayout(HDC hdc, DWORD layout) { DWORD oldlayout = GDI_ERROR; - DC * dc = DC_GetDCPtr( hdc ); + DC * dc = get_dc_ptr( hdc ); if (dc) { oldlayout = dc->layout; dc->layout = layout; - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dc ); } TRACE("hdc : %p, old layout : %08x, new layout : %08x\n", hdc, oldlayout, layout); @@ -2066,11 +2073,11 @@ COLORREF WINAPI GetDCBrushColor(HDC hdc) TRACE("hdc(%p)\n", hdc); - dc = DC_GetDCPtr( hdc ); + dc = get_dc_ptr( hdc ); if (dc) { dcBrushColor = dc->dcBrushColor; - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dc ); } return dcBrushColor; @@ -2091,7 +2098,7 @@ COLORREF WINAPI SetDCBrushColor(HDC hdc, COLORREF crColor) TRACE("hdc(%p) crColor(%08x)\n", hdc, crColor); - dc = DC_GetDCPtr( hdc ); + dc = get_dc_ptr( hdc ); if (dc) { if (dc->funcs->pSetDCBrushColor) @@ -2110,7 +2117,7 @@ COLORREF WINAPI SetDCBrushColor(HDC hdc, COLORREF crColor) dc->dcBrushColor = crColor; } - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dc ); } return oldClr; @@ -2130,11 +2137,11 @@ COLORREF WINAPI GetDCPenColor(HDC hdc) TRACE("hdc(%p)\n", hdc); - dc = DC_GetDCPtr( hdc ); + dc = get_dc_ptr( hdc ); if (dc) { dcPenColor = dc->dcPenColor; - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dc ); } return dcPenColor; @@ -2155,7 +2162,7 @@ COLORREF WINAPI SetDCPenColor(HDC hdc, COLORREF crColor) TRACE("hdc(%p) crColor(%08x)\n", hdc, crColor); - dc = DC_GetDCPtr( hdc ); + dc = get_dc_ptr( hdc ); if (dc) { if (dc->funcs->pSetDCPenColor) @@ -2175,7 +2182,7 @@ COLORREF WINAPI SetDCPenColor(HDC hdc, COLORREF crColor) dc->dcPenColor = crColor; } - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dc ); } return oldClr; @@ -2213,13 +2220,13 @@ BOOL WINAPI GetMiterLimit(HDC hdc, PFLOAT peLimit) TRACE("(%p,%p)\n", hdc, peLimit); - dc = DC_GetDCPtr( hdc ); + dc = get_dc_ptr( hdc ); if (dc) { if (peLimit) *peLimit = dc->miterLimit; - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dc ); bRet = TRUE; } return bRet; @@ -2237,13 +2244,13 @@ BOOL WINAPI SetMiterLimit(HDC hdc, FLOAT eNewLimit, PFLOAT peOldLimit) TRACE("(%p,%f,%p)\n", hdc, eNewLimit, peOldLimit); - dc = DC_GetDCPtr( hdc ); + dc = get_dc_ptr( hdc ); if (dc) { if (peOldLimit) *peOldLimit = dc->miterLimit; dc->miterLimit = eNewLimit; - DC_ReleaseDCPtr( dc ); + release_dc_ptr( dc ); bRet = TRUE; } return bRet;