[quote user="Jon Summers"]Perhaps classes RunIterator and RunRange might help?[/quote]
Hmm.. I don't believe I've seen those before. I'll take a look.
This is what I've come up with:
std::vector<CaretPtr> startMatchCaret; ... CaretCR matchStart = textMatch->GetMatchStart(); ... CaretPtr start = matchStart.Clone(); startMatchCaret.push_back(start);
Bruce