Enfoque general para leer archivos lnk

Varios marcos e idiomas parecen tener analizadores de archivos lnk (C #, Java, Python, ciertamente muchos otros), para llegar a sus objetivos, propiedades, etc. Me gustaría saber cuál es el enfoque general para leer archivos lnk, si yo desea analizar lnk en otro idioma que no tenga dicha función. ¿Hay una API de Windows para esto?