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.
More information about the wine-devel