Of particular concern is making sure my dynamically allocated memory is being freed. The new data is stored in PSPEN and is allocated when SelectObject (on a wineps.drv device of course) passing a pen and is freed whenever a subsequent pen is selected or the device context is deleted.
I'm just not intimately familiar enough with this part of the API to know for certain that this eliminates all room for leaks.
Thanks! Daniel