void ClearClipboard();
void AppendClipboard(const char *format, const byte *data, int length);
void AppendClipboard(const char *format, const String& data);
void AppendClipboard(const char *format, const Value& data, String (*render)(const Value& data));
void AppendClipboard(const char *format, const ClipData& data);
void AppendClipboard(const VectorMap<String, ClipData>& data);
String ReadClipboard(const char *format);
bool IsClipboardAvailable(const char *format);
inline void WriteClipboard(const char *format, const String& data)
{ ClearClipboard(); AppendClipboard(format, data); }
void AppendClipboardText(const String& s);
String ReadClipboardText();
void AppendClipboardUnicodeText(const WString& s);
WString ReadClipboardUnicodeText();
bool IsClipboardAvailableText();
inline void WriteClipboardText(const String& s)
{ ClearClipboard(); AppendClipboardText(s); }
inline void WriteClipboardUnicodeText(const WString& s)
{ ClearClipboard(); AppendClipboardUnicodeText(s); }
template <class T>
inline void AppendClipboardFormat(const T& object) {
AppendClipboard(typeid(T).name(), StoreAsString(const_cast<T&>(object)));
}
template <class T>
inline void WriteClipboardFormat(const T& object) {
ClearClipboard();
AppendClipboardFormat(object);
}
template <class T>
inline bool ReadClipboardFormat(T& object)
{
String s = ReadClipboard(typeid(T).name());
return !IsNull(s) && LoadFromString(object, s);
}
template <class T>
bool IsClipboardFormatAvailable()
{
return IsClipboardAvailable(typeid(T).name());
}
template <class T>
inline T ReadClipboardFormat() {
T object;
ReadClipboardFormat(object);
return object;
}
Image ReadClipboardImage();
void AppendClipboardImage(const Image& img);
inline void WriteClipboardImage(const Image& img)
{ ClearClipboard(); AppendClipboardImage(img); }