函数GetLogicalDriveStrings,它返回一个代表所有驱动器字母的重要字符串。每一个驱动器字母拥有D:\(尾随一个‘\’)的形式,这里 D 表示驱动器盘符DODOWRD cchBuffer,缓冲区的大小,LPTSTR lpszBuffer,用于装载逻辑驱动器名称的字串。每个名字都用一个NULL字符分隔,在最后一个名字后面用两个NULL表示中止(空中止) 例如A:\<null>C:\<null><null>
例如:
DWORD dirlen = GetLogicalDriveStrings(0, NULL); //获取字符串长度
HANDLE hp = GetProcessHeap(); //获取进程堆句柄
LPSTR pdir = (LPSTR)HeapAlloc(hp, HEAP_SERO_MEMORY, dirlen); //在堆中分配空间
LPSTR ptmp = pdir; //一个临时指针
GetLogicalDriveStrings(dirlen, pdir); //获取磁盘目录字符串
while(*pdir != 0)
{
m_Disk.Addstring(pdir); //m_Disk是一个组合框
pdir = strchr(pdir, 0) + 1; //查找下一个磁盘名称
}
HeapFree(hp, HEAP_NO_SERIALIZE, ptmp); //释放堆空间