summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPietro Gagliardi <[email protected]>2014-02-12 21:11:21 -0500
committerPietro Gagliardi <[email protected]>2014-02-12 21:11:21 -0500
commit403ca883162c9e756d38fc7d1cc96d5d2dd26850 (patch)
treeda5d0e692d52f8a2f815b3508d712421b3bd828f
parentbccbc45bcfae9e3f80ec373c38965a8c00d3ed0e (diff)
Whoops, class registration now has to go through the UI task.
-rw-r--r--stdwndclass_windows.go13
1 files changed, 10 insertions, 3 deletions
diff --git a/stdwndclass_windows.go b/stdwndclass_windows.go
index 38031e7..ad99ce4 100644
--- a/stdwndclass_windows.go
+++ b/stdwndclass_windows.go
@@ -97,9 +97,16 @@ func registerStdWndClass(s *sysData) (newClassName string, err error) {
hbrBackground: _HBRUSH(_COLOR_BTNFACE + 1),
}
- r1, _, err = user32.NewProc("RegisterClassW").Call(uintptr(unsafe.Pointer(wc)))
- if r1 == 0 { // failure
- return "", err
+ ret := make(chan uiret)
+ defer close(ret)
+ uitask <- &uimsg{
+ call: _registerClass,
+ p: []uintptr{uintptr(unsafe.Pointer(wc))},
+ ret: ret,
+ }
+ r := <-ret
+ if r.ret == 0 { // failure
+ return "", r.err
}
return newClassName, nil
}