Come posso caricare su una imageList l'icona 16x16 associata ad un qualsiasi file specificato?

Devo andare a leggere nel registro le informazioni sull'estenione del file (HKCR/.est/, e poi sulla stringa predefinito leggere il tipo, poi andare su HKCR/tipo/DefaulIcon/ e leggere la stringa predefinita), o esiste un metodo molto più veloce, magari con le API?

Grazie