Forum: Win32/Win64 API (native code)
by MicMic,
16. Mär 2020
Mein "TFileSystemBindData" schaut auch so aus, wie von der genannten Webseite.
Inzwischen geht auch meine Funktion "IsLink". Also ich kann auf "SFGAO_LINK" prüfen. Die o.g. Funktion (PathToPIDL), wo ich das PIDL erzeuge, hat ja noch dieses "w32fd.dwFileAttributes := FA;" dabei. Also ich übergebe hier die Attribute. Aber so ging es nicht um auf "SFGAO_LINK" nachfolgend zu prüfen. Da meine...
Forum: Win32/Win64 API (native code)
by MicMic,
13. Mär 2020
@KodeZwerg
Ja, dass Explorer den Ordner anders listet, sah ich schon.
Dennoch ist es ja ein normaler Ordner auf der Festplatte.
Hast du mein Beitrag gelesen, wegen "IBindCtx". Es geh nun erst mal ohne Bremse.
Ein Eigenschaftsdialog war mir bis jetzt, hier in diesem Fall noch nicht so wichtig. Erst mal das eine nach dem anderen lösen :) aber danke... wenn's damit geht, ist's ja super. Dein...
Forum: Win32/Win64 API (native code)
by MicMic,
12. Mär 2020
Wenn ich nicht gerade falsch schauen, hab ich's hinbekommen.
Also hier (noch nicht verschönert/optimiert usw):
function PathToPIDL(APath: WideString;FA:Cardinal): PItemIDList;
var
Desktop: IShellFolder;
pchEaten, dwAttributes: ULONG;
kk : hresult;
pbc : IBindCtx;
w32fd : TWin32FindData;
ifs : TFileSystemBindData;
Forum: Win32/Win64 API (native code)
by MicMic,
12. Mär 2020
Es geht weniger um den Font-Ordner. Eher geht's darum, dass ich diesen Inhalt genauso verarbeiten kann, wie andere Ordner auch. Und dazu brauche ich eigentlich ne PIDL zu den einzelnen Dateien in diesem Ordner. Es müssen dort ja nicht unbedingt nur Schriftdateien vorhanden sein. Jeder Benutzer kann hier alle mögliche Dateien ablegen. Deshalb muss ich diesen Ordner ganz normal betrachten und je...
Forum: Win32/Win64 API (native code)
by MicMic,
12. Mär 2020
Danke für die Mühe
Wie du siehst, ganz und gar nicht einfach zu lösen.
Naja, einfach ist es, wenn man weiß wie *lach
Für "ParseDisplayName" ist ja noch beschrieben (mit Google Übersetzer):
LPWSTR
Da jeder Shell-Ordner seine eigene Analysesyntax definiert, kann die Form, die diese Zeichenfolge annehmen kann, variieren.
Unter Bemerkungen noch:
Forum: Win32/Win64 API (native code)
by MicMic,
11. Mär 2020
Ich kann zum Glück eine mit MKLINK Symdatei anders prüfen.
Mit dem "FILE_ATTRIBUTE_REPARSE_POINT" kann ich ohne PIDL in solchen Ordnern (die mit PIDL mein Zeug ausbremsen) die Dateien identifizieren.
Trotzdem brauche ich eigentlich auch für SHGetFileInfo ein PIDL. Also das Problem besteht eigentlich weiterhin in diesen Ordnern. Leider bekommt man manchmal ein falsches IconIndex von...
Forum: Win32/Win64 API (native code)
by MicMic,
11. Mär 2020
"ILCreateFromPath" ist vorhanden aber funktioniert leider nicht.
Ich bekomme auch NIL zurück. Was nicht unbedingt das schlimmste wäre*, aber die Funktion bremst dann alles aus. Das ist dann nicht so toll.
Es geht mir jedenfalls um folgendes.
Ich prüfe mit "ShellFolder.GetAttributesOf" auf die Werte "SFGAO_LINK" und "SFGAO_SHARE".
SFGAO_SHARE nur auf Ordner (ist das richtig?).
SFGAO_LINK...
Forum: Win32/Win64 API (native code)
by MicMic,
11. Mär 2020
Hallo,
für manche Operationen konvertiere ich ein Pfad+Dateiname zu ein PIDL Dingsbums.
function PathToPIDL(APath: WideString): PItemIDList;
var
Desktop: IShellFolder;
pchEaten, dwAttributes: ULONG;
begin
Result := nil;
SHGetDesktopFolder(Desktop);
dwAttributes := 0;