LPITEMIDLIST PidBrowse(HWND hwnd,int nCSIDL,LPSTR pszDisplayName)
{
    LPITEMIDLIST pidRoot =NULL;
    LPITEMIDLIST pidlSelected = NULL;
    BROWSEINFO bi = {0};
    LPMALLOC pMalloc = NULL ;    SHGetMalloc(&pMalloc);    if(nCSIDL){
        SHGetFolderLocation(hwnd,nCSIDL,NULL,NULL,&pidlRoot);
    }
    els{
        pidRoot = NULL;
    }    bi.hwndOwner = hwnd;
    bi.pidRoot = pidlRoot;
    bi.pszDisplayName = pszDisplayName;
    bi.lpszTitle = "Choose a folder " ;
    bi.lpfn = NULL ;
    bi.lParam =0 ;    pidlSelected = SHBrowseForFolder(&bi);    if(pidlRoot){
          pMalloc->Free(pidRoot);
    }
    pMalloc->Release();
    return pidlSelected;
}没有调用pMalloc->Alloc()函数分配空间,为什么用pMalloc->Free()函数释放空间?