Hallo,
Zitat von
Daniel:
Ich hatte hier in den Tiefen meiner Platte noch eine Funktion gefunden, die vermutlich genau das macht, was Du möchtest.
tja deine Prozedur läuft bei mir nicht, dem ist zB. "OLE2" unbekannt und auch das "IID_IPersistFile". Das kann möglicherweise daran liegen, das du Delphi6 Prof verwendest und ich nur Delphi5 Prof habe.
Ich habe mal folgenden Code versucht:
Code:
type TLnkFileData = record
Link : String;
Description : String;
IconPath : String;
IconIndex : Integer;
end;
function GetLinkFileData(LinkFile: String): TLnkFileData;
var
wLinkFile : WideString;
PersistFile : IPersistFile;
Link : IShellLink;
TempValue : PChar;
iCharSize : Integer;
begin
wLinkFile := LinkFile;
CoInitialize(nil);
if CoCreateInstance(CLSID_SHellLink, nil, CLSCTX_INPROC_SERVER, IShellLink,
Link) = S_OK then
begin
PersistFile := Link as IPersistFile;
//Link := PersistFile as IShellLink;
TempValue:= StrAlloc(MAX_PATH+1);
PersistFile.Load(PWideChar(wLinkFile),STGM_READ);
Link.GetDescription(TempValue,MAX_PATH);
Result.Description := String(TempValue);
end;
CoUnInitialize;
end;
leider bleibt der TempValue leer
nach dem Funktionsaufruf "GetDescription". Hat jemand ne Idee was ich da noch falsch mache?
Danke für eure Hilfe
Mfg Matthias