Ich lese den Namen des Computer auf diese weise aus.
if Lnk = ShortCutDisplayName(CSIDL_DRIVES) then
Delphi-Quellcode:
function TShortCut.ShortCutDisplayName(CSIDL: Integer): string;
var
pidl: PItemIDList;
sfi: TSHFileInfo;
Allocator: IMalloc;
begin
if SHGetSpecialFolderLocation(0, CSIDL, pidl) = S_OK then
if SHGetFileInfo(PWideChar(pidl), 0, sfi, sizeof(sfi), SHGFI_PIDL or SHGFI_DISPLAYNAME)
<> 0 then
Result := sfi.szDisplayName;
if Succeeded(SHGetMalloc(Allocator)) then
Allocator.Free(pidl);
end;
Ich möchte abhängig vom übergebenen Link ein Default Icon übergeben.
Sagen wir mal ich erstelle eine Verknüpfung vom Computer dann ist der Name im Link logischerweise "Computer". (Deutsch halt)
Wenn ich den jedoch mit meiner Funktion ShortCutDisplayName gegenprüfe bekomme ich nicht Computer sondern My Computer.
Das hat dann zur folge das ich das vordefinierte Icon nicht laden kann.
Wie komme ich denn jetzt an den Realen Namen wie er in der verwendeten Sprache auch benutzt wird?
gruss