I think it should look okay just as long as you use the right shader in your .vmt (VertexLitGeneric is the usual for models), but as Stormy says, you can play with some of the shader settings if you want (details about VertexLitGeneric shader parameters here...
If you want to use the std::string from the <string> header you need to use std::string, not string (you can use string if you are using namespace std; though).
You should probably break; after each case, and flagEntityId isn't defined anywhere.
I've seen lists of .gcf files used by games, but I can't remember where.
You could try doing a Steam back-up and see if it tells you what .gcf files it's backing up for each game.
These models won't work in Garry's Mod 9 because they're a newer .mdl version.
You could open each .mdl individually and change the 5th byte from 0x30 to 0x2C, but that could be a lot of work, and they probably won't work properly (no jigglebones for example).
Hopefully this should cover it: http://www.narby.net/?page_id=37
The link to Zoner's Half-Life Tools is dead though, but you can get them here: http://zhlt.info/