// /// Queries the views of the current document and the views of any child documents /// about a specified event, but stops at the first view that returns true. In /// contrast to NotifyViews(), QueryViews returns a pointer to the first view that /// responded to an event with a true result. The event, EV_OWLNOTIFY, is sent with /// an event code (which is private to the particular document and view class) and a /// long argument (which can be cast appropriately to the actual type passed in the /// argument of the response function). // TView* TDocument::QueryViews(int event, long item, TView* exclude) { TView* view; TDocument* pdoc = 0; while ((pdoc = ChildDoc.Next(pdoc)) != 0) if ((view = pdoc->QueryViews(event, item, exclude)) != 0) return view; TEventHandler::TEventInfo eventInfo(WM_OWLNOTIFY, event); for (view = ViewList; view != 0; view = view->NextView) { if (view != exclude) { if (view->Find(eventInfo)) { if (view->Dispatch(eventInfo, 0, item)) { return view; // Return first acknowledger } } } } return 0; }