1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
const
TAILLE_BUFFER = 1024;
type
ArrayChar = array[0..TAILLE_BUFFER] of Char;
...
function Infos_raccourci(szChemin: String): TStringList;
const
IID_IPersistFile: TGUID = (D1: $0000010B; D2: $0000; D3: $0000; D4: ($C0, $00, $00, $00, $00, $00, $00, $46));
var
PersistFile: IPersistFile;
FileNameW: array[0..MAX_PATH] of WideChar;
ShellLink: IShellLink;
fd: TWin32FindData;
ProLink: ArrayChar;
I: Word;
J: Integer;
begin
Result := TStringList.Create;
CoInitialize(nil);
try
OleCheck(CoCreateInstance(CLSID_ShellLink, nil, CLSCTX_INPROC_SERVER, IID_IShellLinkA, ShellLink));
try
OleCheck(ShellLink.QueryInterface(IID_IPersistFile, PersistFile));
try
MultiByteToWideChar(CP_ACP, 0, @szChemin[1], -1, FileNameW, MAX_PATH);
OleCheck(PersistFile.Load(FileNameW, STGM_READ));
ShellLink.GetPath(ProLink, Max_Path, fd, SLGP_UNCPRIORITY);
Result.Add(ProLink);
finally
end;
finally
end;
finally
CoUninitialize;
end;
end; |
Partager