Class ClipboardNative
Provides low level access to the Windows clipboard
Inheritance
Namespace: Dapplo.Windows.Clipboard
Assembly: Dapplo.Windows.Clipboard.dll
Syntax
public static class ClipboardNative : object
Properties
| Improve this Doc View SourceCurrentOwner
Retrieves the current owner
Declaration
public static IntPtr CurrentOwner { get; }
Property Value
Type | Description |
---|---|
IntPtr |
SequenceNumber
Retrieves the current clipboard sequence number, either via GetClipboardSequenceNumber or internally
Declaration
public static uint SequenceNumber { get; }
Property Value
Type | Description |
---|---|
System.UInt32 |
Methods
| Improve this Doc View SourceAvailableFormats()
Enumerate through all formats on the clipboard, assumes the clipboard was already locked.
Declaration
public static IEnumerable<string> AvailableFormats()
Returns
Type | Description |
---|---|
IEnumerable<System.String> | IEnumerable with strings defining the format |
Clear()
Empties the clipboard, this assumes that a lock has already been retrieved.
Declaration
public static void Clear()
GetAsStream(String)
Retrieve the content for the specified format. You will need to "lock" (OpenClipboard) the clipboard before calling this.
Declaration
public static MemoryStream GetAsStream(string format)
Parameters
Type | Name | Description |
---|---|---|
System.String | format | the format to retrieve the content for |
Returns
Type | Description |
---|---|
MemoryStream | MemoryStream |
GetAsUnicodeString(String)
Get a string from the clipboard, this assumes you already locked the clipboard. This always takes the CF_UNICODETEXT format, as Windows automatically converts
Declaration
public static string GetAsUnicodeString(string format = "CF_UNICODETEXT")
Parameters
Type | Name | Description |
---|---|---|
System.String | format |
Returns
Type | Description |
---|---|
System.String | string |
Lock(IntPtr, Int32, Nullable<TimeSpan>, Nullable<TimeSpan>)
Get a global lock to the clipboard
Declaration
public static IDisposable Lock(IntPtr hWnd = null, int retries = 5, TimeSpan? retryInterval = null, TimeSpan? timeout = null)
Parameters
Type | Name | Description |
---|---|---|
IntPtr | hWnd | IntPtr with the windows handle |
System.Int32 | retries | int with the amount of lock attempts are made |
System.Nullable<TimeSpan> | retryInterval | Timespan between retries, default 200ms |
System.Nullable<TimeSpan> | timeout | Timeout for getting the lock |
Returns
Type | Description |
---|---|
IDisposable | IDisposable, which will unlock when Dispose is called |
LockAsync(IntPtr, Int32, Nullable<TimeSpan>, CancellationToken)
Get a global lock to the clipboard
Declaration
public static Task<IDisposable> LockAsync(IntPtr hWnd = null, int retries = 5, TimeSpan? retryInterval = null, CancellationToken cancellationToken = null)
Parameters
Type | Name | Description |
---|---|---|
IntPtr | hWnd | IntPtr with the windows handle |
System.Int32 | retries | int with the amount of lock attempts are made |
System.Nullable<TimeSpan> | retryInterval | Timespan between retries, default 200ms |
CancellationToken | cancellationToken | CancellationToken |
Returns
Type | Description |
---|---|
Task<IDisposable> | IDisposable in a Task, which will unlock when Dispose is called |
RegisterFormat(String)
Register the clipboard format, so we can use it
Declaration
public static void RegisterFormat(string format)
Parameters
Type | Name | Description |
---|---|---|
System.String | format | string with the format to register |
SetAsBytes(Byte[], String)
Place byte[] on the clipboard, this assumes you already locked the clipboard.
Declaration
public static void SetAsBytes(byte[] bytes, string format)
Parameters
Type | Name | Description |
---|---|---|
System.Byte[] | bytes | bytes to place on the clipboard |
System.String | format | format to place the bytes under |
SetAsStream(String, MemoryStream)
Set the content for the specified format. You will need to "lock" (OpenClipboard) the clipboard before calling this.
Declaration
public static void SetAsStream(string format, MemoryStream stream)
Parameters
Type | Name | Description |
---|---|---|
System.String | format | the format to set the content for |
MemoryStream | stream | MemoryStream with the content |
SetAsUnicodeString(String, String)
Place string on the clipboard, this assumes you already locked the clipboard. It uses CF_UNICODETEXT by default, as all other formats are automatically generated from this by Windows.
Declaration
public static void SetAsUnicodeString(string text, string format = "CF_UNICODETEXT")
Parameters
Type | Name | Description |
---|---|---|
System.String | text | string to place on the clipboard |
System.String | format |