diff options
author | Egor Tensin <Egor.Tensin@gmail.com> | 2017-01-25 05:58:46 +0300 |
---|---|---|
committer | Egor Tensin <Egor.Tensin@gmail.com> | 2017-01-25 05:58:46 +0300 |
commit | d3e2eeb7892e132120174de5567d932d83c97218 (patch) | |
tree | de2fa96af0f64764e7abf7b9482078e19502bae9 /src/WindowsEnv/Utils.hs | |
parent | add Portability to module descriptions (diff) | |
download | windows-env-d3e2eeb7892e132120174de5567d932d83c97218.tar.gz windows-env-d3e2eeb7892e132120174de5567d932d83c97218.zip |
rename namespace 'Windows' to 'WindowsEnv'
Diffstat (limited to 'src/WindowsEnv/Utils.hs')
-rw-r--r-- | src/WindowsEnv/Utils.hs | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/WindowsEnv/Utils.hs b/src/WindowsEnv/Utils.hs new file mode 100644 index 0000000..c852229 --- /dev/null +++ b/src/WindowsEnv/Utils.hs @@ -0,0 +1,30 @@ +-- | +-- Copyright : (c) 2016 Egor Tensin <Egor.Tensin@gmail.com> +-- License : MIT +-- Maintainer : Egor.Tensin@gmail.com +-- Stability : experimental +-- Portability : Windows-only + +module WindowsEnv.Utils + ( notifyEnvironmentUpdate + ) where + +import Foreign.C.Types (CIntPtr(..)) +import qualified Graphics.Win32.GDI.Types as WinAPI +import qualified Graphics.Win32.Message as WinAPI +import qualified System.Win32.Types as WinAPI + +foreign import ccall "Windows.h SendNotifyMessageW" + c_SendNotifyMessage :: WinAPI.HWND -> WinAPI.WindowMessage -> WinAPI.WPARAM -> WinAPI.LPARAM -> IO WinAPI.LRESULT + +notifyEnvironmentUpdate :: IO () +notifyEnvironmentUpdate = + WinAPI.withTString "Environment" $ \lparamPtr -> do + let wparam = 0 + let lparam = fromIntegral $ WinAPI.castPtrToUINTPtr lparamPtr + _ <- c_SendNotifyMessage allWindows messageCode wparam lparam + return () + where + messageCode = WinAPI.wM_WININICHANGE + hWND_BROADCAST = WinAPI.castUINTPtrToPtr 0xffff + allWindows = hWND_BROADCAST |