From 403ca883162c9e756d38fc7d1cc96d5d2dd26850 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Wed, 12 Feb 2014 21:11:21 -0500 Subject: [PATCH] Whoops, class registration now has to go through the UI task. --- stdwndclass_windows.go | 13 ++++++++++--- 1 file 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 }