I'm probably being unhelpful here, so ignore whatever doesn't make sense to your problem. However, in Delphi you can simply declare new message events and they get triggered whenever you do a "post message", no loop needed. Underneath it all (I know because I've looked) it's really just registering these events with windows when it creates the main application window. I can only assume that there's a way to do this in VB. This would allow you to respond when something changes through windows messaging.

The "atomic bomb" approach is that you could spawn a separate thread that does a CPU-friendly wait and then executes as soon as you trip it through with event. Of course then you have to take steps to ensure that you are synchronizing everything properly with the main thread so you don't start causing multi-threading issues. Probably too much for what you're wanting, and I'm not sure how hard multi-threading is to do in VB. However, it's very CPU friendly to do this in order to wait on something specific that either trips an event or you can cause to trip an event..
_________________________
-Jeff
Rome did not create a great empire by having meetings; they did it by killing all those who opposed them.