0

これと同じ問題が発生しています: Windows 7 で CoCreateInstance の問題 {基本的に 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.
4

0 に答える 0