I have a two office add-in which communicates using clipboard, for example: copy and paste table or picture from excel to word. While copy\paste operation running, user can corrupt data in clipboard if he copy something in clipboard. I tried lock clipboard after copy in first application and unlock clipboard before paste in second application.
I can lock Clipboard in one application, but can't unlock it in another application
This is class with wrappers for Clipboard
public class MyClipboard
{
[DllImport("user32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool OpenClipboard(IntPtr hwnd);
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool CloseClipboard();
public void Close()
{
CloseClipboard();
}
public void Open()
{
OpenClipboard(IntPtr.Zero);
}
}
First application :
MyClipboard clipboard = new MyClipboard();
clipboard.Open();
...
Second application :
MyClipboard clipboard = new MyClipboard();
clipboard.Close();
...
What should I do to Open clipboard from one application, and close clipboard from another application?
Thanks!