опубликован 24-12-2001 16:20 MSK
У тебя в структуре BROWSEINFO есть pidlRoot. Его нужно заполнить. Примерно так:
LPITEMIDLIST pidlRoot = NULL;
LPSHELLFOLDER pDesktopFolder = NULL;
SHGetDesktopFolder(&pDesktopFolder);
if ( pDesktopFolder != NULL )
{
char szPath[MAX_PATH];
OLECHAR olePath[MAX_PATH];
ULONG chEaten;
ULONG dwAttributes;
HRESULT hr; GetCurrentDirectory(MAX_PATH, szPath);
MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, szPath, -1, olePath, MAX_PATH);
// Convert the path to an ITEMIDLIST.
hr = pDesktopFolder->ParseDisplayName(NULL,
NULL,
olePath,
&chEaten,
&pidlRoot,
&dwAttributes);
pDesktopFolder->Release();
}
Затем
bi.pidlRoot = pidlRoot;