void CSinglePage::Update() { const CString strFileName = ( m_sFileName.GetLength() < MAX_PATH ) ? m_sFileName : ( CString( L"\\\\?\\" ) + m_sFileName ); HANDLE hFile = CreateFile( strFileName, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL ); if ( hFile != INVALID_HANDLE_VALUE ) { DWORD nLow, nHigh; nLow = GetFileSize( hFile, &nHigh ); CloseHandle( hFile ); QWORD nSize = ( (QWORD)nHigh << 32 ) + (QWORD)nLow; m_sFileSize = SmartSize( nSize ); } else { CString strFormat, strMessage; strFormat.LoadString( IDS_SINGLE_CANT_OPEN ); strMessage.Format( strFormat, (LPCTSTR)m_sFileName ); AfxMessageBox( strMessage, MB_ICONEXCLAMATION ); m_sFileName.Empty(); } UpdateData( FALSE ); }
void CPackagePage::AddFile(LPCTSTR pszFile) { HANDLE hFile = CreateFile( CString( _T("\\\\?\\") ) + pszFile, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL ); if ( hFile == INVALID_HANDLE_VALUE ) { CString strFormat, strMessage; strFormat.LoadString( IDS_PACKAGE_CANT_OPEN ); strMessage.Format( strFormat, pszFile ); AfxMessageBox( strMessage, MB_ICONEXCLAMATION ); return; } DWORD nLow, nHigh; nLow = GetFileSize( hFile, &nHigh ); QWORD nSize = ( (QWORD)nHigh << 32 ) + (QWORD)nLow; CloseHandle( hFile ); SHFILEINFO pInfo = {}; HIMAGELIST hIL = (HIMAGELIST)SHGetFileInfo( pszFile, 0, &pInfo, sizeof(pInfo), SHGFI_SYSICONINDEX|SHGFI_SMALLICON ); if ( hIL != NULL && m_hImageList == NULL ) { m_hImageList = hIL; CImageList pTemp; pTemp.Attach( hIL ); m_wndList.SetImageList( &pTemp, LVSIL_SMALL ); pTemp.Detach(); } int nItem = m_wndList.InsertItem( LVIF_TEXT|LVIF_IMAGE, m_wndList.GetItemCount(), pszFile, 0, 0, pInfo.iIcon, NULL ); m_wndList.SetItemText( nItem, 1, SmartSize( nSize ) ); UpdateWindow(); }
void CSinglePage::OnDropFiles( HDROP hDropInfo ) { CString strFilename; LPWSTR pszFile = strFilename.GetBuffer( _MAX_PATH ); DragQueryFile( hDropInfo, 0, pszFile, _MAX_PATH ); m_sFileName = strFilename; DragFinish( hDropInfo ); HANDLE hFile = CreateFile( m_sFileName, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL ); if ( hFile != INVALID_HANDLE_VALUE ) { DWORD nLow, nHigh; nLow = GetFileSize( hFile, &nHigh ); CloseHandle( hFile ); QWORD nSize = ( (QWORD)nHigh << 32 ) + (QWORD)nLow; m_sFileSize = SmartSize( nSize ); UpdateData( FALSE ); } }