SetPathName()
вызывает GetFullPathName()
, которая "объединяет имя текущего диска и каталог с указанным именем файла". Таким образом, разница, вероятно, в том, как получить текущий каталог.
Документировано, как CFileDialog выбирает другой начальный каталог в другой ОС (отметьте lpstrInitialDir
в следующем
ссылка ). Может быть, это связано с этим.