code: func WaitForSingleObject(handle uintptr, msWait uint32) (bool, error) {
  	r1, _, err := waitForSingleObjectProc.Call(handle, uintptr(uint32(msWait)))
  	switch r1 {
  	case WAIT_ABANDONED, WAIT_TIMEOUT:
  		return false, nil
  	case WAIT_SIGNALED:
  		return true, nil
  	}
  	use(msWait)
  	return false, err
  }
docs: // WaitForSingleObject waits for the passed handle to be signaled.
  // It returns true if the handle was signaled; false otherwise.
  // See https://msdn.microsoft.com/en-us/library/windows/desktop/ms687032(v=vs.85).aspx.