GetLogicalDriveStrings(), GetDriveType()
cf). LPTSTR : NULL문자로 끝나는 유니코드 도는 윈도우 문자열의 포인터
성공시 : 버퍼에 복사된 문자열의 길이(끝의 NULL 문자는 포함하지 않은 길이)
실패시 : zero
cf). char pTmp[256];
GetLogicalDriveStrings(256, pTmp);
pTmp[256]
GetDriveType(strDrive);
// 인수에는 각, "C:\", "D:\", "E:\" 가 들어간다.
예제 소스
CString strStatus; // 드라이브 타입명 저장
CString strDrive; // 논리적 드라이브명 임시 저장
char pTmp[256]; // local drive 이름의 나열 저장
memset(pTmp, '\0', 256);
// 논리적 드라이브 정보 얻기
GetLogicalDriveStrings(256, pTmp);
for(int i=0 ; i<256 ; i++) {
if(pTmp[i] == '\0' && pTmp[i+1] == '\0')
break;
strDrive.Empty();
while(pTmp[i] != '\0')
strDrive += pTmp[i++];
switch(GetDriveType(strDrive)) {
case DRIVE_CDROM:
strStatus = "CD-ROM 드라이브";
break;
case DRIVE_REMOVABLE:
strStatus = "플로피 디스크";
break;
case DRIVE_FIXED:
strStatus = "로컬 디스크";
break;
default :
strStatus = "알수없는 디스크";
break;
}
}
}
@
cf). LPTSTR : NULL문자로 끝나는 유니코드 도는 윈도우 문자열의 포인터
성공시 : 버퍼에 복사된 문자열의 길이(끝의 NULL 문자는 포함하지 않은 길이)
실패시 : zero
cf). char pTmp[256];
GetLogicalDriveStrings(256, pTmp);
pTmp[256]
GetDriveType(strDrive);
// 인수에는 각, "C:\", "D:\", "E:\" 가 들어간다.
예제 소스
CString strStatus; // 드라이브 타입명 저장
CString strDrive; // 논리적 드라이브명 임시 저장
char pTmp[256]; // local drive 이름의 나열 저장
memset(pTmp, '\0', 256);
// 논리적 드라이브 정보 얻기
GetLogicalDriveStrings(256, pTmp);
for(int i=0 ; i<256 ; i++) {
if(pTmp[i] == '\0' && pTmp[i+1] == '\0')
break;
strDrive.Empty();
while(pTmp[i] != '\0')
strDrive += pTmp[i++];
switch(GetDriveType(strDrive)) {
case DRIVE_CDROM:
strStatus = "CD-ROM 드라이브";
break;
case DRIVE_REMOVABLE:
strStatus = "플로피 디스크";
break;
case DRIVE_FIXED:
strStatus = "로컬 디스크";
break;
default :
strStatus = "알수없는 디스크";
break;
}
}
}
@