blob: 6fa1f0edc86eaff96b397a4f6dc74c3e40b3378c (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
{-
- Copyright 2016 Egor Tensin <Egor.Tensin@gmail.com>
- This file is licensed under the terms of the MIT License.
- See LICENSE.txt for details.
-}
module WindowsUtils
( notifyEnvironmentUpdate
) where
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 "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
|