just to add my two cents.... im a powerlifter not a bodybuilder so theres a difference between what i do and whats more important. since i have quit taking protein i have gained MUCH MORE weight and strength. lean weight as well. believe it or not, the best postworkout food for me (im a hard gainer) is wendys bonless wings, baked potato, 5 piece nuggets. sounds counterintuitive but i have leaned up and gained more since ive been eating basically what ever. there is one thing about this that will help in here despite the difference of bodybuilder or powerlifter, i FEEL much better not taking anyprotein at all, and find that my stomach feels 100% better.
if you want to gain weight eat more (not drink) ive been lifting for around 8 years so i know what im doing. and cardio will make you loose muscle if your a hardgainer. i know first hand from cycling. if you arent a heardgainer focus on eating decent during the day. IE subway or something like that. the only time to eat garbage for me is really after a workout. for some reason eating junk works much better than the classic grilled chicken and pasta combo, for me at least.
as far as protein goes, the best for me was true mass, mainly because of flavor and ease on the stomach. that being said, it didnt work nearly as well as real food.