LPMALLOC lpMalloc;
LPITEMIDLIST lpiDir;
LPSTR lpBuffer;
if(!SUCCEEDED(SHGetMalloc(&lpMalloc)))
{
return 1;
}
lpBuffer = (LPSTR)lpMalloc->Alloc(MAX_PATH);
if(lpBuffer == NULL)
{
lpMalloc->Release();
return 1;
};
if(!SUCCEEDED(SHGetSpecialFolderLocation(NULL,CSIDL_APPLICATION,&lpiDir)))
{
lpMalloc->Free(lpBuffer);
lpMalloc->Release();
return 1;
}
if(!SHGetPathFromIDList(lpiDir,lpBuffer))
{
lpMalloc->Free(lpiDir);
lpMalloc->Free(lpBuffer);
lpMalloc->Release();
return 1;
}
lpMalloc->Free(lpiDir);
lpMalloc->Free(lpBuffer);
lpMalloc->Release();