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