Skip to main content

SHGetFolderLocation C++ sample code

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(pidlRelative, SHGDN_NORMAL, &strDispName);
        hr = StrRetToBuf(&strDispName, pidlSystem, szDisplayName, sizeof(szDisplayName));
        std::wcout << "SHGDN_NORMAL - " <<< '\n';
    }

    psfParent->Release();
    CoTaskMemFree(pidlSystem);

    return 0;
} 


Need to link ShlwApi.lib to get this to work (Project Properties | Configuration Properties | Linker | Input | Additional Dependencies)

~ts

Comments

Popular posts from this blog

Error! Could not locate dkms.conf file install VirtualBox 4.1.8 on Ubuntu 11.10

Tried to update my Ubuntu host today and it did pickup that new version of VirtualBox is available (4.1.8). All other packages installed properly except that VirtualBox installation was complaining about missing dkms.conf file, see error message below. $: sudo /etc/init.d/vboxdrv setup * Stopping VirtualBox kernel modules [ OK ] * Uninstalling old VirtualBox DKMS kernel modules Error! Could not locate dkms.conf file. File: does not exist. [ OK ] * Trying to register the VirtualBox kernel modules using DKMS [ OK ] * Starting VirtualBox kernel modules [ OK ] Though it looks like installation was fine but I am concerned about its effects to VirtualBox functionality. To fix this, do: $: cd /var/lib/dkms/vboxhost $: sudo rm -r 4.1.4 $: sudo /etc/init.d/vboxdrv setup Of course you have to re...

UnrealEngine GenerateProjectFiles.bat error - could be due to missing RPCUtility.exe

Tried to run  GenerateProjectFiles.bat to build Unreal Engine from source ( link ),  but got error like below: C:\>Users\x\UnrealEngine>GenerateProjectFiles.bat Setting up Unreal Engine 4 project files... GenerateProjectFiles ERROR: It looks like you're missing some files that are required in order to generate projects.  Please check that you've downloaded and unpacked the engine source code, binaries, content and third-party dependencies before running this script. To fix, run setup.bat like: C:\Users\x\prj\UnrealEngine>setup.bat Note that you have to say no to the prompt Would you like to overwrite your changes (y/n)? .