|
// *********************************************************
// リストボックスにドライブの一覧を追加
// 戻り値 : 成功 true, 失敗 false
// *********************************************************
BOOL LboxEnumDrive( HWND hList, int nIndex )
{
HWND hListWork;
hListWork = LboxCreateWorkbox( GetParent( hList ) );
if ( hListWork == NULL ) {
return false;
}
SendMessage(
hListWork,
LB_DIR,
(WPARAM)(UINT)( DDL_DRIVES ),
(LPARAM)(LPCTSTR)""
);
int i,nList,nInsert;
char szBuffer[512];
char szDrive[10];
UINT nType;
nList = LboxListCount( hListWork );
nInsert = nIndex;
for( i = 0; i < nList; i++ ) {
LboxListGetText( hListWork, i, szBuffer, sizeof( szBuffer ) );
if( szBuffer[0] = '[' && szBuffer[1] == '-' ) {
szBuffer[3] = 0x00;
CharUpperBuff( szBuffer, (DWORD)3 );
lstrcpy( szDrive, szBuffer+2 );
lstrcat( szDrive, ":\\" );
nType = GetDriveType( szDrive );
switch( nType ) {
case DRIVE_FIXED:
lstrcat( szBuffer, "\t固定ディスク" );
break;
case DRIVE_REMOVABLE:
lstrcat( szBuffer, "\tリムーバルディスク" );
break;
case DRIVE_CDROM:
lstrcat( szBuffer, "\tCD-ROM" );
break;
case DRIVE_RAMDISK:
lstrcat( szBuffer, "\tRAMディスク" );
break;
case DRIVE_REMOTE:
lstrcat( szBuffer, "\tネットワークドライブ" );
break;
default:
lstrcat( szBuffer, "\t不明" );
break;
}
LboxListInsert( hList, nInsert, szBuffer+2 );
nInsert++;
}
}
DestroyWindow( hListWork );
return true;
}
| |