mirror of
https://github.com/reactos/reactos.git
synced 2025-02-25 01:39:30 +00:00
[gdi32]
- Move region code from stubs into the appropriate file. - Enable and fix SetRectRgn user code. svn path=/trunk/; revision=44746
This commit is contained in:
parent
35f89c78de
commit
3180f15b3d
2 changed files with 186 additions and 205 deletions
|
@ -18,32 +18,6 @@
|
||||||
#define SIZEOF_DEVMODEW_400 212
|
#define SIZEOF_DEVMODEW_400 212
|
||||||
#define SIZEOF_DEVMODEW_500 220
|
#define SIZEOF_DEVMODEW_500 220
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @unimplemented
|
|
||||||
*/
|
|
||||||
BOOL
|
|
||||||
WINAPI
|
|
||||||
PtInRegion(IN HRGN hrgn,
|
|
||||||
int x,
|
|
||||||
int y)
|
|
||||||
{
|
|
||||||
/* FIXME some stuff at user mode need be fixed */
|
|
||||||
return NtGdiPtInRegion(hrgn,x,y);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @unimplemented
|
|
||||||
*/
|
|
||||||
BOOL
|
|
||||||
WINAPI
|
|
||||||
RectInRegion(HRGN hrgn,
|
|
||||||
LPCRECT prcl)
|
|
||||||
{
|
|
||||||
/* FIXME some stuff at user mode need be fixed */
|
|
||||||
return NtGdiRectInRegion(hrgn, (LPRECT) prcl);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @unimplemented
|
* @unimplemented
|
||||||
*/
|
*/
|
||||||
|
@ -67,8 +41,6 @@ SaveDC(IN HDC hdc)
|
||||||
return NtGdiSaveDC(hdc);
|
return NtGdiSaveDC(hdc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @implemented
|
* @implemented
|
||||||
*/
|
*/
|
||||||
|
@ -194,8 +166,6 @@ EnumObjects(HDC hdc,
|
||||||
return Result;
|
return Result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @implemented
|
* @implemented
|
||||||
*/
|
*/
|
||||||
|
@ -210,7 +180,6 @@ GetBoundsRect(
|
||||||
return NtGdiGetBoundsRect(hdc,lprcBounds,flags & DCB_RESET);
|
return NtGdiGetBoundsRect(hdc,lprcBounds,flags & DCB_RESET);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @unimplemented
|
* @unimplemented
|
||||||
*/
|
*/
|
||||||
|
@ -1559,21 +1528,6 @@ GdiResetDCEMF(HANDLE SpoolFileHandle,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @unimplemented
|
|
||||||
*/
|
|
||||||
INT
|
|
||||||
WINAPI
|
|
||||||
CombineRgn(HRGN hDest,
|
|
||||||
HRGN hSrc1,
|
|
||||||
HRGN hSrc2,
|
|
||||||
INT CombineMode)
|
|
||||||
{
|
|
||||||
/* FIXME some part should be done in user mode */
|
|
||||||
return NtGdiCombineRgn(hDest, hSrc1, hSrc2, CombineMode);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @unimplemented
|
* @unimplemented
|
||||||
*/
|
*/
|
||||||
|
@ -1638,29 +1592,6 @@ VOID WINAPI GdiInitializeLanguagePack(DWORD InitParam)
|
||||||
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @implemented
|
|
||||||
*/
|
|
||||||
INT
|
|
||||||
WINAPI
|
|
||||||
ExcludeClipRect(IN HDC hdc, IN INT xLeft, IN INT yTop, IN INT xRight, IN INT yBottom)
|
|
||||||
{
|
|
||||||
/* FIXME some part need be done on user mode size */
|
|
||||||
return NtGdiExcludeClipRect(hdc, xLeft, yTop, xRight, yBottom);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @implemented
|
|
||||||
*/
|
|
||||||
INT
|
|
||||||
WINAPI
|
|
||||||
ExtSelectClipRgn( IN HDC hdc, IN HRGN hrgn, IN INT iMode)
|
|
||||||
{
|
|
||||||
/* FIXME some part need be done on user mode size */
|
|
||||||
return NtGdiExtSelectClipRgn(hdc,hrgn, iMode);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @implemented
|
* @implemented
|
||||||
*/
|
*/
|
||||||
|
@ -1792,119 +1723,6 @@ GetRegionData(HRGN hrgn,
|
||||||
return NtGdiGetRegionData(hrgn,nCount,lpRgnData);
|
return NtGdiGetRegionData(hrgn,nCount,lpRgnData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @implemented
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
INT
|
|
||||||
WINAPI
|
|
||||||
GetRgnBox(HRGN hrgn,
|
|
||||||
LPRECT prcOut)
|
|
||||||
{
|
|
||||||
#if 0
|
|
||||||
PRGN_ATTR Rgn_Attr;
|
|
||||||
if (!GdiGetHandleUserData((HGDIOBJ) hRgn, GDI_OBJECT_TYPE_REGION, (PVOID) &Rgn_Attr))
|
|
||||||
return NtGdiGetRgnBox(hrgn, prcOut);
|
|
||||||
if (Rgn_Attr->Flags == NULLREGION)
|
|
||||||
{
|
|
||||||
prcOut->left = 0;
|
|
||||||
prcOut->top = 0;
|
|
||||||
prcOut->right = 0;
|
|
||||||
prcOut->bottom = 0;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (Rgn_Attr->Flags != SIMPLEREGION) return NtGdiGetRgnBox(hrgn, prcOut);
|
|
||||||
*prcOut = Rgn_Attr->Rect;
|
|
||||||
}
|
|
||||||
return Rgn_Attr->Flags;
|
|
||||||
#endif
|
|
||||||
return NtGdiGetRgnBox(hrgn, prcOut);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @implemented
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
INT
|
|
||||||
WINAPI
|
|
||||||
OffsetRgn( HRGN hrgn,
|
|
||||||
int nXOffset,
|
|
||||||
int nYOffset)
|
|
||||||
{
|
|
||||||
/* FIXME some part are done in user mode */
|
|
||||||
return NtGdiOffsetRgn(hrgn,nXOffset,nYOffset);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @implemented
|
|
||||||
*/
|
|
||||||
INT
|
|
||||||
WINAPI
|
|
||||||
IntersectClipRect(HDC hdc,
|
|
||||||
int nLeftRect,
|
|
||||||
int nTopRect,
|
|
||||||
int nRightRect,
|
|
||||||
int nBottomRect)
|
|
||||||
{
|
|
||||||
#if 0
|
|
||||||
// Handle something other than a normal dc object.
|
|
||||||
if (GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)
|
|
||||||
{
|
|
||||||
if (GDI_HANDLE_GET_TYPE(hdc) == GDI_OBJECT_TYPE_METADC)
|
|
||||||
return MFDRV_IntersectClipRect( hdc, nLeftRect, nTopRect, nRightRect, nBottomRect);
|
|
||||||
else
|
|
||||||
{
|
|
||||||
PLDC pLDC = GdiGetLDC(hdc);
|
|
||||||
if ( pLDC )
|
|
||||||
{
|
|
||||||
if (pLDC->iType != LDC_EMFLDC || EMFDRV_IntersectClipRect( hdc, nLeftRect, nTopRect, nRightRect, nBottomRect))
|
|
||||||
return NtGdiIntersectClipRect(hdc, nLeftRect, nTopRect, nRightRect, nBottomRect);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
SetLastError(ERROR_INVALID_HANDLE);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
return NtGdiIntersectClipRect(hdc, nLeftRect, nTopRect, nRightRect, nBottomRect);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @implemented
|
|
||||||
*/
|
|
||||||
INT
|
|
||||||
WINAPI
|
|
||||||
OffsetClipRgn(HDC hdc,
|
|
||||||
int nXOffset,
|
|
||||||
int nYOffset)
|
|
||||||
{
|
|
||||||
#if 0
|
|
||||||
// Handle something other than a normal dc object.
|
|
||||||
if (GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)
|
|
||||||
{
|
|
||||||
if (GDI_HANDLE_GET_TYPE(hdc) == GDI_OBJECT_TYPE_METADC)
|
|
||||||
return MFDRV_OffsetClipRgn( hdc, nXOffset, nYOffset );
|
|
||||||
else
|
|
||||||
{
|
|
||||||
PLDC pLDC = GdiGetLDC(hdc);
|
|
||||||
if ( !pLDC )
|
|
||||||
{
|
|
||||||
SetLastError(ERROR_INVALID_HANDLE);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
if (pLDC->iType == LDC_EMFLDC && !EMFDRV_OffsetClipRgn( hdc, nXOffset, nYOffset ))
|
|
||||||
return 0;
|
|
||||||
return NtGdiOffsetClipRgn( hdc, nXOffset, nYOffset);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
return NtGdiOffsetClipRgn( hdc, nXOffset, nYOffset);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
INT
|
INT
|
||||||
WINAPI
|
WINAPI
|
||||||
NamedEscape(HDC hdc,
|
NamedEscape(HDC hdc,
|
||||||
|
@ -1922,8 +1740,6 @@ NamedEscape(HDC hdc,
|
||||||
return NtGdiExtEscape(NULL,pDriver,wcslen(pDriver),iEsc,cjIn,pjIn,cjOut,pjOut);
|
return NtGdiExtEscape(NULL,pDriver,wcslen(pDriver),iEsc,cjIn,pjIn,cjOut,pjOut);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @unimplemented
|
* @unimplemented
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
#include "precomp.h"
|
#include "precomp.h"
|
||||||
|
|
||||||
|
|
||||||
static
|
static
|
||||||
VOID
|
VOID
|
||||||
FASTCALL
|
FASTCALL
|
||||||
|
@ -135,6 +134,20 @@ MirrorRgnDC(HDC hdc, HRGN hRgn, HRGN *phRgn)
|
||||||
|
|
||||||
/* FUNCTIONS *****************************************************************/
|
/* FUNCTIONS *****************************************************************/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @unimplemented
|
||||||
|
*/
|
||||||
|
INT
|
||||||
|
WINAPI
|
||||||
|
CombineRgn(HRGN hDest,
|
||||||
|
HRGN hSrc1,
|
||||||
|
HRGN hSrc2,
|
||||||
|
INT CombineMode)
|
||||||
|
{
|
||||||
|
/* FIXME some part should be done in user mode */
|
||||||
|
return NtGdiCombineRgn(hDest, hSrc1, hSrc2, CombineMode);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @implemented
|
* @implemented
|
||||||
*/
|
*/
|
||||||
|
@ -145,7 +158,6 @@ CreatePolygonRgn( const POINT * lppt, int cPoints, int fnPolyFillMode)
|
||||||
return (HRGN) NtGdiPolyPolyDraw( (HDC) fnPolyFillMode, (PPOINT) lppt, (PULONG) &cPoints, 1, GdiPolyPolyRgn);
|
return (HRGN) NtGdiPolyPolyDraw( (HDC) fnPolyFillMode, (PPOINT) lppt, (PULONG) &cPoints, 1, GdiPolyPolyRgn);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @implemented
|
* @implemented
|
||||||
*/
|
*/
|
||||||
|
@ -159,7 +171,6 @@ CreatePolyPolygonRgn( const POINT* lppt,
|
||||||
return (HRGN) NtGdiPolyPolyDraw( (HDC) fnPolyFillMode, (PPOINT) lppt, (PULONG) lpPolyCounts, (ULONG) nCount, GdiPolyPolyRgn );
|
return (HRGN) NtGdiPolyPolyDraw( (HDC) fnPolyFillMode, (PPOINT) lppt, (PULONG) lpPolyCounts, (ULONG) nCount, GdiPolyPolyRgn );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @implemented
|
* @implemented
|
||||||
*/
|
*/
|
||||||
|
@ -199,6 +210,17 @@ CreateRectRgnIndirect(
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @implemented
|
||||||
|
*/
|
||||||
|
INT
|
||||||
|
WINAPI
|
||||||
|
ExcludeClipRect(IN HDC hdc, IN INT xLeft, IN INT yTop, IN INT xRight, IN INT yBottom)
|
||||||
|
{
|
||||||
|
/* FIXME some part need be done on user mode size */
|
||||||
|
return NtGdiExcludeClipRect(hdc, xLeft, yTop, xRight, yBottom);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @implemented
|
* @implemented
|
||||||
*/
|
*/
|
||||||
|
@ -223,6 +245,17 @@ ExtCreateRegion(
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @implemented
|
||||||
|
*/
|
||||||
|
INT
|
||||||
|
WINAPI
|
||||||
|
ExtSelectClipRgn( IN HDC hdc, IN HRGN hrgn, IN INT iMode)
|
||||||
|
{
|
||||||
|
/* FIXME some part need be done on user mode size */
|
||||||
|
return NtGdiExtSelectClipRgn(hdc,hrgn, iMode);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @implemented
|
* @implemented
|
||||||
*/
|
*/
|
||||||
|
@ -252,6 +285,70 @@ GetMetaRgn(HDC hdc,
|
||||||
return NtGdiGetRandomRgn(hdc, hrgn, METARGN);
|
return NtGdiGetRandomRgn(hdc, hrgn, METARGN);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @implemented
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
INT
|
||||||
|
WINAPI
|
||||||
|
GetRgnBox(HRGN hrgn,
|
||||||
|
LPRECT prcOut)
|
||||||
|
{
|
||||||
|
#if 0
|
||||||
|
PRGN_ATTR Rgn_Attr;
|
||||||
|
if (!GdiGetHandleUserData((HGDIOBJ) hRgn, GDI_OBJECT_TYPE_REGION, (PVOID) &Rgn_Attr))
|
||||||
|
return NtGdiGetRgnBox(hrgn, prcOut);
|
||||||
|
if (Rgn_Attr->Flags == NULLREGION)
|
||||||
|
{
|
||||||
|
prcOut->left = 0;
|
||||||
|
prcOut->top = 0;
|
||||||
|
prcOut->right = 0;
|
||||||
|
prcOut->bottom = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (Rgn_Attr->Flags != SIMPLEREGION) return NtGdiGetRgnBox(hrgn, prcOut);
|
||||||
|
*prcOut = Rgn_Attr->Rect;
|
||||||
|
}
|
||||||
|
return Rgn_Attr->Flags;
|
||||||
|
#endif
|
||||||
|
return NtGdiGetRgnBox(hrgn, prcOut);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @implemented
|
||||||
|
*/
|
||||||
|
INT
|
||||||
|
WINAPI
|
||||||
|
IntersectClipRect(HDC hdc,
|
||||||
|
int nLeftRect,
|
||||||
|
int nTopRect,
|
||||||
|
int nRightRect,
|
||||||
|
int nBottomRect)
|
||||||
|
{
|
||||||
|
#if 0
|
||||||
|
// Handle something other than a normal dc object.
|
||||||
|
if (GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)
|
||||||
|
{
|
||||||
|
if (GDI_HANDLE_GET_TYPE(hdc) == GDI_OBJECT_TYPE_METADC)
|
||||||
|
return MFDRV_IntersectClipRect( hdc, nLeftRect, nTopRect, nRightRect, nBottomRect);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
PLDC pLDC = GdiGetLDC(hdc);
|
||||||
|
if ( pLDC )
|
||||||
|
{
|
||||||
|
if (pLDC->iType != LDC_EMFLDC || EMFDRV_IntersectClipRect( hdc, nLeftRect, nTopRect, nRightRect, nBottomRect))
|
||||||
|
return NtGdiIntersectClipRect(hdc, nLeftRect, nTopRect, nRightRect, nBottomRect);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
SetLastError(ERROR_INVALID_HANDLE);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
return NtGdiIntersectClipRect(hdc, nLeftRect, nTopRect, nRightRect, nBottomRect);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @implemented
|
* @implemented
|
||||||
*/
|
*/
|
||||||
|
@ -264,6 +361,77 @@ MirrorRgn(HWND hwnd, HRGN hrgn)
|
||||||
return MirrorRgnByWidth(hrgn, Rect.right - Rect.left, NULL);
|
return MirrorRgnByWidth(hrgn, Rect.right - Rect.left, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @implemented
|
||||||
|
*/
|
||||||
|
INT
|
||||||
|
WINAPI
|
||||||
|
OffsetClipRgn(HDC hdc,
|
||||||
|
int nXOffset,
|
||||||
|
int nYOffset)
|
||||||
|
{
|
||||||
|
#if 0
|
||||||
|
// Handle something other than a normal dc object.
|
||||||
|
if (GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)
|
||||||
|
{
|
||||||
|
if (GDI_HANDLE_GET_TYPE(hdc) == GDI_OBJECT_TYPE_METADC)
|
||||||
|
return MFDRV_OffsetClipRgn( hdc, nXOffset, nYOffset );
|
||||||
|
else
|
||||||
|
{
|
||||||
|
PLDC pLDC = GdiGetLDC(hdc);
|
||||||
|
if ( !pLDC )
|
||||||
|
{
|
||||||
|
SetLastError(ERROR_INVALID_HANDLE);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
if (pLDC->iType == LDC_EMFLDC && !EMFDRV_OffsetClipRgn( hdc, nXOffset, nYOffset ))
|
||||||
|
return 0;
|
||||||
|
return NtGdiOffsetClipRgn( hdc, nXOffset, nYOffset);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
return NtGdiOffsetClipRgn( hdc, nXOffset, nYOffset);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @implemented
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
INT
|
||||||
|
WINAPI
|
||||||
|
OffsetRgn( HRGN hrgn,
|
||||||
|
int nXOffset,
|
||||||
|
int nYOffset)
|
||||||
|
{
|
||||||
|
/* FIXME some part are done in user mode */
|
||||||
|
return NtGdiOffsetRgn(hrgn,nXOffset,nYOffset);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @unimplemented
|
||||||
|
*/
|
||||||
|
BOOL
|
||||||
|
WINAPI
|
||||||
|
PtInRegion(IN HRGN hrgn,
|
||||||
|
int x,
|
||||||
|
int y)
|
||||||
|
{
|
||||||
|
/* FIXME some stuff at user mode need be fixed */
|
||||||
|
return NtGdiPtInRegion(hrgn,x,y);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @unimplemented
|
||||||
|
*/
|
||||||
|
BOOL
|
||||||
|
WINAPI
|
||||||
|
RectInRegion(HRGN hrgn,
|
||||||
|
LPCRECT prcl)
|
||||||
|
{
|
||||||
|
/* FIXME some stuff at user mode need be fixed */
|
||||||
|
return NtGdiRectInRegion(hrgn, (LPRECT) prcl);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @implemented
|
* @implemented
|
||||||
*/
|
*/
|
||||||
|
@ -287,42 +455,39 @@ SetRectRgn(HRGN hrgn,
|
||||||
int nRightRect,
|
int nRightRect,
|
||||||
int nBottomRect)
|
int nBottomRect)
|
||||||
{
|
{
|
||||||
#if 0
|
|
||||||
PRGN_ATTR Rgn_Attr;
|
PRGN_ATTR Rgn_Attr;
|
||||||
|
|
||||||
if (!GdiGetHandleUserData((HGDIOBJ) hrgn, GDI_OBJECT_TYPE_REGION, (PVOID) &Rgn_Attr))
|
if (!GdiGetHandleUserData((HGDIOBJ) hrgn, GDI_OBJECT_TYPE_REGION, (PVOID) &Rgn_Attr))
|
||||||
#endif
|
|
||||||
return NtGdiSetRectRgn(hrgn, nLeftRect, nTopRect, nRightRect, nBottomRect);
|
return NtGdiSetRectRgn(hrgn, nLeftRect, nTopRect, nRightRect, nBottomRect);
|
||||||
#if 0
|
|
||||||
if ((nLeftRect == nRightRect) || (nTopRect == nBottomRect))
|
if ((nLeftRect == nRightRect) || (nTopRect == nBottomRect))
|
||||||
{
|
{
|
||||||
Rgn_Attr->flFlags |= DIRTY_RGNATTR;
|
Rgn_Attr->AttrFlags |= ATTR_RGN_DIRTY;
|
||||||
Rgn_Attr->dwType = RGNATTR_INIT;
|
Rgn_Attr->Flags = NULLREGION;
|
||||||
Rgn_Attr->rcBound.left = Rgn_Attr->rcBound.top =
|
Rgn_Attr->Rect.left = Rgn_Attr->Rect.top =
|
||||||
Rgn_Attr->rcBound.right = Rgn_Attr->rcBound.bottom = 0;
|
Rgn_Attr->Rect.right = Rgn_Attr->Rect.bottom = 0;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
Rgn_Attr->rcBound.left = nLeftRect;
|
Rgn_Attr->Rect.left = nLeftRect;
|
||||||
Rgn_Attr->rcBound.top = nTopRect;
|
Rgn_Attr->Rect.top = nTopRect;
|
||||||
Rgn_Attr->rcBound.right = nRightRect;
|
Rgn_Attr->Rect.right = nRightRect;
|
||||||
Rgn_Attr->rcBound.bottom = nBottomRect;
|
Rgn_Attr->Rect.bottom = nBottomRect;
|
||||||
|
|
||||||
if(nLeftRect > nRightRect)
|
if(nLeftRect > nRightRect)
|
||||||
{
|
{
|
||||||
Rgn_Attr->rcBound.left = nRightRect;
|
Rgn_Attr->Rect.left = nRightRect;
|
||||||
Rgn_Attr->rcBound.right = nLeftRect;
|
Rgn_Attr->Rect.right = nLeftRect;
|
||||||
}
|
}
|
||||||
if(nTopRect > nBottomRect)
|
if(nTopRect > nBottomRect)
|
||||||
{
|
{
|
||||||
Rgn_Attr->rcBound.top = nBottomRect;
|
Rgn_Attr->Rect.top = nBottomRect;
|
||||||
Rgn_Attr->rcBound.bottom = nTopRect;
|
Rgn_Attr->Rect.bottom = nTopRect;
|
||||||
}
|
}
|
||||||
|
|
||||||
Rgn_Attr->flFlags |= DIRTY_RGNATTR;
|
Rgn_Attr->AttrFlags |= ATTR_RGN_DIRTY ;
|
||||||
Rgn_Attr->dwType = RGNATTR_SET;
|
Rgn_Attr->Flags = SIMPLEREGION;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in a new issue