예제 #1
0
파일: PageSingle.cpp 프로젝트: GetEnvy/Envy
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 );
}
예제 #2
0
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();
}
예제 #3
0
파일: PageSingle.cpp 프로젝트: GetEnvy/Envy
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 );
	}
}