I would download GParted and create a bootable disk to handle the resizing of your partitions. Very inutuitive and clean. Probably should backup data of course, but you shouldn't lose anything.
As far as reading your linux partition from Windows, are you using Ext4 or Ext3? If Ext3, there is a driver for Windows that will allow it to be read as usual. http://www.fs-driver.org/index.html
, I'm not sure about Ext4. Linux will handle all just fine, but Windows is very picky.