Windows использует иконы нескольких размеров. Размер икон определяется пользовательскими настройками. Читайте "Шаг 52 - Отображение икон". Нам бы нужно уметь вычислить в программе этот размер. Помочь здесь может как реестр, читайте "Шаг 52 - Отображение икон", так и функция GetSystemMetrics с параметрами SM_CXSMICON и SM_CYSMICON. Читайте "Шаг 153 - GetSystemMetrics и иконы".
Основная в Windows это большая икона. Системные приложения используют ее при отображении в заголовке окна, при минимизации а так же при переключении по ALT+TAB
Заполняя структуру класса WNDCLASSEX окна для приложения о ней упоминается в "Шаг 301 - Типы контекстов экранов и эффективность графики" Вы должны заполнить два поля с курсором:
HICON hIcon; HICON hIconSm;
Эта структура является как бы новой и ее надо использовать, структура WNDCLASS описанная в шаге "Подробности - Структура WNDCLASS" поля рIconSm не содержит. MFC сразу создает две иконы приложения. Об этом можно прочитать "Шаг 173 - Многоликие иконы". Итак, в рIcon содержится большая икона, а маленькая в hIconSm. Если в hIcomSm нечего нет, то берется большая икона.
Проверить все это довольно просто прочитайте шаг "Шаг 173 - Многоликие иконы" и покрасьте икону приложения в разные цвета. Вот смотрите результат.
Проверить что отсутствие маленькой иконы не фатально то же можно. Удалите из проекта икону IDR_MAINFRAME и создайте заново, но только большую 32X32. После чего соберите приложение. Вы увидите, что в проводнике размер иконы немного больше чем обычная.
Итак, выводы. Наличие маленькой иконы желательно, но не обязательно. Основное использование маленькой иконы для отображения в проводнике.