节目不是IFileOpenDialog的成员

时间:2018-08-18 23:36:39

标签: c com

美好的一天。

我一直在使用Microsoft Visual Studio 12,并试图使COM程序正常工作。但是,我似乎无法访问IFileOpenDialog的关联功能和组件。我认为这一定与我的包含物有关。这是错误消息:

  • 错误1错误C2039:“显示”:不是'IFileOpenDialog'的成员c:\ users \ deylian \ desktop \ p \ main.c 213 1 Project1
  • 错误2错误C2039:'GetResult':不是'IFileOpenDialog'的成员c:\ users \ deylian \ desktop \ p \ main.c 217 1 Project1
  • 错误3错误C2039:'GetDisplayName':不是'IShellItem'的成员c:\ users \ deylian \ desktop \ p \ main.c 220 1 Project1
  • 错误4错误C2039:'Release':不是'IShellItem'的成员c:\ users \ deylian \ desktop \ p \ main.c 226 1 Project1
  • 错误5错误C2039:'Release':不是'IFileOpenDialog'的成员c:\ users \ deylian \ desktop \ p \ main.c 229 1 Project1

    这里包括:

    #include
    #include
    #include
    #include
    #include
    #include

    和代码:

    HRESULT BasicFileOpen(){
    HRESULT hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED |  COINIT_DISABLE_OLE1DDE);
    if(SUCCEEDED(hr)){
        IFileOpenDialog *pFileOpen = NULL;
        hr= CoCreateInstance(&CLSID_FileOpenDialog,
        NULL,CLSCTX_INPROC_SERVER,
        &IID_IFileOpenDialog,
        (void**)(&pFileOpen));
    
        if(SUCCEEDED(hr)){
            hr=pFileOpen->Show(NULL);
    
            if (SUCCEEDED(hr)){
                IShellItem *pItem;
                hr = pFileOpen->GetResult(&pItem);
                if (SUCCEEDED(hr)){
                    PWSTR pszFilePath;
                    hr = pItem->GetDisplayName(SIGDN_FILESYSPATH, &pszFilePath);
    
                    if (SUCCEEDED(hr)){
                        MessageBox(NULL, (LPCSTR)pszFilePath, (LPCSTR)"File Path", MB_OK);
                        CoTaskMemFree(pszFilePath);
                    }
                    pItem->Release();
                }
            }
            pFileOpen->Release();
        }
    }
    
    CoUninitialize();
    return hr;
    }
    

感谢您的关注。祝你有美好的一天。

0 个答案:

没有答案