head.WriteLine()

Mittwoch, April 12, 2006

ExtractAssociatedIcon()

In .NET 2.0 wurde die System.Drawing.Icon-Klasse um die ExtractAssociatedIcon()-Methode erweitert. Sie extrahiert das Symbol der angegebenen Datei.

Icon ico = Icon.ExtractAssociatedIcon("C:\\MyDoc.doc");

Was sich zunächst ganz sinnvoll anhört, entpuppt sich schnell als recht unbrauchbar. ExtractAssociatedIcon() extrahiert nämlich stets das Icon in der Standardgröße 32 x 32, die Auswahl einer anderen Größe ist nicht möglich. Zudem wird das Icon stets mit der im System eingestellten Farbtiefe ermittelt. Auch hier wäre eine explizite Steuerung sinnvoll.

Das größte Manko ist jedoch die Tatsache, dass bei bestimmten Dateitypen, wie zum Beispiel Bitmaps ein Vorschaubild zurückgegeben wird. Dies ist umso mehr erstaunlich, da eine private Überladung der Methode existiert, die zusätzlich einen Index entgegennimmt. Sie wird von der öffentlichen Methode aufgerufen und hierbei der Index 0 übergeben. Würde stattdessen 1 übergeben, so würden auch bei "Vorschau-Dateitypen" stets das Icon und kein Vorschaubild ermittelt.

Alles in allem finde ich das recht unbefriedigend, da man im Zweifelsfall mal wieder in die Windows-API-Trickkiste greifen muss, was nicht nur Zeitaufwendig ist, sondern vor allem eine erweiterte Berechtigung voraussetzt.

1 Comments:

Kommentar veröffentlichen

<< Home