При использовании Visual Studio 2010 приведенный ниже код работает нормально:
IShellFolder *psfParent = NULL;
LPITEMIDLIST pidlSystem = NULL;
HRESULT hr;
QString sPath = "C:\\Users\\guest\\Desktop\\kannden"; // for QT
//wchar_t * path = "C:\\Users\\guest\\Desktop\\kannden"; for windows
hr = SHGetDesktopFolder(&psfParent);
if (SUCCEEDED(hr))
{
hr =psfParent->ParseDisplayName(NULL,NULL, path,0, &pidlSystem,NULL);
SHChangeNotify(SHCNE_UPDATEDIR, SHCNF_IDLIST, pidlSystem, 0);
}
Но если я запускаю код в QT 4.7, я получаю ошибку:
нет соответствующей функции для вызова "IShellFolder :: ParseDispalyName (NULL, NULL, QString *, int, ITEMIDLIST **, NULL)