IFileOpenDialog da el error "La ubicación no está disponible" y no puede cargar las bibliotecas de usuario en Windows 7

Experimentando el mismo problema que este: Problema de CoCreateInstance en Windows 7 {Básicamente, el uso de IFileOpenDialog a veces da el error: "La ubicación no está disponible" "C:\Windows\system32\config\systemprofile\Desktop se refiere a una ubicación que no está disponible". El usuario puede continuar después de que aparezca este mensaje, pero las bibliotecas no muestran el contenido correctamente y es bastante molesto.}

El código se llama en una aplicación MFC que se ejecuta con permisos de usuario, pero el problema solo ocurre de manera intermitente en al menos 3 sistemas de prueba.

Aquí está el código para la creación del diálogo y mostrarlo:

    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.

preguntado el 25 de agosto de 12 a las 20:08

Es el mismo problema. E igual de incontestable. -

Sí, desafortunadamente necesito encontrar una manera de detenerlo, así que espero que alguien tenga una respuesta. La otra posibilidad en la que estoy pensando es usar el indicador FOS_HIDEPINNEDPLACES y luego agregar manualmente algunos accesos directos a C:, red, la carpeta de usuarios, etc. y esperar que elimine el problema. -

0 Respuestas

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.