Clipboard-1.0.0: System/Windows/Clipboard.hs
-- | Operations over the Windows Clipboard.
module System.Windows.Clipboard
( setClipboardString
, getClipboardString
) where
import Foreign.Ptr (castPtr,nullPtr)
import Foreign.C.String (newCString,peekCString)
import System.Win32.Types (HANDLE)
import Graphics.Win32.GDI.Clip
setClipboardh :: ClipboardFormat -> HANDLE -> IO ()
setClipboardh f h =
do openClipboard nullPtr
emptyClipboard
setClipboardData f h
closeClipboard
getClipboardh :: ClipboardFormat -> IO HANDLE
getClipboardh f =
do openClipboard nullPtr
h <- getClipboardData f
closeClipboard
return h
-- | Set the clipboard content to the given 'String'.
setClipboardString :: String -> IO ()
setClipboardString = (>>= setClipboardh cF_TEXT . castPtr) . newCString
-- | Get the clipboard content as a 'String'.
getClipboardString :: IO String
getClipboardString = getClipboardh cF_TEXT >>= peekCString . castPtr