Te puede interesar este
hilo que estudia la estructura de los iconos, como conocer y cambiar los iconos de ejecutables en la sección de recursos de ejecutables y dlls.
También debes mirar la API
ExtractAssociatedIcon.
Si quieres saber la asociación en el shell de un archivo con su icono, te interesa
esto
Todo ello en C/C++
Saludos.