[PATCH] winedump: Dump the distance array for EMR_EXTTEXTOUTW records.

Zhiyi Zhang zzhang at codeweavers.com
Mon May 17 04:09:27 CDT 2021


Signed-off-by: Zhiyi Zhang <zzhang at codeweavers.com>
---
 tools/winedump/emf.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/tools/winedump/emf.c b/tools/winedump/emf.c
index 2f54f73153b..50c3ad092ea 100644
--- a/tools/winedump/emf.c
+++ b/tools/winedump/emf.c
@@ -378,6 +378,7 @@ static int dump_emfrecord(void)
     case EMR_EXTTEXTOUTW:
     {
         const EMREXTTEXTOUTW *etoW = PRD(offset, sizeof(*etoW));
+        const int *dx = (const int *)((const BYTE *)etoW + etoW->emrtext.offDx);
 
         printf("%-20s %08x\n", "EMR_EXTTEXTOUTW", length);
         printf("bounds (%d,%d - %d,%d) mode %#x x_scale %f y_scale %f pt (%d,%d) rect (%d,%d - %d,%d) flags %#x, %s\n",
@@ -388,6 +389,14 @@ static int dump_emfrecord(void)
                etoW->emrtext.rcl.right, etoW->emrtext.rcl.bottom,
                etoW->emrtext.fOptions,
                debugstr_wn((LPCWSTR)((const BYTE *)etoW + etoW->emrtext.offString), etoW->emrtext.nChars));
+        printf("dx_offset %u {", etoW->emrtext.offDx);
+        for (i = 0; i < etoW->emrtext.nChars; ++i)
+        {
+            printf("%d", dx[i]);
+            if (i != etoW->emrtext.nChars - 1)
+                putchar(',');
+        }
+        printf("}\n");
 	break;
     }
 
-- 
2.30.2



More information about the wine-devel mailing list