Dawser Stevens dawser at gmx.com
Thu Feb 7 07:48:57 CST 2019


I have been debugging an issue regarding the clipboard, and I would be 
thankful if anyone could confirm what I suspect.

When an application requests data from the clipboard in some specific 
format, the data may come from the ole clipboard or the general one 
(user32<->wineserver). If the piece of data comes from the general 
clipboard through `wineserver`, the ole clipboard still considers the 
format as needing to be "TYMED" (ole32/clipboard.c:get_priv_data(): call 
get_tymed_from_nonole_cf(cf)). Most formats available in the general 
clipboard are not included in the switch statement, which makes them 
unavailable. However, the full data is transferred by `wineserver`, so 
if the default in `get_tymed_from_nonole_cf` were TYMED_HGLOBAL, the ole 
clipboard would duplicate the transferred data with a global handle, and 
applications could use those formats that have been put there.

Is there a reason why TYMED_HGLOBAL is not the default for unrecognized 
formats? I am still learning the code, but in my limited testing I have 
still not seen failures when I make it so.

Thank you.

More information about the wine-devel mailing list