It seems that on Vista DT_MODIFYSTRING no longer modifies lpchText past the end of the string (zero terminator) so previous documentation about modifing +4 characters is no longer valid.
The result is that the appended ellipses at the end of the string might be less than 3 although 3 ellipses get painted on the DC.
Tip: Combine DT_MODIFYSTRING and DT_CALCRECT to prevent painting but get the string modified.
cheers,
</wqw>