wow64win: Sort gdi syscall thunks.

This commit is contained in:
Jacek Caban 2022-07-25 19:41:09 +02:00 committed by Alexandre Julliard
parent 35a59e07b9
commit 104d6a1205

View file

@ -27,53 +27,37 @@
#include "ntgdi.h"
#include "wow64win_private.h"
NTSTATUS WINAPI wow64_NtGdiCreateClientObj( UINT *args )
NTSTATUS WINAPI wow64_NtGdiAddFontMemResourceEx( UINT *args )
{
ULONG type = get_ulong( &args );
void *ptr = get_ptr( &args );
DWORD size = get_ulong( &args );
void *dv = get_ptr( &args );
ULONG dv_size = get_ulong( &args );
DWORD *count = get_ptr( &args );
return HandleToUlong( NtGdiCreateClientObj( type ));
return HandleToUlong( NtGdiAddFontMemResourceEx( ptr, size, dv, dv_size, count ));
}
NTSTATUS WINAPI wow64_NtGdiDeleteClientObj( UINT *args )
NTSTATUS WINAPI wow64_NtGdiAddFontResourceW( UINT *args )
{
HGDIOBJ obj = get_handle( &args );
const WCHAR *str = get_ptr( &args );
ULONG size = get_ulong( &args );
ULONG files = get_ulong( &args );
DWORD flags = get_ulong( &args );
DWORD tid = get_ulong( &args );
void *dv = get_ptr( &args );
return NtGdiDeleteClientObj( obj );
return NtGdiAddFontResourceW( str, size, files, flags, tid, dv );
}
NTSTATUS WINAPI wow64_NtGdiExtGetObjectW( UINT *args )
NTSTATUS WINAPI wow64_NtGdiCombineRgn( UINT *args )
{
HGDIOBJ handle = get_handle( &args );
INT count = get_ulong( &args );
void *buffer = get_ptr( &args );
HRGN dest = get_handle( &args );
HRGN src1 = get_handle( &args );
HRGN src2 = get_handle( &args );
INT mode = get_ulong( &args );
return NtGdiExtGetObjectW( handle, count, buffer );
}
NTSTATUS WINAPI wow64_NtGdiGetDCDword( UINT *args )
{
HDC hdc = get_handle( &args );
UINT method = get_ulong( &args );
DWORD *result = get_ptr( &args );
return NtGdiGetDCDword( hdc, method, result );
}
NTSTATUS WINAPI wow64_NtGdiGetDCObject( UINT *args )
{
HDC hdc = get_handle( &args );
UINT type = get_ulong( &args );
return HandleToUlong( NtGdiGetDCObject( hdc, type ));
}
NTSTATUS WINAPI wow64_NtGdiGetDCPoint( UINT *args )
{
HDC hdc = get_handle( &args );
UINT method = get_ulong( &args );
POINT *result = get_ptr( &args );
return NtGdiGetDCPoint( hdc, method, result );
return NtGdiCombineRgn( dest, src1, src2, mode );
}
NTSTATUS WINAPI wow64_NtGdiCreateBitmap( UINT *args )
@ -87,40 +71,23 @@ NTSTATUS WINAPI wow64_NtGdiCreateBitmap( UINT *args )
return HandleToUlong( NtGdiCreateBitmap( width, height, planes, bpp, bits ));
}
NTSTATUS WINAPI wow64_NtGdiGetBitmapBits( UINT *args )
NTSTATUS WINAPI wow64_NtGdiCreateClientObj( UINT *args )
{
HBITMAP bitmap = get_handle( &args );
LONG count = get_ulong( &args );
void *bits = get_ptr( &args );
ULONG type = get_ulong( &args );
return NtGdiGetBitmapBits( bitmap, count, bits );
return HandleToUlong( NtGdiCreateClientObj( type ));
}
NTSTATUS WINAPI wow64_NtGdiSetBitmapBits( UINT *args )
NTSTATUS WINAPI wow64_NtGdiCreateDIBBrush( UINT *args )
{
HBITMAP hbitmap = get_handle( &args );
LONG count = get_ulong( &args );
const void *bits = get_ptr( &args );
const void *data = get_ptr( &args );
UINT coloruse = get_ulong( &args );
UINT size = get_ulong( &args );
BOOL is_8x8 = get_ulong( &args );
BOOL pen = get_ulong( &args );
const void *client = get_ptr( &args );
return NtGdiSetBitmapBits( hbitmap, count, bits );
}
NTSTATUS WINAPI wow64_NtGdiGetBitmapDimension( UINT *args )
{
HBITMAP bitmap = get_handle( &args );
SIZE *size = get_ptr( &args );
return NtGdiGetBitmapDimension( bitmap, size );
}
NTSTATUS WINAPI wow64_NtGdiSetBitmapDimension( UINT *args )
{
HBITMAP hbitmap = get_handle( &args );
INT x = get_ulong( &args );
INT y = get_ulong( &args );
SIZE *prev_size = get_ptr( &args );
return NtGdiSetBitmapDimension( hbitmap, x, y, prev_size );
return HandleToUlong( NtGdiCreateDIBBrush( data, coloruse, size, is_8x8, pen, client ));
}
NTSTATUS WINAPI wow64_NtGdiCreateDIBSection( UINT *args )
@ -144,16 +111,21 @@ NTSTATUS WINAPI wow64_NtGdiCreateDIBSection( UINT *args )
return HandleToUlong( ret );
}
NTSTATUS WINAPI wow64_NtGdiCreateDIBBrush( UINT *args )
NTSTATUS WINAPI wow64_NtGdiCreateEllipticRgn( UINT *args )
{
const void *data = get_ptr( &args );
UINT coloruse = get_ulong( &args );
UINT size = get_ulong( &args );
BOOL is_8x8 = get_ulong( &args );
BOOL pen = get_ulong( &args );
const void *client = get_ptr( &args );
INT left = get_ulong( &args );
INT top = get_ulong( &args );
INT right = get_ulong( &args );
INT bottom = get_ulong( &args );
return HandleToUlong( NtGdiCreateDIBBrush( data, coloruse, size, is_8x8, pen, client ));
return HandleToUlong( NtGdiCreateEllipticRgn( left, top, right, bottom ));
}
NTSTATUS WINAPI wow64_NtGdiCreateHalftonePalette( UINT *args )
{
HDC hdc = get_handle( &args );
return HandleToUlong( NtGdiCreateHalftonePalette( hdc ));
}
NTSTATUS WINAPI wow64_NtGdiCreateHatchBrushInternal( UINT *args )
@ -165,6 +137,14 @@ NTSTATUS WINAPI wow64_NtGdiCreateHatchBrushInternal( UINT *args )
return HandleToULong( NtGdiCreateHatchBrushInternal( style, color, pen ));
}
NTSTATUS WINAPI wow64_NtGdiCreatePaletteInternal( UINT *args )
{
const LOGPALETTE *palette = get_ptr( &args );
UINT count = get_ulong( &args );
return HandleToUlong( NtGdiCreatePaletteInternal( palette, count ));
}
NTSTATUS WINAPI wow64_NtGdiCreatePatternBrushInternal( UINT *args )
{
HBITMAP hbitmap = get_handle( &args );
@ -174,14 +154,6 @@ NTSTATUS WINAPI wow64_NtGdiCreatePatternBrushInternal( UINT *args )
return HandleToUlong( NtGdiCreatePatternBrushInternal( hbitmap, pen, is_8x8 ));
}
NTSTATUS WINAPI wow64_NtGdiCreateSolidBrush( UINT *args )
{
COLORREF color = get_ulong( &args );
HBRUSH brush = get_handle( &args );
return HandleToUlong( NtGdiCreateSolidBrush( color, brush ));
}
NTSTATUS WINAPI wow64_NtGdiCreatePen( UINT *args )
{
INT style = get_ulong( &args );
@ -192,25 +164,6 @@ NTSTATUS WINAPI wow64_NtGdiCreatePen( UINT *args )
return HandleToUlong( NtGdiCreatePen( style, width, color, brush ));
}
NTSTATUS WINAPI wow64_NtGdiExtCreatePen( UINT *args )
{
DWORD style = get_ulong( &args );
DWORD width = get_ulong( &args );
ULONG brush_style = get_ulong( &args );
ULONG color = get_ulong( &args );
ULONG_PTR client_hatch = get_ulong( &args );
ULONG_PTR hatch = get_ulong( &args );
DWORD style_count = get_ulong( &args );
const DWORD *style_bits = get_ptr( &args );
ULONG dib_size = get_ulong( &args );
BOOL old_style = get_ulong( &args );
HBRUSH brush = get_handle( &args );
return HandleToUlong( NtGdiExtCreatePen( style, width, brush_style, color, client_hatch,
hatch, style_count, style_bits, dib_size,
old_style, brush ));
}
NTSTATUS WINAPI wow64_NtGdiCreateRectRgn( UINT *args )
{
INT left = get_ulong( &args );
@ -234,372 +187,12 @@ NTSTATUS WINAPI wow64_NtGdiCreateRoundRectRgn( UINT *args )
ellipse_width, ellipse_height ));
}
NTSTATUS WINAPI wow64_NtGdiCreateEllipticRgn( UINT *args )
NTSTATUS WINAPI wow64_NtGdiCreateSolidBrush( UINT *args )
{
INT left = get_ulong( &args );
INT top = get_ulong( &args );
INT right = get_ulong( &args );
INT bottom = get_ulong( &args );
return HandleToUlong( NtGdiCreateEllipticRgn( left, top, right, bottom ));
}
NTSTATUS WINAPI wow64_NtGdiExtCreateRegion( UINT *args )
{
const XFORM *xform = get_ptr( &args );
DWORD count = get_ulong( &args );
const RGNDATA *data = get_ptr( &args );
return HandleToUlong( NtGdiExtCreateRegion( xform, count, data ));
}
NTSTATUS WINAPI wow64_NtGdiGetRegionData( UINT *args )
{
HRGN hrgn = get_ptr( &args );
DWORD count = get_ulong( &args );
RGNDATA *data = get_ptr( &args );
return NtGdiGetRegionData( hrgn, count, data );
}
NTSTATUS WINAPI wow64_NtGdiEqualRgn( UINT *args )
{
HRGN hrgn1 = get_handle( &args );
HRGN hrgn2 = get_handle( &args );
return NtGdiEqualRgn( hrgn1, hrgn2 );
}
NTSTATUS WINAPI wow64_NtGdiGetRgnBox( UINT *args )
{
HRGN hrgn = get_handle( &args );
RECT *rect = get_ptr( &args );
return NtGdiGetRgnBox( hrgn, rect );
}
NTSTATUS WINAPI wow64_NtGdiSetRectRgn( UINT *args )
{
HRGN hrgn = get_handle( &args );
INT left = get_ulong( &args );
INT top = get_ulong( &args );
INT right = get_ulong( &args );
INT bottom = get_ulong( &args );
return NtGdiSetRectRgn( hrgn, left, top, right, bottom );
}
NTSTATUS WINAPI wow64_NtGdiOffsetRgn( UINT *args )
{
HRGN hrgn = get_handle( &args );
INT x = get_ulong( &args );
INT y = get_ulong( &args );
return NtGdiOffsetRgn( hrgn, x, y );
}
NTSTATUS WINAPI wow64_NtGdiCombineRgn( UINT *args )
{
HRGN dest = get_handle( &args );
HRGN src1 = get_handle( &args );
HRGN src2 = get_handle( &args );
INT mode = get_ulong( &args );
return NtGdiCombineRgn( dest, src1, src2, mode );
}
NTSTATUS WINAPI wow64_NtGdiPtInRegion( UINT *args )
{
HRGN hrgn = get_handle( &args );
INT x = get_ulong( &args );
INT y = get_ulong( &args );
return NtGdiPtInRegion( hrgn, x, y );
}
NTSTATUS WINAPI wow64_NtGdiRectInRegion( UINT *args )
{
HRGN hrgn = get_handle( &args );
const RECT *rect = get_ptr( &args );
return NtGdiRectInRegion( hrgn, rect );
}
NTSTATUS WINAPI wow64_NtGdiSetMetaRgn( UINT *args )
{
HDC hdc = get_handle( &args );
return NtGdiSetMetaRgn( hdc );
}
NTSTATUS WINAPI wow64_NtGdiSaveDC( UINT *args )
{
HDC hdc = get_handle( &args );
return NtGdiSaveDC( hdc );
}
NTSTATUS WINAPI wow64_NtGdiSetBrushOrg( UINT *args )
{
HDC hdc = get_handle( &args );
INT x = get_ulong( &args );
INT y = get_ulong( &args );
POINT *prev_org = get_ptr( &args );
return NtGdiSetBrushOrg( hdc, x, y, prev_org );
}
NTSTATUS WINAPI wow64_NtGdiGetTransform( UINT *args )
{
HDC hdc = get_handle( &args );
DWORD which = get_ulong( &args );
XFORM *xform = get_ptr( &args );
return NtGdiGetTransform( hdc, which, xform );
}
NTSTATUS WINAPI wow64_NtGdiDescribePixelFormat( UINT *args )
{
HDC hdc = get_handle( &args );
INT format = get_ulong( &args );
UINT size = get_ulong( &args );
PIXELFORMATDESCRIPTOR *descr = get_ptr( &args );
return NtGdiDescribePixelFormat( hdc, format, size, descr );
}
NTSTATUS WINAPI wow64_NtGdiSetPixelFormat( UINT *args )
{
HDC hdc = get_handle( &args );
INT format = get_ulong( &args );
return NtGdiSetPixelFormat( hdc, format );
}
NTSTATUS WINAPI wow64_NtGdiSwapBuffers( UINT *args )
{
HDC hdc = get_handle( &args );
return NtGdiSwapBuffers( hdc );
}
NTSTATUS WINAPI wow64_NtGdiDrawStream( UINT *args )
{
HDC hdc = get_handle( &args );
ULONG in = get_ulong( &args );
void *pvin = get_ptr( &args );
return NtGdiDrawStream( hdc, in, pvin );
}
NTSTATUS WINAPI wow64_NtGdiSetTextJustification( UINT *args )
{
HDC hdc = get_handle( &args );
INT extra = get_ulong( &args );
INT breaks = get_ulong( &args );
return NtGdiSetTextJustification( hdc, extra, breaks );
}
NTSTATUS WINAPI wow64_NtGdiHfontCreate( UINT *args )
{
const void *logfont = get_ptr( &args );
ULONG unk2 = get_ulong( &args );
ULONG unk3 = get_ulong( &args );
ULONG unk4 = get_ulong( &args );
void *data = get_ptr( &args );
return HandleToUlong( NtGdiHfontCreate( logfont, unk2, unk3, unk4, data ));
}
NTSTATUS WINAPI wow64_NtGdiGetFontFileData( UINT *args )
{
DWORD instance_id = get_ulong( &args );
DWORD file_index = get_ulong( &args );
UINT64 *offset = get_ptr( &args );
void *buff = get_ptr( &args );
DWORD buff_size = get_ulong( &args );
return NtGdiGetFontFileData( instance_id, file_index, offset, buff, buff_size );
}
NTSTATUS WINAPI wow64_NtGdiGetFontFileInfo( UINT *args )
{
DWORD instance_id = get_ulong( &args );
DWORD file_index = get_ulong( &args );
struct font_fileinfo *info = get_ptr( &args );
SIZE_T size = get_ulong( &args );
ULONG *needed32 = get_ptr( &args );
SIZE_T needed;
BOOL ret;
ret = NtGdiGetFontFileInfo( instance_id, file_index, info, size, size_32to64( &needed, needed32 ));
put_size( needed32, needed );
return ret;
}
NTSTATUS WINAPI wow64_NtGdiAddFontMemResourceEx( UINT *args )
{
void *ptr = get_ptr( &args );
DWORD size = get_ulong( &args );
void *dv = get_ptr( &args );
ULONG dv_size = get_ulong( &args );
DWORD *count = get_ptr( &args );
return HandleToUlong( NtGdiAddFontMemResourceEx( ptr, size, dv, dv_size, count ));
}
NTSTATUS WINAPI wow64_NtGdiAddFontResourceW( UINT *args )
{
const WCHAR *str = get_ptr( &args );
ULONG size = get_ulong( &args );
ULONG files = get_ulong( &args );
DWORD flags = get_ulong( &args );
DWORD tid = get_ulong( &args );
void *dv = get_ptr( &args );
return NtGdiAddFontResourceW( str, size, files, flags, tid, dv );
}
NTSTATUS WINAPI wow64_NtGdiRemoveFontMemResourceEx( UINT *args )
{
HANDLE handle = get_handle( &args );
return NtGdiRemoveFontMemResourceEx( handle );
}
NTSTATUS WINAPI wow64_NtGdiRemoveFontResourceW( UINT *args )
{
const WCHAR *str = get_ptr( &args );
ULONG size = get_ulong( &args );
ULONG files = get_ulong( &args );
DWORD flags = get_ulong( &args );
DWORD tid = get_ulong( &args );
void *dv = get_ptr( &args );
return NtGdiRemoveFontResourceW( str, size, files, flags, tid, dv );
}
NTSTATUS WINAPI wow64_NtGdiGetColorAdjustment( UINT *args )
{
HDC hdc = get_handle( &args );
COLORADJUSTMENT *ca = get_ptr( &args );
return NtGdiGetColorAdjustment( hdc, ca );
}
NTSTATUS WINAPI wow64_NtGdiSetColorAdjustment( UINT *args )
{
HDC hdc = get_handle( &args );
const COLORADJUSTMENT *ca = get_ptr( &args );
return NtGdiSetColorAdjustment( hdc, ca );
}
NTSTATUS WINAPI wow64_NtGdiSetVirtualResolution( UINT *args )
{
HDC hdc = get_handle( &args );
DWORD horz_res = get_ulong( &args );
DWORD vert_res = get_ulong( &args );
DWORD horz_size = get_ulong( &args );
DWORD vert_size = get_ulong( &args );
return NtGdiSetVirtualResolution( hdc, horz_res, vert_res, horz_size, vert_size );
}
NTSTATUS WINAPI wow64_NtGdiTransformPoints( UINT *args )
{
HDC hdc = get_handle( &args );
const POINT *points_in = get_ptr( &args );
POINT *points_out = get_ptr( &args );
INT count = get_ulong( &args );
UINT mode = get_ulong( &args );
return NtGdiTransformPoints( hdc, points_in, points_out, count, mode );
}
NTSTATUS WINAPI wow64_NtGdiCreatePaletteInternal( UINT *args )
{
const LOGPALETTE *palette = get_ptr( &args );
UINT count = get_ulong( &args );
return HandleToUlong( NtGdiCreatePaletteInternal( palette, count ));
}
NTSTATUS WINAPI wow64_NtGdiCreateHalftonePalette( UINT *args )
{
HDC hdc = get_handle( &args );
return HandleToUlong( NtGdiCreateHalftonePalette( hdc ));
}
NTSTATUS WINAPI wow64_NtGdiGetNearestPaletteIndex( UINT *args )
{
HPALETTE hpalette = get_handle( &args );
COLORREF color = get_ulong( &args );
HBRUSH brush = get_handle( &args );
return NtGdiGetNearestPaletteIndex( hpalette, color );
}
NTSTATUS WINAPI wow64_NtGdiGetSystemPaletteUse( UINT *args )
{
HDC hdc = get_handle( &args );
return NtGdiGetSystemPaletteUse( hdc );
}
NTSTATUS WINAPI wow64_NtGdiSetMagicColors( UINT *args )
{
HDC hdc = get_handle( &args );
DWORD magic = get_ulong( &args );
ULONG index = get_ulong( &args );
return NtGdiSetMagicColors( hdc, magic, index );
}
NTSTATUS WINAPI wow64_NtGdiGetPath( UINT *args )
{
HDC hdc = get_handle( &args );
POINT *points = get_ptr( &args );
BYTE *types = get_ptr( &args );
INT size = get_ulong( &args );
return NtGdiGetPath( hdc, points, types, size );
}
NTSTATUS WINAPI wow64_NtGdiPathToRegion( UINT *args )
{
HDC hdc = get_handle( &args );
return HandleToUlong( NtGdiPathToRegion( hdc ));
}
NTSTATUS WINAPI wow64_NtGdiFlattenPath( UINT *args )
{
HDC hdc = get_handle( &args );
return NtGdiFlattenPath( hdc );
}
NTSTATUS WINAPI wow64_NtGdiGetSpoolMessage( UINT *args )
{
void *ptr1 = get_ptr( &args );
DWORD data2 = get_ulong( &args );
void *ptr3 = get_ptr( &args );
DWORD data4 = get_ulong( &args );
return NtGdiGetSpoolMessage( ptr1, data2, ptr3, data4 );
}
NTSTATUS WINAPI wow64_NtGdiInitSpool( UINT *args )
{
return NtGdiInitSpool();
}
NTSTATUS WINAPI wow64_NtGdiFlush( UINT *args )
{
return NtGdiFlush();
return HandleToUlong( NtGdiCreateSolidBrush( color, brush ));
}
NTSTATUS WINAPI wow64_NtGdiDdDDICreateDevice( UINT *args )
@ -672,3 +265,410 @@ NTSTATUS WINAPI wow64_NtGdiDdDDISetQueuedLimit( UINT *args )
return NtGdiDdDDISetQueuedLimit( desc );
}
NTSTATUS WINAPI wow64_NtGdiDeleteClientObj( UINT *args )
{
HGDIOBJ obj = get_handle( &args );
return NtGdiDeleteClientObj( obj );
}
NTSTATUS WINAPI wow64_NtGdiDescribePixelFormat( UINT *args )
{
HDC hdc = get_handle( &args );
INT format = get_ulong( &args );
UINT size = get_ulong( &args );
PIXELFORMATDESCRIPTOR *descr = get_ptr( &args );
return NtGdiDescribePixelFormat( hdc, format, size, descr );
}
NTSTATUS WINAPI wow64_NtGdiDrawStream( UINT *args )
{
HDC hdc = get_handle( &args );
ULONG in = get_ulong( &args );
void *pvin = get_ptr( &args );
return NtGdiDrawStream( hdc, in, pvin );
}
NTSTATUS WINAPI wow64_NtGdiEqualRgn( UINT *args )
{
HRGN hrgn1 = get_handle( &args );
HRGN hrgn2 = get_handle( &args );
return NtGdiEqualRgn( hrgn1, hrgn2 );
}
NTSTATUS WINAPI wow64_NtGdiExtCreatePen( UINT *args )
{
DWORD style = get_ulong( &args );
DWORD width = get_ulong( &args );
ULONG brush_style = get_ulong( &args );
ULONG color = get_ulong( &args );
ULONG_PTR client_hatch = get_ulong( &args );
ULONG_PTR hatch = get_ulong( &args );
DWORD style_count = get_ulong( &args );
const DWORD *style_bits = get_ptr( &args );
ULONG dib_size = get_ulong( &args );
BOOL old_style = get_ulong( &args );
HBRUSH brush = get_handle( &args );
return HandleToUlong( NtGdiExtCreatePen( style, width, brush_style, color, client_hatch,
hatch, style_count, style_bits, dib_size,
old_style, brush ));
}
NTSTATUS WINAPI wow64_NtGdiExtCreateRegion( UINT *args )
{
const XFORM *xform = get_ptr( &args );
DWORD count = get_ulong( &args );
const RGNDATA *data = get_ptr( &args );
return HandleToUlong( NtGdiExtCreateRegion( xform, count, data ));
}
NTSTATUS WINAPI wow64_NtGdiExtGetObjectW( UINT *args )
{
HGDIOBJ handle = get_handle( &args );
INT count = get_ulong( &args );
void *buffer = get_ptr( &args );
return NtGdiExtGetObjectW( handle, count, buffer );
}
NTSTATUS WINAPI wow64_NtGdiFlattenPath( UINT *args )
{
HDC hdc = get_handle( &args );
return NtGdiFlattenPath( hdc );
}
NTSTATUS WINAPI wow64_NtGdiFlush( UINT *args )
{
return NtGdiFlush();
}
NTSTATUS WINAPI wow64_NtGdiGetBitmapBits( UINT *args )
{
HBITMAP bitmap = get_handle( &args );
LONG count = get_ulong( &args );
void *bits = get_ptr( &args );
return NtGdiGetBitmapBits( bitmap, count, bits );
}
NTSTATUS WINAPI wow64_NtGdiGetBitmapDimension( UINT *args )
{
HBITMAP bitmap = get_handle( &args );
SIZE *size = get_ptr( &args );
return NtGdiGetBitmapDimension( bitmap, size );
}
NTSTATUS WINAPI wow64_NtGdiGetColorAdjustment( UINT *args )
{
HDC hdc = get_handle( &args );
COLORADJUSTMENT *ca = get_ptr( &args );
return NtGdiGetColorAdjustment( hdc, ca );
}
NTSTATUS WINAPI wow64_NtGdiGetDCDword( UINT *args )
{
HDC hdc = get_handle( &args );
UINT method = get_ulong( &args );
DWORD *result = get_ptr( &args );
return NtGdiGetDCDword( hdc, method, result );
}
NTSTATUS WINAPI wow64_NtGdiGetDCObject( UINT *args )
{
HDC hdc = get_handle( &args );
UINT type = get_ulong( &args );
return HandleToUlong( NtGdiGetDCObject( hdc, type ));
}
NTSTATUS WINAPI wow64_NtGdiGetDCPoint( UINT *args )
{
HDC hdc = get_handle( &args );
UINT method = get_ulong( &args );
POINT *result = get_ptr( &args );
return NtGdiGetDCPoint( hdc, method, result );
}
NTSTATUS WINAPI wow64_NtGdiGetFontFileData( UINT *args )
{
DWORD instance_id = get_ulong( &args );
DWORD file_index = get_ulong( &args );
UINT64 *offset = get_ptr( &args );
void *buff = get_ptr( &args );
DWORD buff_size = get_ulong( &args );
return NtGdiGetFontFileData( instance_id, file_index, offset, buff, buff_size );
}
NTSTATUS WINAPI wow64_NtGdiGetFontFileInfo( UINT *args )
{
DWORD instance_id = get_ulong( &args );
DWORD file_index = get_ulong( &args );
struct font_fileinfo *info = get_ptr( &args );
SIZE_T size = get_ulong( &args );
ULONG *needed32 = get_ptr( &args );
SIZE_T needed;
BOOL ret;
ret = NtGdiGetFontFileInfo( instance_id, file_index, info, size, size_32to64( &needed, needed32 ));
put_size( needed32, needed );
return ret;
}
NTSTATUS WINAPI wow64_NtGdiGetNearestPaletteIndex( UINT *args )
{
HPALETTE hpalette = get_handle( &args );
COLORREF color = get_ulong( &args );
return NtGdiGetNearestPaletteIndex( hpalette, color );
}
NTSTATUS WINAPI wow64_NtGdiGetPath( UINT *args )
{
HDC hdc = get_handle( &args );
POINT *points = get_ptr( &args );
BYTE *types = get_ptr( &args );
INT size = get_ulong( &args );
return NtGdiGetPath( hdc, points, types, size );
}
NTSTATUS WINAPI wow64_NtGdiGetRegionData( UINT *args )
{
HRGN hrgn = get_ptr( &args );
DWORD count = get_ulong( &args );
RGNDATA *data = get_ptr( &args );
return NtGdiGetRegionData( hrgn, count, data );
}
NTSTATUS WINAPI wow64_NtGdiGetRgnBox( UINT *args )
{
HRGN hrgn = get_handle( &args );
RECT *rect = get_ptr( &args );
return NtGdiGetRgnBox( hrgn, rect );
}
NTSTATUS WINAPI wow64_NtGdiGetSpoolMessage( UINT *args )
{
void *ptr1 = get_ptr( &args );
DWORD data2 = get_ulong( &args );
void *ptr3 = get_ptr( &args );
DWORD data4 = get_ulong( &args );
return NtGdiGetSpoolMessage( ptr1, data2, ptr3, data4 );
}
NTSTATUS WINAPI wow64_NtGdiGetSystemPaletteUse( UINT *args )
{
HDC hdc = get_handle( &args );
return NtGdiGetSystemPaletteUse( hdc );
}
NTSTATUS WINAPI wow64_NtGdiGetTransform( UINT *args )
{
HDC hdc = get_handle( &args );
DWORD which = get_ulong( &args );
XFORM *xform = get_ptr( &args );
return NtGdiGetTransform( hdc, which, xform );
}
NTSTATUS WINAPI wow64_NtGdiHfontCreate( UINT *args )
{
const void *logfont = get_ptr( &args );
ULONG unk2 = get_ulong( &args );
ULONG unk3 = get_ulong( &args );
ULONG unk4 = get_ulong( &args );
void *data = get_ptr( &args );
return HandleToUlong( NtGdiHfontCreate( logfont, unk2, unk3, unk4, data ));
}
NTSTATUS WINAPI wow64_NtGdiInitSpool( UINT *args )
{
return NtGdiInitSpool();
}
NTSTATUS WINAPI wow64_NtGdiOffsetRgn( UINT *args )
{
HRGN hrgn = get_handle( &args );
INT x = get_ulong( &args );
INT y = get_ulong( &args );
return NtGdiOffsetRgn( hrgn, x, y );
}
NTSTATUS WINAPI wow64_NtGdiPathToRegion( UINT *args )
{
HDC hdc = get_handle( &args );
return HandleToUlong( NtGdiPathToRegion( hdc ));
}
NTSTATUS WINAPI wow64_NtGdiPtInRegion( UINT *args )
{
HRGN hrgn = get_handle( &args );
INT x = get_ulong( &args );
INT y = get_ulong( &args );
return NtGdiPtInRegion( hrgn, x, y );
}
NTSTATUS WINAPI wow64_NtGdiRectInRegion( UINT *args )
{
HRGN hrgn = get_handle( &args );
const RECT *rect = get_ptr( &args );
return NtGdiRectInRegion( hrgn, rect );
}
NTSTATUS WINAPI wow64_NtGdiRemoveFontMemResourceEx( UINT *args )
{
HANDLE handle = get_handle( &args );
return NtGdiRemoveFontMemResourceEx( handle );
}
NTSTATUS WINAPI wow64_NtGdiRemoveFontResourceW( UINT *args )
{
const WCHAR *str = get_ptr( &args );
ULONG size = get_ulong( &args );
ULONG files = get_ulong( &args );
DWORD flags = get_ulong( &args );
DWORD tid = get_ulong( &args );
void *dv = get_ptr( &args );
return NtGdiRemoveFontResourceW( str, size, files, flags, tid, dv );
}
NTSTATUS WINAPI wow64_NtGdiSaveDC( UINT *args )
{
HDC hdc = get_handle( &args );
return NtGdiSaveDC( hdc );
}
NTSTATUS WINAPI wow64_NtGdiSetBitmapBits( UINT *args )
{
HBITMAP hbitmap = get_handle( &args );
LONG count = get_ulong( &args );
const void *bits = get_ptr( &args );
return NtGdiSetBitmapBits( hbitmap, count, bits );
}
NTSTATUS WINAPI wow64_NtGdiSetBitmapDimension( UINT *args )
{
HBITMAP hbitmap = get_handle( &args );
INT x = get_ulong( &args );
INT y = get_ulong( &args );
SIZE *prev_size = get_ptr( &args );
return NtGdiSetBitmapDimension( hbitmap, x, y, prev_size );
}
NTSTATUS WINAPI wow64_NtGdiSetBrushOrg( UINT *args )
{
HDC hdc = get_handle( &args );
INT x = get_ulong( &args );
INT y = get_ulong( &args );
POINT *prev_org = get_ptr( &args );
return NtGdiSetBrushOrg( hdc, x, y, prev_org );
}
NTSTATUS WINAPI wow64_NtGdiSetColorAdjustment( UINT *args )
{
HDC hdc = get_handle( &args );
const COLORADJUSTMENT *ca = get_ptr( &args );
return NtGdiSetColorAdjustment( hdc, ca );
}
NTSTATUS WINAPI wow64_NtGdiSetMagicColors( UINT *args )
{
HDC hdc = get_handle( &args );
DWORD magic = get_ulong( &args );
ULONG index = get_ulong( &args );
return NtGdiSetMagicColors( hdc, magic, index );
}
NTSTATUS WINAPI wow64_NtGdiSetMetaRgn( UINT *args )
{
HDC hdc = get_handle( &args );
return NtGdiSetMetaRgn( hdc );
}
NTSTATUS WINAPI wow64_NtGdiSetPixelFormat( UINT *args )
{
HDC hdc = get_handle( &args );
INT format = get_ulong( &args );
return NtGdiSetPixelFormat( hdc, format );
}
NTSTATUS WINAPI wow64_NtGdiSetRectRgn( UINT *args )
{
HRGN hrgn = get_handle( &args );
INT left = get_ulong( &args );
INT top = get_ulong( &args );
INT right = get_ulong( &args );
INT bottom = get_ulong( &args );
return NtGdiSetRectRgn( hrgn, left, top, right, bottom );
}
NTSTATUS WINAPI wow64_NtGdiSetTextJustification( UINT *args )
{
HDC hdc = get_handle( &args );
INT extra = get_ulong( &args );
INT breaks = get_ulong( &args );
return NtGdiSetTextJustification( hdc, extra, breaks );
}
NTSTATUS WINAPI wow64_NtGdiSetVirtualResolution( UINT *args )
{
HDC hdc = get_handle( &args );
DWORD horz_res = get_ulong( &args );
DWORD vert_res = get_ulong( &args );
DWORD horz_size = get_ulong( &args );
DWORD vert_size = get_ulong( &args );
return NtGdiSetVirtualResolution( hdc, horz_res, vert_res, horz_size, vert_size );
}
NTSTATUS WINAPI wow64_NtGdiSwapBuffers( UINT *args )
{
HDC hdc = get_handle( &args );
return NtGdiSwapBuffers( hdc );
}
NTSTATUS WINAPI wow64_NtGdiTransformPoints( UINT *args )
{
HDC hdc = get_handle( &args );
const POINT *points_in = get_ptr( &args );
POINT *points_out = get_ptr( &args );
INT count = get_ulong( &args );
UINT mode = get_ulong( &args );
return NtGdiTransformPoints( hdc, points_in, points_out, count, mode );
}