Хорошо, я выяснил проблему, или, по крайней мере, у меня есть решение, которое работает для меня.
Ранее в коде у меня был следующий вызов для инициализации COM ...
::CoInitializeEx(NULL, COINIT_MULTITHREADED);
Ну, изменив это на ...
::CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
... решает проблему для меня! Теперь диалог файлов снова фильтруется.
Я искал в Интернете это, и кажется, что очень немногие сталкиваются с той же проблемой, но никто не опубликовал вышеупомянутое решение. Может ли кто-нибудь проверить мои выводы?