|
// *********************************************************
// リストボックスに列挙
// 戻り値 : 成功 true, 失敗 false
// *********************************************************
BOOL LboxUnlha::EnumListbox( HWND hList, int nIndex, LPTSTR szWildName )
{
if ( LboxUnlha::lib == NULL ) {
return false;
}
if ( LboxUnlha::hArc == NULL ) {
return false;
}
INDIVIDUALINFO ivinfo;
int ret;
ret = UnlhaFindFirst(
LboxUnlha::hArc,
szWildName,
&ivinfo
);
char *szBuffer = new char[1024];
ZeroMemory( szBuffer, 1024 );
FILETIME ft;
SYSTEMTIME st;
while( ret == 0 ) {
lstrcpy( szBuffer, ivinfo.szFileName );
wsprintf( szBuffer+lstrlen(szBuffer), "\t%d",
ivinfo.dwOriginalSize );
wsprintf( szBuffer+lstrlen(szBuffer), "\t%d",
ivinfo.dwCompressedSize );
wsprintf( szBuffer+lstrlen(szBuffer), "\t%d",
ivinfo.wRatio );
DosDateTimeToFileTime( ivinfo.wDate, ivinfo.wTime, &ft );
FileTimeToSystemTime( &ft, &st );
wsprintf(
szBuffer+lstrlen(szBuffer),
"\t%04d/%02d/%02d %02d:%02d:%02d",
st.wYear,
st.wMonth,
st.wDay,
st.wHour,
st.wMinute,
st.wSecond
);
wsprintf( szBuffer+lstrlen(szBuffer), "\t%s",
ivinfo.szAttribute );
wsprintf( szBuffer+lstrlen(szBuffer), "\t%s",
ivinfo.szMode );
LboxListInsert( hList, nIndex, szBuffer );
ret = UnlhaFindNext(
LboxUnlha::hArc,
&ivinfo
);
nIndex++;
}
delete [] szBuffer;
return true;
}
| |