-
Notifications
You must be signed in to change notification settings - Fork 1
/
Clipboarding.cs
49 lines (43 loc) · 1.67 KB
/
Clipboarding.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
using System.Windows.Forms;
namespace Wlipper
{
/// <summary>
/// Provides access to the clipboard's content.
/// </summary>
class Clipboarding
{
/// <summary>
/// Writes given text to the clipboard.
/// </summary>
public static void SetClipboardTextContent(bool formatted, object[] data)
{
IDataObject dataObject = new DataObject();
dataObject.SetData(DataFormats.UnicodeText, data[0]);
if (formatted)
{
dataObject.SetData(DataFormats.Rtf, data[1]);
dataObject.SetData(DataFormats.Html, data[2]);
}
Clipboard.SetDataObject(dataObject);
}
/// <summary>
/// Reads and returns text from the clipboard.
/// If data in clipboard is not of unicode text format an empty string will be returned.
/// </summary>
public static object[] GetClipboardTextContent()
{
// 0 => UnicodeText, 1 => RTF, 2 => HTML
object[] objectFormats = new object[3];
IDataObject dataObject = Clipboard.GetDataObject();
if (dataObject.GetDataPresent(DataFormats.UnicodeText))
{
objectFormats[0] = dataObject.GetData(DataFormats.UnicodeText);
if (dataObject.GetDataPresent(DataFormats.Rtf))
objectFormats[1] = dataObject.GetData(DataFormats.Rtf);
if (dataObject.GetDataPresent(DataFormats.Html))
objectFormats[2] = dataObject.GetData(DataFormats.Html);
}
return objectFormats;
}
}
}