Ne pas boucler jusque 26 inutilement:
void __stdcall FillAllDrives(HWND hcmb)
{
DWORD dwdrvs;
char szdrv[4];
if(!(dwdrvs = GetLogicalDrives())) return;
*((DWORD*)szdrv) = '\\:A';
goDrvs:
if(dwdrvs & 1) SendMessage(hcmb, CB_ADDSTRING, 0, (long) szdrv);
szdrv[0]++;
if(dwdrvs >>= 1) goto goDrvs;
SendMessage(hcmb, CB_SETCURSEL, 0, 0);
}
// UNIQUEMENT DISQUES DURS LOCAUX
void __stdcall FillCmbDrives(HWND hcmb)
{
DWORD dwdrvs;
char szdrv[4];
if(!(dwdrvs = GetLogicalDrives())) return;
*((DWORD*)szdrv) = '\\:A';
goDrvs:
if(dwdrvs & 1)
if(GetDriveType(szdrv) == DRIVE_FIXED)
SendMessage(hcmb, CB_ADDSTRING, 0, (long) szdrv);
szdrv[0]++;
if(dwdrvs >>= 1) goto goDrvs;
SendMessage(hcmb, CB_SETCURSEL, 0, 0);
}
ciao...
BruNews, MVP VC++