https://bugs.winehq.org/show_bug.cgi?id=45273
--- Comment #1 from David dav75uk@yahoo.co.uk --- I believe the problem is that:
GpStatus WINGDIPAPI GdipSetCustomLineCapStrokeCaps(GpCustomLineCap* custom, GpLineCap start, GpLineCap end)
cannot be implemented because GpCustomLineCap does not have anywhere to store the values of the start and end caps.
Novell's implementation: https://stuff.mit.edu/afs/athena/software/mono_v4.9/arch/amd64.../customline...
stores these values in GpCustomLineCap so it's likely wine's structure is incomplete.
I'm guessing somewhere that pen picks up these values and so when GdipWidenPath is called these values now exist. Whether that's enough for the arrow to get drawn remains to be seen.