С утречка вроде получше соображаться стало
![Smile](images/smilies/new/smile.gif)
. В общем слегка изменив предыдущий код, имеем:
Код:
![Выделить весь код](images/misc/selectcode.png)
char szFilter[] = TEXT("Все файлы (*.*)\0*.*\0\0");
char szBuf[MAX_PATH];
OPENFILENAME ofn;
memset(&ofn, 0, sizeof (OPENFILENAME));
memset(&szBuf, 0, sizeof (szBuf));
ofn.lStructSize = sizeof (OPENFILENAME);
ofn.hwndOwner = hWndMain; // это хэндл диалога, из которого запускаю, возвращенный CreateDialog()
ofn.lpstrFilter = szFilter;
ofn.nFilterIndex = 1L;
ofn.lpstrFile = szBuf;
ofn.nMaxFile = sizeof (szBuf);
ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST | OFN_ENABLESIZING | OFN_HIDEREADONLY | OFN_NOREADONLYRETURN;
if (!GetOpenFileName(&ofn)) {
sprintf(szBuf, "%d\0", CommDlgExtendedError());
}
MessageBox(0, szBuf, "", 0);
Эта бяка уже работает превосходно
. Но мне всё же не ясно, что изменилось фактически...