1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| function TFormMain.CreateLink(lpszPathObj, lpszArg, lpszPathLink, lpszDesc, WorkDir, lpszIcon: String): Boolean; var psl: IShellLink; ppf: IPersistFile; begin result := False; if SUCCEEDED(CoCreateInstance(CLSID_ShellLink, nil, CLSCTX_INPROC_SERVER, IID_IShellLinkA, psl)) then begin psl.SetPath(PChar(lpszPathObj)); psl.SetArguments(PChar(lpszArg)); psl.SetDescription(PChar(lpszDesc)); if Copy(WorkDir, Length(WorkDir) - 1, Length(WorkDir)) = '\\' then psl.SetWorkingDirectory(PChar(Copy(WorkDir, 1, Length(WorkDir) - 1))) else psl.SetWorkingDirectory(PChar(WorkDir)); psl.SetIconLocation(PChar(lpszIcon), 0); if SUCCEEDED(psl.QueryInterface(IID_IPersistFile, ppf)) then begin ppf.Save(StringToOLEStr(lpszPathLink), TRUE); result := true; end; end; end; |