IFileOpenDialog给出错误“位置不可用”,无法在Windows 7上加载用户库

时间:2012-08-25 19:49:55

标签: visual-c++ windows-7

遇到与此相同的问题: CoCreateInstance issue on windows 7 {基本上使用IFileOpenDialog有时会出错:“位置不可用”“C:\ Windows \ system32 \ config \ systemprofile \ Desktop指的是一个不可用的位置”。用户可以在此消息显示后继续,但库不能正确显示内容,而且非常烦人。}

在使用用户权限运行的MFC应用程序中调用代码,但该问题仅在至少3个测试系统上间歇性地发生。

以下是创建对话框并显示它的代码:

    IFileOpenDialog *pFileOpen = NULL;

    HRESULT hr = CoCreateInstance(__uuidof(FileOpenDialog), NULL, 
        CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&pFileOpen));

    if (SUCCEEDED(hr))
    {
        DWORD dwFlags = 0;

        pFileOpen->GetOptions ( &dwFlags );
        pFileOpen->SetOptions ( dwFlags | FOS_ALLOWMULTISELECT | FOS_PATHMUSTEXIST | FOS_FORCEFILESYSTEM );

        pFileOpen->SetTitle ( L"Select file for upload" );

        hr = pFileOpen->Show(this->GetSafeHwnd());

        //everything after this for retrieving files selected works fine.

0 个答案:

没有答案