49

 

If you want to get to the bottom of this, the true reason why OnNavigationComplete or OnQuit are never called is that the sink object stops responding. This happens because the main application and the sink object share the same process (the sink object is an in-process server). If the main application does not yield control, the sink object is not able to respond to requests made by the Automation object to which it is connected. This would usually also stop (or at least, slowdown) the Automation object, because the Automation object will fire the event in the sink object and wait for a response from the sink. If the sink is not responding, the answer will never come. Some Automation objects can handle this lack of response from the sink graciously (with, for example, a time-out error) but this is not always the case.