procedure TdfmCSConfigDB.RegistrarExtensao;
var
  _reg: TRegistry;
begin
  _reg := TRegistry.Create;
  try
    _reg.RootKey := HKEY_CLASSES_ROOT;
    _reg.LazyWrite := False;
    /// ////////////////////////////////////////////////////////////////////////
    _reg.OpenKey('CSConfigDB', True);
    _reg.WriteString('', 'Configurador de Banco do Contact Studio');
    _reg.CloseKey;
    /// /////////////////////////////////////////////////////////////////////////
    _reg.OpenKey('CSConfigDB\shell\open\command', True);
    _reg.WriteString('', ParamStr(0) + ' "%1"');
    _reg.CloseKey;
    /// /////////////////////////////////////////////////////////////////////////
    _reg.OpenKey('CSConfigDB\DefaultIcon', True);
    _reg.WriteString('', ParamStr(0) + ',0');
    _reg.CloseKey;
    /// /////////////////////////////////////////////////////////////////////////
    _reg.OpenKey('.csb', True);
    _reg.WriteString('', 'CSConfigDB');
    _reg.CloseKey;
  finally
    FreeAndNil(_reg);
  end;
end;
Com isso o Windows irá usar o ícone do seu programa para representar o arquivo, como no exemplo abaixo:
No meu caso, fizemos um editor de arquivo INI para guardar as configurações do acesso a banco de dados (SQLConnection). Portanto, ao dar dois cliques, abriu o programa:
Legal?