private void Session_AfterRequest(object sender, RAfterRequestEventArgs e) {
bool? sentContinue;
lock (_browseLock) {
var browseEventArgs = _currentBrowseEventArgs;
if (browseEventArgs == null || browseEventArgs.Context.Contexts != e.Contexts) {
// This AfterRequest does not correspond to a Browse prompt, or at least not one
// that we have seen before (and paused on), so there's nothing to do.
return;
}
_currentBrowseEventArgs = null;
sentContinue = _sentContinue;
_sentContinue = true;
}
if (sentContinue == false) {
// User has explicitly typed something at the Browse prompt, so tell the debugger that
// we're moving on by issuing a dummy Continue request to switch it to the running state.
var vsShell = (IVsUIShell)Package.GetGlobalService(typeof(SVsUIShell));
Guid group = VSConstants.GUID_VSStandardCommandSet97;
object arg = null;
var ex = Marshal.GetExceptionForHR(vsShell.PostExecCommand(ref group, (uint)VSConstants.VSStd97CmdID.Start, 0, ref arg));
Trace.Assert(ex == null);
}
}