#include "shlobj.h"
WINSHELLAPI
hwndOwner:
nFolder:
CSIDL_BITBUCKET
CSIDL_CONTROLS
CSIDL_DESKTOP
CSIDL_DESKTOPDIRECTORY
CSIDL_DRIVES
CSIDL_FONTS
CSIDL_NETHOOD
CSIDL_NETWORK
CSIDL_PERSONAL
CSIDL_PRINTERS
CSIDL_PROGRAMS
CSIDL_RECENT
CSIDL_SENDTO
CSIDL_STARTMENU
CSIDL_STARTUP
CSIDL_TEMPLATES
ppidl:
示例代码VC++
LPITEMIDLIST pidl;
LPMALLOC pShellMalloc;
char szDir[200];
if(SUCCEEDED(SHGetMalloc(&pShellMalloc)))
{
}
::MessageBox (NULL,szDir,"Path",MB_OK);
LPITEMIDLIST pidl;
TCHAR szPath [MAX_PATH];
if(SUCCEEDED( SHGetSpecialFolderLocation ( NULL, CSIDL_FAVORITES, &pidl )))
{
if ( SHGetPathFromIDList ( pidl, szPath ))
{
CString sDisplayName;
SHFILEINFO sfi;
ZeroMemory(&sfi,sizeof(sfi));
UINT uFlags = SHGFI_PIDL | SHGFI_DISPLAYNAME;
SHGetFileInfo((LPCTSTR)pidl, 0, &sfi, sizeof(SHFILEINFO), uFlags);
sDisplayName = sfi.szDisplayName;
CString szDisplay;
szDisplay.Format(_T(" %s /n /n %s"),szPath, sDisplayName);
GetDlgItem(IDC_STATIC)->SetWindowText(szDisplay);
CoTaskMemFree(pidl); //free the resource
}
}