summaryrefslogtreecommitdiff
path: root/messages.go
diff options
context:
space:
mode:
Diffstat (limited to 'messages.go')
-rw-r--r--messages.go16
1 files changed, 16 insertions, 0 deletions
diff --git a/messages.go b/messages.go
index 4459035..e74b9fa 100644
--- a/messages.go
+++ b/messages.go
@@ -6,6 +6,11 @@ import (
"unsafe"
)
+// SendMessage constants.
+const (
+ HWND_BROADCAST = HWND(0xFFFF)
+)
+
type MSG struct {
Hwnd HWND
Message uint32
@@ -19,6 +24,7 @@ var (
dispatchMessage = user32.NewProc("DispatchMessageW")
getMessage = user32.NewProc("GetMessageW")
postQuitMessage = user32.NewProc("PostQuitMessage")
+ sendMessage = user32.NewProc("SendMessageW")
translateMessage = user32.NewProc("TranslateMessage")
)
@@ -50,6 +56,16 @@ func PostQuitMessage(nExitCode int) (err error) {
}
// TODO handle errors
+func SendMessage(hWnd HWND, Msg uint32, wParam WPARAM, lParam LPARAM) (result LRESULT, err error) {
+ r1, _, _ := sendMessage.Call(
+ uintptr(hWnd),
+ uintptr(Msg),
+ uintptr(wParam),
+ uintptr(lParam))
+ return LRESULT(r1), nil
+}
+
+// TODO handle errors
func TranslateMessage(lpMsg *MSG) (translated bool, err error) {
r1, _, _ := translateMessage.Call(uintptr(unsafe.Pointer(lpMsg)))
return r1 != 0, nil