Original code is from MSDN . Sample code demonstrates how to use SHGetFolderLocation in C++. #include #include #include #include int main() { IShellFolder *psfParent = NULL; LPITEMIDLIST pidlSystem = NULL; LPCITEMIDLIST pidlRelative = NULL; STRRET strDispName; TCHAR szDisplayName[MAX_PATH]; HRESULT hr; hr = SHGetFolderLocation(NULL, CSIDL_DESKTOP, NULL, NULL, &pidlSystem); if (!SUCCEEDED(hr)) { std::cout << "hr bad" << std::endl; return -1; } hr = SHBindToParent(pidlSystem, IID_IShellFolder, (void **) &psfParent, &pidlRelative); if(SUCCEEDED(hr)) { hr = psfParent->GetDisplayNameOf(pidl...