Se várias extensões de arquivo forem mapeadas para o mesmo ProgId, o mesmo ícone será usado. Se você precisar de ícones diferentes para tipos de arquivos / extensões diferentes, atribua diferentes nomes ProgId, configurando o mesmo aplicativo para o verbo "aberto".
Por exemplo:
Make .md aponte para sublime_md
Faça com que o .txt aponte para sublime_txt
e assim por diante ... Torna-se tedioso somente se você criar centenas desses tipos de arquivos personalizados.
E o programa atribuído a esses ProgIds (sublime_txt, sublime_md e sublime) é exatamente o mesmo, diferindo apenas no valor "DefaultIcon".
HKCR \ sublime_txt \ DefaultIcon
Definir o valor padrão para "caminho: \ texticon.dll"
HKCR \ sublime_md \ DefaultIcon
Definir o valor padrão para "caminho: \ mdicon.dll"
Para explicar melhor usando um arquivo REG de amostra:
Windows Registry Editor Version 5.00
;For .md extension
;-----------------
[HKEY_CLASSES_ROOT\.md]
@="sublime_md"
[HKEY_CLASSES_ROOT\sublime_md\DefaultIcon]
@="c:\mdicon.dll"
[HKEY_CLASSES_ROOT\sublime_md\shell\open]
@="Open"
[HKEY_CLASSES_ROOT\sublime_md\shell\open\command]
@="c:\sublime.exe %1"
;For taskpaper extension
;-----------------------
[HKEY_CLASSES_ROOT\.taskpaper]
@="sublime_task"
[HKEY_CLASSES_ROOT\sublime_task\DefaultIcon]
@="c:\taskicon.dll"
[HKEY_CLASSES_ROOT\sublime_task\shell\open]
@="Open"
[HKEY_CLASSES_ROOT\sublime_task\shell\open\command]
@="c:\sublime.exe %1"