Added Win16 implementation for GetRegionData().

This commit is contained in:
Andreas Mohr 1998-11-22 16:54:26 +00:00 committed by Alexandre Julliard
parent 29bbe12285
commit 1e360ebbf9
6 changed files with 20 additions and 9 deletions

View File

@ -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],

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -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 );
@ -556,6 +556,15 @@ DWORD WINAPI GetRegionData(HRGN32 hrgn, DWORD count, LPRGNDATA rgndata)
return 1;
}
/***********************************************************************
* 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)
*

View File

@ -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