Could be fairly tricky. Windows lnk shortcuts are examples of a more general
facility to interject arbitrary code into the filesystem that gets executed
when it gets referenced as a file path. For example it could be a device
driver to a encrypted ram disk, or it could be a mount point for a completely
different kind of (non-Windows) filesystem... there isn't necessarily any
meaningful "full filename target" as distinct from the path that includes the
shortcut.
Because the lnk are executables you cannot simply read them using a system
call, the way you might with a unix soft link: you actually have to ask the
desktop to resolve the path for you.