4

I am subclassing a window, and I process the WM_TOUCH messages.

When I receive a WM_TOUCH message, I call

Dim RetVal&
RetVal = GetTouchInputInfo(hTouchInput, TouchPoints, tiTouchInput(1&), LenB(tiTouchInput(1&)))

(I have stripped down my lengthy code to show just the important part):

Dim bDown As Boolean
Dim bUp As Boolean
bDown = tiTouchInput(i).dwFlags And TOUCHEVENTF_DOWN
bUp = tiTouchInput(i).dwFlags And TOUCHEVENTF_UP

When I receive TOUCHEVENTF_DOWN, I do something lenthy which takes around 1 second.

As a consequence, I am missing the next WM_TOUCH message which contains the TOUCHEVENTF_UP event.

I wonder how this can happen.

I thought the messages are "stacked", and if I do something in between, it just takes a bit longer, but I will still receive the message.

But in my case, it seems that the next message is eaten.

If I do NOT do this lengthy operation, I do receive the next WM_TOUCH message.

Is that normal, or am I doing something to kill this message?

I am also crashing VB6 randomly after a few touch events. But it only crashes if I do this lengthy operation after the down event.

Thanks for any ideas / help!

ps: Yes, I do close the hTouchInput at the end:

Dim lRet&
lRet = CloseTouchInputHandle(hTouchInput)
StayOnTarget
  • 11,743
  • 10
  • 52
  • 81
tmighty
  • 10,734
  • 21
  • 104
  • 218

0 Answers0