En Windows, los iconos de tipo de archivo se recuperan del registro, específicamente de la clave de registro HKEY_CLASSES_ROOT\.ext, donde \.ext es la extensión del archivo. Por ejemplo, la clave para recuperar iconos de archivos que tienen una extensión .jpg sería HKEY_CLASSES_ROOT\jpg. El valor predeterminado de la clave es el ProgId de la aplicación que está registrada para abrir ese tipo de archivo. El icono se puede recuperar del archivo de recursos de la aplicación mediante API como LoadIcon y ExtractIcon. En caso de que la clave no exista o no tenga un valor predeterminado o su CLSID correspondiente no exista, Windows recupera los iconos de la extensión del shell (si la hay) especificada en la subclave HKCR\.ext\shellex.
Así es como se hace en Mac:
La aplicación Finder de Mac OS X utiliza el marco de Core Services para recuperar iconos de archivos. Cada archivo tiene un recurso llamado kMDItemContentType que contiene el Identificador de tipo uniforme (UTI) del tipo de archivo, que es una cadena que identifica el tipo de archivo. El icono de la ITU correspondiente se recupera de la base de datos del sistema, que generalmente se almacena en el archivo /System/Library/CoreServices/CoreTypes.bundle. En caso de que el ícono de una ITU en particular no se encuentre en la base de datos, la aplicación Finder lo recupera del paquete de aplicaciones (generalmente ubicado en la carpeta Aplicaciones) que está registrado para abrir ese tipo de archivo.