Dropping down TComboBox / ScreenToClient / Access Violation problem

I just read some of the 43 articles about the TComboBox / ScreenToClient problem.

I want to draw a parallell to a problem with VNC (a remote
control program, search Google for it if you're interested).
Versions of VNC up to 3.3.3r7, does have a problem, that might
cause Delphi apps to crash on the machine the server is run on.

This is how the VNC problem happened.
1. VNC Server was started.
2. As a VNC client connected, VNC server called GlobalAddAtom to
  add a string entry.
3. The number returned by GlobalAddAtom was used as the key
  value in calls to SetProp, as VNC set properties of several
  windows, including e g the taskbar.
4. The VNC client disconnects. Now there was a bug in VNC that
  forgot to remove the properties set, but the atom was removed.
5. A Delphi app starts, and calls GlobalAddAtom to retrieve a
  number for its "ControlAtom" (see further in controls.pas).
6. Windows recycle GlobalAddAtom numbers, so the number can
  occasionally be the same as the one VNC used earlier.
7. Now the user has the Delphi app as the current active one,
  and moves the mouse over the taskbar.
8. Windows sends WM_MOUSEMOVE to the Delphi app. After processing
  this message, Delphi calls TApplication.DoIdle.
9. DoIdle calls FindDragTarget which calls FindVCLWindow which
  calls FindControl. FindControl calls GetProp to see if the
  control under the mouse is a control belonging to the current
10. POW! GetProp returns a non nil invalid number (the one that
  VNC set earlier) and the AV is a fact when calling the
  control's ClientOrigin virtual function (and the VMT is invalid
  since the GetProp return value is invalid).


However. This is fixed in VNC 3.3.3r8 and 3.3.3r9, so if you have
old versions, please upgrade, then reboot your computer.

Anyway, this seems to be another problem, since it seems to
be connected to dropping down combo boxes, and Win2000, rather
than VNC programs.
So, to me it seems like an evil process, possibly in Win2000
itself, is sniffing CBN_DROPDOWN messages, and then it does some
bad things to the window properties in that window.

As many of you out there, I also have customers having this
problem, so I'm eager to solve it. I could use the patch posted,
but I'm more curious about the cause of the problem.

Additional comments are welcome.

// David