From f9f9aade69d9b56570d69c4631e84eb4adec79f8 Mon Sep 17 00:00:00 2001 From: Simon Rozman Date: Tue, 10 Oct 2023 16:50:35 +0200 Subject: [PATCH] Add clipboard_opener Signed-off-by: Simon Rozman --- include/WinStd/Win.h | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/include/WinStd/Win.h b/include/WinStd/Win.h index f8ac1ab1..677ae684 100644 --- a/include/WinStd/Win.h +++ b/include/WinStd/Win.h @@ -1614,6 +1614,34 @@ namespace winstd } }; + /// + /// Clipboard management + /// + class clipboard_opener + { + public: + /// + /// Opens the clipboard for examination and prevents other applications from modifying the clipboard content + /// + /// \sa [OpenClipboard function](https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-openclipboard) + /// + clipboard_opener(_In_opt_ HWND hWndNewOwner = NULL) + { + if (!OpenClipboard(hWndNewOwner)) + throw win_runtime_error("OpenClipboard failed"); + } + + /// + /// Closes the clipboard + /// + /// \sa [CloseClipboard function](https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-closeclipboard) + /// + virtual ~clipboard_opener() + { + CloseClipboard(); + } + }; + /// /// Console control handler stack management ///