Moin Tpercon,
ich hab' jetzt nich ausprobiert, wie sich das auf die Geschwindigkeit auswirkt, aber Du könntest bei den Dateiicons ja mal versuchen, Dir eine TStringsList mit den schon eingelesenen Extensions aufzubauen, (Sorted=true, Duplicates=dupIgnore), und die Extensions dann mittels AddObject hinzufügen, wobei Du als Objekt jeweils das Icon(
Handle) hinzufügst, dass über ExtractAssociatedIcon ausgelesen wird. Dann liessen sich bereits bekannte Icons aus der Liste wohl relativ schnell auslesen lassen.
Oder Du benutzt eine ImageList, der die jeweils neuen Icons hinzugefügt werden, und fügst als Objekt einfach nur die Nummer des Icons in der ImageList hinzu. (auslesen wie vorher).
Damit könntest Du Dir die Verwaltung (Create/Free) der angehängten Iconobjekte sparen.