So I'll just create wrapper functions in gdiobj.c like GDI_LocalAlloc that set CURRENT_DS to GDI_HeapSel, call func and restore CURRENT_DS.
except that you want to call LocalAlloc16 (not LocalAlloc, which have a completly different semantic)... and LocalAlloc16 isn't exported as a 32 bit func...
so either you do a 16 bit call to kernel.LOCALALLOC, or you do a 32 bit call to Kernel32.LocalAlloc16, but you need to add this extra Wine export from kernel32
A+