昔作ったけど、ぶっちゃけた話、リンク生かしたままローカル保存するのはかなり難しいよ。
まともに見えるようにするだけでも A#HREF や IMG#SRC だけじゃ足りなくて

BODY#BACKGROUND, FRAME#SRC, BASE#HREF, LINK#HREF,
OBJECT#DATA, OBJECT#CODEBASE, EMBED#SRC, APPLET#CODEBASE,
APPLET#ARCHIVE, SCRIPT#SRC, META#(HTTP-EQUIV="Refresh" の時の CONENT の url 値)

なんかが必要だし、クリックで動かそうと思ったら AREA#HREF, FORM#ACTION なんかも
必要。JavaScript やスタイルシート中の URL はいじれないし、Cookie 実装しないと
取れないページがあったり、HTTP/0.9 で返してくる阿保 CGI があったり、https や
gopher とか抜かすページがあったり、URL の一部を全角で書いているパチンコ屋が
あったりとそりゃぁもう (以下略)

まぁそこまでページの完全性にこだわらなければ良いのかもしれない。IE にページ保存
機能があるから、もしかしたら VC++ でもそれを呼び出せるかもしれない。Proxy とか
考えなくても良くなるし。