Here is a vbscript function to do just that.
Code:
Function MakeShortcut (strName, strFile, strTarget, strDefault, strIcon)
Dim objWS, objLink
Set objWS = WScript.CreateObject("WScript.Shell")
strLinkFile = strFile & "\" & strName & ".lnk"
Set objLink = objWS.CreateShortcut(strLinkFile)
'Dim objFSO
If objFSO.FolderExists(strTarget) Then
strTarget = strTarget
Else
strTarget = strDefault
End If
If strIcon = "" Then
strIcon = "0"
End If
objLink.TargetPath = strTarget
objLink.Description = strName
objLink.WorkingDirectory = strTarget
objLink.IconLocation = "%SystemRoot%\system32\SHELL32.dll, " & strIcon
objLink.Save
MakeShortcut = objLink
End Function
It was developed for Windows XP and may need additional tweaking for other operating systems. You should be able to convert this to Visual LISP with little problem.