Sorry, I'm only know a little English.
I just read the title.
MSDN:
The system implicitly converts data between certain clipboard formats: if a window requests data in a format that is not on the clipboard, the system converts an available format to the requested format. The system can convert data as indicated in the following table.
Clipboard Format | Conversion Format | Platform Support
CF_OEMTEXT | CF_TEXT | Windows NT/Windows 2000, Windows 95/Windows 98/Windows Me
CF_OEMTEXT | CF_UNICODETEXT | Windows NT/Windows 2000
CF_TEXT | CF_OEMTEXT | Windows NT/Windows 2000, Windows 95/Windows 98/Windows Me
CF_TEXT | CF_UNICODETEXT | Windows NT/Windows 2000
CF_UNICODETEXT | CF_OEMTEXT | Windows NT/Windows 2000
CF_UNICODETEXT | CF_TEXT | Windows NT/Windows 2000
Let me have a simple try on the windows xp:
SetClipboardData(, CF_TEXT);
IsClipboardFormatAvailable(CF_TEXT); IsClipboardFormatAvailable(CF_UNICODETEXT); GetClipboardData(CF_TEXT); GetClipboardData(CF_UNICODETEXT);
but I test on the windows 98, if you SetClipboardData with CF_TEXT, then you must GetClipboardData with CF_TEXT, and if you SetClipboardData with CF_UNICODETEXT, you must GetClipboardData with CF_UNICODETEXT. when I SetClipboardData with CF_UNICODETEXT, the notepad(win98) can't paste text from clipboard.
so, if you wanna support the windows 98, you must SetClipboardData with CF_TEXT, else you can use any one of them. I recommend you use unicode.