On Sep 8, 2016, at 10:37 PM, Ken Thomases ken@codeweavers.com wrote:
What is the plan with respect to replacing the synthesized content? As user32 currently stands, GetClipboardData() can call render_synthesized_format() which calls SetClipboardData(). After that, how do you distinguish between CF_TEXT synthesized from CF_UNICODETEXT and app-provided CF_TEXT? If an app does SetClipboardData(CF_UNICODETEXT, L"string one"), then GetClipboardData(CF_TEXT) gives "string one", then the app calls SetClipboardData(CF_UNICODETEXT, L"string two"), but GetClipboardData(CF_TEXT) still gives "string one".
Hmm. Actually, to my surprise, this is exactly how Windows behaves. I guess the synthesized format is fixed on the first GetClipboardData() and is not re-synthesized even if the source format is changed.
-Ken