In 8 you can do it in msstyles. But in 7 it's more complicated.
What I had to do was go into ExplorerFrame UIFILE 40960 and find everywhere
<UIItem background="themeable(dtb(ItemsView::ListView, 1, 2), highlight)" which is (Explorer & Shell > Explorer > Items View > ListView > ListItem > Hot )
<UIItem background="themeable(dtb(ItemsView::ListView, 1, 3), highlight)" (Explorer & Shell > Explorer > Items View > ListView > ListItem > Selected)
<UIItem background="themeable(dtb(ItemsView::ListView, 1, 5), highlight)" (Explorer & Shell > Explorer > Items View > ListView > ListItem > SelectedNotFocus)
<UIItem background="themeable(dtb(ItemsView::ListView, 1, 6), highlight)" (Explorer & Shell > Explorer > Items View > ListView > ListItem > HotSelected)
were located and added a foreground. I took the easy way out and added foreground="highlighttext" to all of them because there's a ton of them and I'm lazy, so they'd look like:
<UIItem background="themeable(dtb(ItemsView::ListView, 1, 2), highlight)" foreground="highlighttext" for example.
(If you wanted to make them Explorer & Shell > Explorer > Items View > ItemsView > TEXTCOLOR:COLOR, for example you would add foreground="themeable(gtc(ItemsView, 0, 0, 3803), windowtext)" and so get
<UIItem background="themeable(dtb(ItemsView::ListView, 1, 2), highlight)" foreground="themeable(gtc(ItemsView, 0, 0, 3803), windowtext)" etc)
Attached is a 40960.txt with it all done. I also added foregrounds to all the states of Group Header which you also can't do in msstyles.
You can copy/paste this onto your ExplorerFrame UIFILE 40960 with Restorator 2007 if you like. Or do your own.