Во многих моих программах Access (2002) я использую функции GetOpenFileNameA и GetSaveFileNameA из comdlg32.dll. Я часто устанавливаю начальный каталог в папку «Мои документы» пользователя (используя вызовы SHGetSpecialFolderLocation и SHGetPathFromIDListA из shell32). Все это прекрасно работает под Windows XP.
Однако недавно я перешел на Windows 7 в качестве среды разработки и получаю следующее сообщение об ошибке:
Вы не можете открыть это местоположение, используя
эта программа. Пожалуйста, попробуйте другой
место.
Функция, которую я использую для определения местоположения «Мои документы», возвращает правильную папку. Однако даже если я жестко закодирую это местоположение каталога в вызове GetOpenFileNameA, я все равно получаю сообщение об ошибке.
Я сталкивался с этим сообщением: http://social.msdn.microsoft.com/Forums/en-US/windowsuidevelopment/thread/3391f1dd-25b0-4102-9d5c-58309cc72c9d, но, даже адаптировав его для работы с Access вместо Excel, мне не повезло.
РЕДАКТИРОВАТЬ: Внезапно это больше не проблема для меня. Я подозреваю, что обновление Windows вышло для решения этой проблемы. Кто-нибудь знает, правда это или нет?
РЕДАКТИРОВАТЬ: Оказывается, это все еще проблема. Кроме того, в случае, если это помогает в устранении неполадок, я обнаружил, что я получаю это сообщение об ошибке для любого из специальных местоположений папки (Моя музыка, Мои документы и т. Д.). Кроме того, если я изменю расположение папки «Моя музыка», скажем, на «C: \ Test», то при попытке открыть папку «C: \ Test» я получаю это сообщение, а папка «C: \ Users \ Mike \ Music» ( Исходное местоположение «Моя музыка») открывается без заминки.