|
uses activeX,comobj,shlobj;
const
IID_IPersistFile: TGUID = (D1:$0000010B;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
functionCreateLink(lpszPathObj,lpszPathLink,lpszDesc: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.SetDescription(PChar(lpszDesc));
if
SUCCEEDED(psl.QueryInterface(IID_IPersistFile,ppf)) thenbegin
ppf.Save(StringToOLEStr(lpszPathLink),TRUE);
Result := true;
end;
end;
end;
procedure TForm1.Button1Click(Sender:
TObject);
begin
if
CreateLink(EditProgramm.text,EditWo.text,EditComment.text) then
showmessage('Ok')
end; |