Jacek Caban jacek@codeweavers.com wrote:
+BOOL metadc_param5( HDC hdc, short func, short param1, short param2,
short param3, short param4, short param5 )
+{
- char buffer[16];
- METARECORD *mr = (METARECORD *)&buffer;
- WORD *params = mr->rdParm;
- mr->rdSize = 8;
- mr->rdFunction = func;
- params[0] = param5;
- params[1] = param4;
- params[2] = param3;
- params[3] = param2;
- params[4] = param1;
- return metadc_record( hdc, mr, mr->rdSize * 2);
+}
sizeof(METARECORD) == 4 + 2 + 2 = 8 bytes, 5 * sizeof(params[0]) = 10 bytes, and buffer[16] won't hold all of these. Wouldn't it be better to use something like sizeof(FIELD_OFFSET(METARECORD, rdParm[5])) instead of hardcoded 16?