Expensive, but the Cognex 9500 should do everything you want:
http://www.cognex.com/DPM-mobile-computer.aspx
It's basically a Windows PDA lashed to a barcode reader. You can write your own apps in .NET Compact Framework to run on the PDA, and there's a C# API if you want to use the scanner from a PC.