![]() |
IShellFolder: Path zu PIDL und im TreeView öffnen.
Hallo,
ich habe ein TreeView, in welches die Verzeichnisstruktur wie ![]() ![]()
Delphi-Quellcode:
Da ist jedoch mit der Liste unterhalb des Arbeitsplatzes Schluss wenn ich ein Laufwerk einstelle. Wie komme ich auf das Laufwerk? Oder ist mein Ansatz bereits verkehrt?
procedure TPathExplorer.SetPath(const Value: Widestring);
var pszDisplayName : lpwstr; pdwAttributes : DWord; pdwDummy : DWord; NewPIDL : PItemIDList; ShellFolder : IShellFolder; Objects : IEnumIdList; ItemIdList : PItemIdList; bNoError : Boolean; bNoFound : Boolean; bNext : Boolean; displayname: widestring; begin ShellFolder := Desktop; pszDisplayName := StringToOleStr(Value); pdwAttributes := 0; bNoFound := True; bNoError := True; while bNoFound and bNoError do begin ShellFolder.ParseDisplayName(0, nil, pszDisplayName, pdwDummy, NewPIDL, pdwAttributes); bNoFound := NewPIDL <> nil; if bNoFound then begin bNoError := Succeeded(ShellFolder.EnumObjects(Handle, SHCONTF_FOLDERS, Objects)); if bNoError then begin bNext := False; while (Objects.Next(1, ItemIdList, pdwDummy) = NOERROR) and not bNext do if (ItemIdList.mkid.cb = NewPIDL.mkid.cb) and (ItemIdList.mkid.abID[0] = NewPIDL.mkid.abID[0]) then begin ShellFolder.BindToObject(ItemIdList, nil, IID_ISHELLFOLDER, pointer(ShellFolder)); bNext := True; end; end; end; end; end; |
Re: IShellFolder: Path zu PIDL und im TreeView öffnen.
Man kommt so nur bis zum Laufwerk. Anschließend wird der Folder mit dem Value verglichen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz