Commit 1e360ebb authored by Andreas Mohr's avatar Andreas Mohr Committed by Alexandre Julliard

Added Win16 implementation for GetRegionData().

parent 29bbe122
......@@ -391,14 +391,14 @@ WORD PRTDRV_Output(LPPDEVICE lpDestDev,
DWORD size;
RGNDATA *clip;
size = GetRegionData( hClipRgn, 0, NULL );
size = GetRegionData32( hClipRgn, 0, NULL );
clip = HeapAlloc( SystemHeap, 0, size );
if(!clip)
{
WARN(win16drv, "Can't alloc clip array in PRTDRV_Output\n");
return FALSE;
}
GetRegionData( hClipRgn, size, clip );
GetRegionData32( hClipRgn, size, clip );
if( clip->rdh.nCount == 0 )
{
wRet = Callbacks->CallDrvOutputProc(pLPD->fn[FUNC_OUTPUT],
......
......@@ -376,7 +376,7 @@ file gdi.exe
604 pascal16 SetSolidBrush(word long) SetSolidBrush16
605 pascal16 SysDeleteObject(word) DeleteObject16 # ???
606 pascal16 SetMagicColors(word long word) SetMagicColors16
607 stub GetRegionData
607 pascal GetRegionData(word long ptr) GetRegionData16
608 stub ExtCreateRegion
609 stub GDIFreeResources
610 stub GDISignalProc32
......
......@@ -6872,7 +6872,6 @@ DWORD WINAPI GetObjectType(HANDLE32);
UINT32 WINAPI GetOEMCP(void);
DWORD WINAPI GetPriorityClass(HANDLE32);
HANDLE32 WINAPI GetProcessHeap(void);
DWORD WINAPI GetRegionData(HRGN32,DWORD,LPRGNDATA);
DWORD WINAPI GetShortPathName32A(LPCSTR,LPSTR,DWORD);
DWORD WINAPI GetShortPathName32W(LPCWSTR,LPWSTR,DWORD);
#define GetShortPathName WINELIB_NAME_AW(GetShortPathName)
......@@ -8238,6 +8237,9 @@ DWORD WINAPI GetQueueStatus32(UINT32);
BOOL16 WINAPI GetRasterizerCaps16(LPRASTERIZER_STATUS,UINT16);
BOOL32 WINAPI GetRasterizerCaps32(LPRASTERIZER_STATUS,UINT32);
#define GetRasterizerCaps WINELIB_NAME(GetRasterizerCaps)
DWORD WINAPI GetRegionData16(HRGN16,DWORD,LPRGNDATA);
DWORD WINAPI GetRegionData32(HRGN32,DWORD,LPRGNDATA);
#define GetRegionData WINELIB_NAME(GetRegionData)
INT16 WINAPI GetRelAbs16(HDC16);
INT32 WINAPI GetRelAbs32(HDC32);
#define GetRelAbs WINELIB_NAME(GetRelAbs)
......
......@@ -1684,12 +1684,12 @@ INT16 MF_CreateRegion(DC *dc, HRGN32 hrgn)
WORD *Param, *StartBand;
BOOL32 ret;
len = GetRegionData( hrgn, 0, NULL );
len = GetRegionData32( hrgn, 0, NULL );
if( !(rgndata = HeapAlloc( SystemHeap, 0, len )) ) {
WARN(metafile, "MF_CreateRegion: can't alloc rgndata buffer\n");
return -1;
}
GetRegionData( hrgn, len, rgndata );
GetRegionData32( hrgn, len, rgndata );
/* Overestimate of length:
* Assume every rect is a separate band -> 6 WORDs per rect
......
......@@ -521,10 +521,10 @@ HRGN32 WINAPI CreateEllipticRgnIndirect32( const RECT32 *rect )
}
/***********************************************************************
* GetRegionData (GDI32.217)
* GetRegionData32 (GDI32.217)
*
*/
DWORD WINAPI GetRegionData(HRGN32 hrgn, DWORD count, LPRGNDATA rgndata)
DWORD WINAPI GetRegionData32(HRGN32 hrgn, DWORD count, LPRGNDATA rgndata)
{
DWORD size;
RGNOBJ *obj = (RGNOBJ *) GDI_GetObjPtr( hrgn, REGION_MAGIC );
......@@ -557,6 +557,15 @@ DWORD WINAPI GetRegionData(HRGN32 hrgn, DWORD count, LPRGNDATA rgndata)
}
/***********************************************************************
* GetRegionData16 (GDI.607)
* FIXME: is LPRGNDATA the same in Win16 and Win32 ?
*/
DWORD WINAPI GetRegionData16(HRGN16 hrgn, DWORD count, LPRGNDATA rgndata)
{
return GetRegionData32((HRGN32)hrgn, count, rgndata);
}
/***********************************************************************
* ExtCreateRegion (GDI32.94)
*
*/
......
......@@ -219,7 +219,7 @@ init MAIN_GdiInit
214 stdcall GetROP2(long) GetROP232
215 stdcall GetRandomRgn(long long long) GetRandomRgn
216 stdcall GetRasterizerCaps(ptr long) GetRasterizerCaps32
217 stdcall GetRegionData(long long ptr) GetRegionData
217 stdcall GetRegionData(long long ptr) GetRegionData32
218 stdcall GetRelAbs(long) GetRelAbs32
219 stdcall GetRgnBox(long ptr) GetRgnBox32
220 stdcall GetStockObject(long) GetStockObject32
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment