2014-02-11 15:14:15 -06:00
|
|
|
// 11 february 2014
|
|
|
|
//package ui
|
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"syscall"
|
|
|
|
"unsafe"
|
|
|
|
"runtime"
|
|
|
|
)
|
|
|
|
|
|
|
|
var uitask chan *uimsg
|
|
|
|
|
|
|
|
type uimsg struct {
|
|
|
|
call *syscall.LazyProc
|
|
|
|
p []uintptr
|
|
|
|
ret chan uiret
|
|
|
|
}
|
|
|
|
|
|
|
|
type uiret struct {
|
|
|
|
ret uintptr
|
|
|
|
err error
|
|
|
|
}
|
|
|
|
|
|
|
|
func ui(initDone chan error) {
|
|
|
|
runtime.LockOSThread()
|
|
|
|
|
|
|
|
uitask = make(chan *uimsg)
|
2014-02-11 15:25:27 -06:00
|
|
|
initDone <- doWindowsInit()
|
2014-02-11 15:14:15 -06:00
|
|
|
|
|
|
|
for m := range uitask {
|
|
|
|
r1, _, err := m.msg.Call(m.p...)
|
|
|
|
m.ret <- uiret{
|
|
|
|
ret: r1,
|
|
|
|
err: err,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|