Shortcuts are in a binary format and, unlike the Linux ln command, there is no way that I have been able to find for creating, manipulating, or dealing with shortcuts on the command line or in a program. The last time I messed with this stuff, about 2 years ago, I found a command line tool online that would do everything I wanted -- reading, creating, deciphering, etc. Of course, now that I think about it, I was writing in Perl at the time so I'm not sure if there are facilities in .Net that will help you or not. But I do know there are free tools out there. Try an internet search and see what turns up.
The tool I found was called shortcut.exe and it was made by Optimum X. Hopefully that will help. And there may be a .Net way to do it too; I'm just not sure off the top of my head.