[GDI32] Fix msvc build errors.

This commit is contained in:
James Tabor 2021-09-27 17:30:40 -05:00
parent fc16259faf
commit d4b2c97b67
2 changed files with 22 additions and 11 deletions

View file

@ -133,7 +133,8 @@ static UINT get_bitmap_info( HDC *hdc, HBITMAP *bitmap, BITMAPINFO *info )
} }
else else
{ {
unsigned char dib_info_buffer[FIELD_OFFSET(BITMAPINFO, bmiColors[256])]; //unsigned char dib_info_buffer[FIELD_OFFSET(BITMAPINFO, bmiColors[256])];
unsigned char dib_info_buffer[sizeof(BITMAPINFO) + 255 * sizeof(RGBQUAD)];
BITMAPINFO *dib_info = (BITMAPINFO *)dib_info_buffer; BITMAPINFO *dib_info = (BITMAPINFO *)dib_info_buffer;
BITMAP bmp = dib.dsBm; BITMAP bmp = dib.dsBm;
HPALETTE palette; HPALETTE palette;
@ -275,7 +276,8 @@ static DWORD emfdc_create_brush( struct emf *emf, HBRUSH brush )
case BS_DIBPATTERN: case BS_DIBPATTERN:
{ {
EMRCREATEDIBPATTERNBRUSHPT *emr; EMRCREATEDIBPATTERNBRUSHPT *emr;
char buffer[FIELD_OFFSET( BITMAPINFO, bmiColors[256] )]; //char buffer[FIELD_OFFSET( BITMAPINFO, bmiColors[256] )];
char buffer[sizeof(BITMAPINFO) + 255 * sizeof(RGBQUAD)];
BITMAPINFO *info = (BITMAPINFO *)buffer; BITMAPINFO *info = (BITMAPINFO *)buffer;
DWORD info_size; DWORD info_size;
UINT usage; UINT usage;
@ -1476,7 +1478,8 @@ BOOL EMFDC_MaskBlt( WINEDC *dc_attr, INT x_dst, INT y_dst, INT width_dst, INT he
HDC hdc_src, INT x_src, INT y_src, HBITMAP mask, HDC hdc_src, INT x_src, INT y_src, HBITMAP mask,
INT x_mask, INT y_mask, DWORD rop ) INT x_mask, INT y_mask, DWORD rop )
{ {
unsigned char mask_info_buffer[FIELD_OFFSET(BITMAPINFO, bmiColors[256])]; //unsigned char mask_info_buffer[FIELD_OFFSET(BITMAPINFO, bmiColors[256])];
unsigned char mask_info_buffer[sizeof(BITMAPINFO) + 255 * sizeof(RGBQUAD)];
BITMAPINFO *mask_bits_info = (BITMAPINFO *)mask_info_buffer; BITMAPINFO *mask_bits_info = (BITMAPINFO *)mask_info_buffer;
struct emf *emf = dc_attr->emf; struct emf *emf = dc_attr->emf;
BITMAPINFO mask_info = {{ sizeof( mask_info.bmiHeader ) }}; BITMAPINFO mask_info = {{ sizeof( mask_info.bmiHeader ) }};
@ -1581,7 +1584,8 @@ err:
BOOL EMFDC_PlgBlt( WINEDC *dc_attr, const POINT *points, HDC hdc_src, INT x_src, INT y_src, BOOL EMFDC_PlgBlt( WINEDC *dc_attr, const POINT *points, HDC hdc_src, INT x_src, INT y_src,
INT width, INT height, HBITMAP mask, INT x_mask, INT y_mask ) INT width, INT height, HBITMAP mask, INT x_mask, INT y_mask )
{ {
unsigned char mask_info_buffer[FIELD_OFFSET(BITMAPINFO, bmiColors[256])]; //unsigned char mask_info_buffer[FIELD_OFFSET(BITMAPINFO, bmiColors[256])];
unsigned char mask_info_buffer[sizeof(BITMAPINFO) + 255 * sizeof(RGBQUAD)];
BITMAPINFO *mask_bits_info = (BITMAPINFO *)mask_info_buffer; BITMAPINFO *mask_bits_info = (BITMAPINFO *)mask_info_buffer;
struct emf *emf = dc_attr->emf; struct emf *emf = dc_attr->emf;
BITMAPINFO mask_info = {{ sizeof( mask_info.bmiHeader ) }}; BITMAPINFO mask_info = {{ sizeof( mask_info.bmiHeader ) }};

View file

@ -114,7 +114,8 @@ static BOOL metadc_param1( HDC hdc, short func, short param )
static BOOL metadc_param2( HDC hdc, short func, short param1, short param2 ) static BOOL metadc_param2( HDC hdc, short func, short param1, short param2 )
{ {
char buffer[FIELD_OFFSET(METARECORD, rdParm[2])]; //char buffer[FIELD_OFFSET(METARECORD, rdParm[2])];
char buffer[10];
METARECORD *mr = (METARECORD *)&buffer; METARECORD *mr = (METARECORD *)&buffer;
mr->rdSize = sizeof(buffer) / sizeof(WORD); mr->rdSize = sizeof(buffer) / sizeof(WORD);
@ -127,7 +128,8 @@ static BOOL metadc_param2( HDC hdc, short func, short param1, short param2 )
static BOOL metadc_param4( HDC hdc, short func, short param1, short param2, static BOOL metadc_param4( HDC hdc, short func, short param1, short param2,
short param3, short param4 ) short param3, short param4 )
{ {
char buffer[FIELD_OFFSET(METARECORD, rdParm[4])]; //char buffer[FIELD_OFFSET(METARECORD, rdParm[4])];
char buffer[14];
METARECORD *mr = (METARECORD *)&buffer; METARECORD *mr = (METARECORD *)&buffer;
mr->rdSize = sizeof(buffer) / sizeof(WORD); mr->rdSize = sizeof(buffer) / sizeof(WORD);
@ -142,7 +144,8 @@ static BOOL metadc_param4( HDC hdc, short func, short param1, short param2,
static BOOL metadc_param5( HDC hdc, short func, short param1, short param2, static BOOL metadc_param5( HDC hdc, short func, short param1, short param2,
short param3, short param4, short param5 ) short param3, short param4, short param5 )
{ {
char buffer[FIELD_OFFSET(METARECORD, rdParm[5])]; //char buffer[FIELD_OFFSET(METARECORD, rdParm[5])];
char buffer[16];
METARECORD *mr = (METARECORD *)&buffer; METARECORD *mr = (METARECORD *)&buffer;
mr->rdSize = sizeof(buffer) / sizeof(WORD); mr->rdSize = sizeof(buffer) / sizeof(WORD);
@ -159,7 +162,8 @@ static BOOL metadc_param6( HDC hdc, short func, short param1, short param2,
short param3, short param4, short param5, short param3, short param4, short param5,
short param6 ) short param6 )
{ {
char buffer[FIELD_OFFSET(METARECORD, rdParm[6])]; //char buffer[FIELD_OFFSET(METARECORD, rdParm[6])];
char buffer[18];
METARECORD *mr = (METARECORD *)&buffer; METARECORD *mr = (METARECORD *)&buffer;
mr->rdSize = sizeof(buffer) / sizeof(WORD); mr->rdSize = sizeof(buffer) / sizeof(WORD);
@ -177,7 +181,8 @@ static BOOL metadc_param8( HDC hdc, short func, short param1, short param2,
short param3, short param4, short param5, short param3, short param4, short param5,
short param6, short param7, short param8) short param6, short param7, short param8)
{ {
char buffer[FIELD_OFFSET(METARECORD, rdParm[8])]; //char buffer[FIELD_OFFSET(METARECORD, rdParm[8])];
char buffer[22];
METARECORD *mr = (METARECORD *)&buffer; METARECORD *mr = (METARECORD *)&buffer;
mr->rdSize = sizeof(buffer) / sizeof(WORD); mr->rdSize = sizeof(buffer) / sizeof(WORD);
@ -554,7 +559,8 @@ static INT16 metadc_create_brush( struct metadc *metadc, HBRUSH brush )
case BS_PATTERN: case BS_PATTERN:
case BS_DIBPATTERN: case BS_DIBPATTERN:
{ {
char buffer[FIELD_OFFSET( BITMAPINFO, bmiColors[256] )]; //char buffer[FIELD_OFFSET( BITMAPINFO, bmiColors[256] )];
char buffer[sizeof(BITMAPINFO) + 255 * sizeof(RGBQUAD)];
BITMAPINFO *dst_info, *src_info = (BITMAPINFO *)buffer; BITMAPINFO *dst_info, *src_info = (BITMAPINFO *)buffer;
DWORD info_size; DWORD info_size;
UINT usage; UINT usage;
@ -1118,7 +1124,8 @@ static HFONT METADC_SelectFont( HDC hdc, HFONT hfont )
static UINT16 metadc_create_pen( struct metadc *metadc, HPEN pen, LOGPEN16 *logpen ) static UINT16 metadc_create_pen( struct metadc *metadc, HPEN pen, LOGPEN16 *logpen )
{ {
char buffer[FIELD_OFFSET(METARECORD, rdParm[sizeof(*logpen) / sizeof(WORD)])]; //char buffer[FIELD_OFFSET(METARECORD, rdParm[sizeof(*logpen) / sizeof(WORD)])];
char buffer[sizeof(METARECORD) - 2 + sizeof(*logpen)];
METARECORD *mr = (METARECORD *)&buffer; METARECORD *mr = (METARECORD *)&buffer;
mr->rdSize = sizeof(buffer) / sizeof(WORD); mr->rdSize = sizeof(buffer) / sizeof(WORD);