Эта проблема, с которой я сталкиваюсь, очень легко воспроизвести. Создайте базовое приложение MFC MDI с расширением файла .xyz с помощью Visual Studio 2010. Код приложения по умолчанию легко регистрирует ассоциации файлов с помощью вызовов:
// Enable DDE Execute open
EnableShellOpen();
RegisterShellFileTypes(TRUE);
Проблема в том, что внутри RegisterShellFileTypes(TRUE) приведенный ниже вызов не работает:
if (!_AfxSetRegKey(strFileTypeId, strFileTypeName))
continue; // just skip it
Файл, очевидно, не регистрируется, и он не принимает значок файла, назначенный приложением. Все, что я хочу, это когда я дважды щелкаю зарегистрированный тип файла (в данном случае .xyz), он должен открываться в приложении, но это не так. Что, возможно, отсутствует .. как заставить это работать?