Пример #1
0
        public void RegisterClipboardEvent(string Purpose, Action OnClipboardDraw)
        {
            ClipboardEventListenerWindow clipboardEventListenerWindow = RegisteredClipboardEventListeners.SingleOrDefault(o => o.ClipboardEvent.Purpose == Purpose);

            if (clipboardEventListenerWindow == null)
            {
                ClipboardEvent clipboardEvent = new ClipboardEvent() { Purpose = Purpose, OnClipboardDraw = OnClipboardDraw };
                ClipboardEventListenerWindow window = new ClipboardEventListenerWindow(clipboardEvent);
                IntPtr windowHandle = window.Handle;
                bool issuccess = WinApiMethods.AddClipboardFormatListener(windowHandle);
                if (!issuccess)
                {
                    Win32Exception ex = new Win32Exception(Marshal.GetLastWin32Error());

                    throw ex;

                }
                else
                {
                    RegisteredClipboardEventListeners.Add(clipboardEventListenerWindow);
                }
            }
            else
            {
                throw new AlreadyMappedException(clipboardEventListenerWindow.ClipboardEvent);
            }
        }
Пример #2
0
        public void UnRegisterClipboardEvent(string Purpose)
        {
            ClipboardEventListenerWindow clipboardEventListenerWindow = RegisteredClipboardEventListeners.SingleOrDefault(o => o.ClipboardEvent.Purpose == Purpose);

            if (clipboardEventListenerWindow != null)
            {
                bool issuccess = WinApiMethods.RemoveClipboardFormatListener(clipboardEventListenerWindow.Handle);
                if (!issuccess)
                {
                    Win32Exception ex = new Win32Exception(Marshal.GetLastWin32Error());

                    throw ex;

                }
                else
                {
                    RegisteredClipboardEventListeners.Remove(clipboardEventListenerWindow);
                }
            }
            else
            {
                throw new ClipboardEventNotFoundException(Purpose);
            }
        }