Entwickler-Ecke
Windows API - IShellFolder2.EnumObjects
ASMFreak - Fr 09.07.10 18:03
Titel: IShellFolder2.EnumObjects
MoinMoin,
Laut Microsoft ist ein Folder "a type of shell item that can contain other items". Soweit klar. Und jetzt kommt's: "Examples include folders [= Verzeichnisse?], drives, network, servers, and compressed files with a .zip file name extension" (msdn.microsoft.com/en-us/library/ee453694(v=VS.85).aspx).
(Klar, denn ZIPs sind ja Container für Files und Verzeichnisse!)
Das interpretiere ich also so: ZIP-Files, Verzeichnisse, Special Folders etc, also alles, was nicht eine Datei oder ein Link ist, sind folders, da sie andere items enthalten können. Probiert man das aber aus (so z.B. in der Demo zu meiner Unit TRecycleBin, die ich neulich upgeloadet habe), so findet man etwas anderes: Zip-Files erscheinen genaus so wenig der Liste, die IShellFolder2.EnumObjects erstellt, wie Verzeichnisse, wenn man in den Flags nur SHCONTF_FOLDERS und nicht auch SHCONTF_NONFOLDERS übergibt. Das kann nur sein, wenn ZIP-Files und Verzeichnisse keine Folder sind, was im Widerspruch zu oben steht.
Selbst wenn man Verzeichnisse noch großzügig als "nonfolder" im Sinne von shell folders ausläge, sollten zumindest die Zip-Files oder die von mir in den Papierkorb geschickte Systemsteuerung erscheinen. Tun sie aber nicht! Wo hakt's bei mir im Verständnis?
Bitte nicht wieder so viele Antworten! :zwinker:
Gruß, Trutz
Dezipaitor - Fr 16.07.10 23:30
Dein Fehler liegt darin, dass du die MSDN so wörtlich und genau deutest. Allein schon, dass im Link der Begriff Folder zu Container verwiesen wird....
Die MSDN sollte man nicht als API Bibel ansehen, denn dort steht eine Menge falsche Sachen, die im krassen Widerspruch zu der Implementierung stehen. Das liegt vor allem daran, dass die Docs meist garnicht von den Autoren selbst geschrieben oder gewartet werden.
Besonders bei den Shell COM Objekt Dokus habe ich das Gefühl, dass dort nur halbherzig dokumentiert wird, insbesondere da die Shell eine Menge Kompatibilitätsverhalten zeigen muss, um überhaupt noch Abwärtskompatibel zu sein.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!