From : Virtual Dub
void DiskTestInitDlg(HWND hDlg)
{
DWORD dwDriveMask = GetLogicalDrives();
HWND hwndCombo = GetDlgItem(hDlg, IDC_DRIVE);
char buf[256], szVolName[64];
int i;
BOOL fHaveSelection = FALSE;
for(i=0; i<26; i++)
{
if (dwDriveMask & (1L<<i))
{
UINT uiDriveType;
char *lpszDesc;
char *s;
int index;
sprintf(buf, "%c:\\", i+'A');
uiDriveType = GetDriveType(buf);
switch(uiDriveType)
{
case 1: continue; // no root directory!?
case DRIVE_CDROM: continue; // How do you capture to a CD-ROM?
case DRIVE_REMOVABLE: lpszDesc = "Removable disk"; break;
case DRIVE_FIXED: lpszDesc = "Hard disk"; break;
case DRIVE_REMOTE: lpszDesc = "Network drive"; break;
case DRIVE_RAMDISK: lpszDesc = "Ramdisk"; break;
default: lpszDesc = ""; break;
}
if (uiDriveType==DRIVE_FIXED && GetVolumeInformation(buf, szVolName, sizeof szVolName, NULL, NULL, NULL, NULL, 0))
sprintf(buf, "%c: %s [%s]", i+'A', lpszDesc, szVolName);
else
sprintf(buf, "%c: %s", i+'A', lpszDesc);
index = SendMessage(hwndCombo, CB_ADDSTRING, 0, (LPARAM)buf);
if (index != CB_ERR)
{
SendMessage(hwndCombo, CB_SETITEMDATA, (WPARAM)index, i);
if (!fHaveSelection && (i>=2 || !(dwDriveMask>>(i+1))))
{
fHaveSelection = TRUE;
SendMessage(hwndCombo, CB_SETCURSEL, (WPARAM)index, 0);
}
}
}
}
CheckDlgButton(hDlg, IDC_BUFFERING_NONE, BST_CHECKED);
}
void DiskTestInitDlg(HWND hDlg)
{
DWORD dwDriveMask = GetLogicalDrives();
HWND hwndCombo = GetDlgItem(hDlg, IDC_DRIVE);
char buf[256], szVolName[64];
int i;
BOOL fHaveSelection = FALSE;
for(i=0; i<26; i++)
{
if (dwDriveMask & (1L<<i))
{
UINT uiDriveType;
char *lpszDesc;
char *s;
int index;
sprintf(buf, "%c:\\", i+'A');
uiDriveType = GetDriveType(buf);
switch(uiDriveType)
{
case 1: continue; // no root directory!?
case DRIVE_CDROM: continue; // How do you capture to a CD-ROM?
case DRIVE_REMOVABLE: lpszDesc = "Removable disk"; break;
case DRIVE_FIXED: lpszDesc = "Hard disk"; break;
case DRIVE_REMOTE: lpszDesc = "Network drive"; break;
case DRIVE_RAMDISK: lpszDesc = "Ramdisk"; break;
default: lpszDesc = ""; break;
}
if (uiDriveType==DRIVE_FIXED && GetVolumeInformation(buf, szVolName, sizeof szVolName, NULL, NULL, NULL, NULL, 0))
sprintf(buf, "%c: %s [%s]", i+'A', lpszDesc, szVolName);
else
sprintf(buf, "%c: %s", i+'A', lpszDesc);
index = SendMessage(hwndCombo, CB_ADDSTRING, 0, (LPARAM)buf);
if (index != CB_ERR)
{
SendMessage(hwndCombo, CB_SETITEMDATA, (WPARAM)index, i);
if (!fHaveSelection && (i>=2 || !(dwDriveMask>>(i+1))))
{
fHaveSelection = TRUE;
SendMessage(hwndCombo, CB_SETCURSEL, (WPARAM)index, 0);
}
}
}
}
CheckDlgButton(hDlg, IDC_BUFFERING_NONE, BST_CHECKED);
}
'Windows > Windows API' 카테고리의 다른 글
Message Cracker Wizard (0) | 2013.10.01 |
---|---|
Message Cracker (0) | 2013.10.01 |
TRANSPARENT BACKGROUND (0) | 2013.10.01 |
ClientToScreen (0) | 2013.10.01 |
File list (0) | 2013.10.01 |