winedump: Print contents of EMR_INTERSECTCLIPRECT and EMR_EXTSELECTCLIPRGN.
This commit is contained in:
parent
b807c6197a
commit
ae9fe5e36e
|
@ -112,7 +112,18 @@ static int dump_emfrecord(void)
|
||||||
EMRCASE(EMR_MOVETOEX);
|
EMRCASE(EMR_MOVETOEX);
|
||||||
EMRCASE(EMR_SETMETARGN);
|
EMRCASE(EMR_SETMETARGN);
|
||||||
EMRCASE(EMR_EXCLUDECLIPRECT);
|
EMRCASE(EMR_EXCLUDECLIPRECT);
|
||||||
EMRCASE(EMR_INTERSECTCLIPRECT);
|
|
||||||
|
case EMR_INTERSECTCLIPRECT:
|
||||||
|
{
|
||||||
|
const EMRINTERSECTCLIPRECT *clip = (const EMRINTERSECTCLIPRECT *)PRD(offset, sizeof(*clip));
|
||||||
|
|
||||||
|
printf("%-20s %08x\n", "EMR_INTERSECTCLIPRECT", length);
|
||||||
|
printf("rect %d,%d - %d, %d\n",
|
||||||
|
clip->rclClip.left, clip->rclClip.top,
|
||||||
|
clip->rclClip.right, clip->rclClip.bottom);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
EMRCASE(EMR_SCALEVIEWPORTEXTEX);
|
EMRCASE(EMR_SCALEVIEWPORTEXTEX);
|
||||||
EMRCASE(EMR_SCALEWINDOWEXTEX);
|
EMRCASE(EMR_SCALEWINDOWEXTEX);
|
||||||
EMRCASE(EMR_SAVEDC);
|
EMRCASE(EMR_SAVEDC);
|
||||||
|
@ -156,7 +167,25 @@ static int dump_emfrecord(void)
|
||||||
EMRCASE(EMR_FRAMERGN);
|
EMRCASE(EMR_FRAMERGN);
|
||||||
EMRCASE(EMR_INVERTRGN);
|
EMRCASE(EMR_INVERTRGN);
|
||||||
EMRCASE(EMR_PAINTRGN);
|
EMRCASE(EMR_PAINTRGN);
|
||||||
EMRCASE(EMR_EXTSELECTCLIPRGN);
|
|
||||||
|
case EMR_EXTSELECTCLIPRGN:
|
||||||
|
{
|
||||||
|
const EMREXTSELECTCLIPRGN *clip = (const EMREXTSELECTCLIPRGN *)PRD(offset, sizeof(*clip));
|
||||||
|
const RGNDATA *data = (RGNDATA *)clip->RgnData;
|
||||||
|
DWORD i, rc_count = 0;
|
||||||
|
RECT *rc;
|
||||||
|
|
||||||
|
if (length >= sizeof(*clip) + sizeof(*data))
|
||||||
|
rc_count = data->rdh.nCount;
|
||||||
|
|
||||||
|
printf("%-20s %08x\n", "EMREXTSELECTCLIPRGN", length);
|
||||||
|
printf("mode %d, rects %d\n", clip->iMode, rc_count);
|
||||||
|
for (i = 0, rc = (RECT *)data->Buffer; i < rc_count; i++, rc++)
|
||||||
|
printf(" (%d,%d)-(%d,%d)", rc->left, rc->top, rc->right, rc->bottom);
|
||||||
|
if (rc_count != 0) printf("\n");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
EMRCASE(EMR_BITBLT);
|
EMRCASE(EMR_BITBLT);
|
||||||
EMRCASE(EMR_STRETCHBLT);
|
EMRCASE(EMR_STRETCHBLT);
|
||||||
EMRCASE(EMR_MASKBLT);
|
EMRCASE(EMR_MASKBLT);
|
||||||
|
@ -166,7 +195,7 @@ static int dump_emfrecord(void)
|
||||||
|
|
||||||
case EMR_EXTCREATEFONTINDIRECTW:
|
case EMR_EXTCREATEFONTINDIRECTW:
|
||||||
{
|
{
|
||||||
const EMREXTCREATEFONTINDIRECTW *pf = (const EMREXTCREATEFONTINDIRECTW *)PRD(offset, 4);
|
const EMREXTCREATEFONTINDIRECTW *pf = (const EMREXTCREATEFONTINDIRECTW *)PRD(offset, sizeof(*pf));
|
||||||
const LOGFONTW *plf = &pf->elfw.elfLogFont;
|
const LOGFONTW *plf = &pf->elfw.elfLogFont;
|
||||||
|
|
||||||
printf("%-20s %08x\n", "EMR_EXTCREATEFONTINDIRECTW", length);
|
printf("%-20s %08x\n", "EMR_EXTCREATEFONTINDIRECTW", length);
|
||||||
|
@ -187,7 +216,7 @@ static int dump_emfrecord(void)
|
||||||
|
|
||||||
case EMR_EXTTEXTOUTW:
|
case EMR_EXTTEXTOUTW:
|
||||||
{
|
{
|
||||||
const EMREXTTEXTOUTW *etoW = (const EMREXTTEXTOUTW *)PRD(offset, 4);
|
const EMREXTTEXTOUTW *etoW = (const EMREXTTEXTOUTW *)PRD(offset, sizeof(*etoW));
|
||||||
|
|
||||||
printf("%-20s %08x\n", "EMR_EXTTEXTOUTW", length);
|
printf("%-20s %08x\n", "EMR_EXTTEXTOUTW", length);
|
||||||
printf("pt (%d,%d) rect (%d,%d - %d,%d) flags %#x, %s\n",
|
printf("pt (%d,%d) rect (%d,%d - %d,%d) flags %#x, %s\n",
|
||||||
|
|
Loading…
Reference in New Issue