00001
00002
00003
00004
00005
00006 #include "stdafx.h"
00007 #include "FdmApp.h"
00008 #include "Dlg_Unpack_AskOverwrite.h"
00009
00010 #ifdef _DEBUG
00011 #define new DEBUG_NEW
00012 #undef THIS_FILE
00013 static char THIS_FILE[] = __FILE__;
00014 #endif
00015
00016 CDlg_Unpack_AskOverwrite::CDlg_Unpack_AskOverwrite(CWnd* pParent )
00017 : CDialog(CDlg_Unpack_AskOverwrite::IDD, pParent)
00018 {
00019
00020
00021
00022 m_puNewSize = NULL;
00023 m_ptimeNewLastModified = NULL;
00024 }
00025
00026 void CDlg_Unpack_AskOverwrite::DoDataExchange(CDataExchange* pDX)
00027 {
00028 CDialog::DoDataExchange(pDX);
00029
00030
00031
00032 }
00033
00034 BEGIN_MESSAGE_MAP(CDlg_Unpack_AskOverwrite, CDialog)
00035
00036 ON_BN_CLICKED(IDC_YES, OnYes)
00037 ON_BN_CLICKED(IDC_YESFORALL, OnYesforall)
00038 ON_BN_CLICKED(IDC_NO2, OnNo)
00039 ON_BN_CLICKED(IDC_NOFORALL, OnNoforall)
00040
00041 END_MESSAGE_MAP()
00042
00043 void CDlg_Unpack_AskOverwrite::OnYes()
00044 {
00045 m_enOM = AC_OM_OVERWRITE;
00046 EndDialog (IDOK);
00047 }
00048
00049 void CDlg_Unpack_AskOverwrite::OnYesforall()
00050 {
00051 m_bForAll = true;
00052 OnYes ();
00053 }
00054
00055 void CDlg_Unpack_AskOverwrite::OnNo()
00056 {
00057 m_enOM = AC_OM_SKIP;
00058 EndDialog (IDOK);
00059 }
00060
00061 void CDlg_Unpack_AskOverwrite::OnNoforall()
00062 {
00063 m_bForAll = true;
00064 OnNo ();
00065 }
00066
00067 void CDlg_Unpack_AskOverwrite::OnCancel()
00068 {
00069 m_enOM = AC_OM_CANCEL;
00070 CDialog::OnCancel();
00071 }
00072
00073 BOOL CDlg_Unpack_AskOverwrite::OnInitDialog()
00074 {
00075 CDialog::OnInitDialog();
00076
00077 m_bForAll = false;
00078
00079 CString str;
00080 char szFileName [MY_MAX_PATH];
00081 fsGetFileName (m_strFile, szFileName);
00082
00083 CString str1;
00084 CString str2;
00085
00086 HANDLE hFile = CreateFile (m_strFile, GENERIC_READ,
00087 FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);
00088 if (hFile != INVALID_HANDLE_VALUE)
00089 {
00090 DWORD dwSizeHigh = 0, dwSizeLow = GetFileSize (hFile, &dwSizeHigh);
00091 FILETIME timeLastWrite;
00092 GetFileTime (hFile, NULL, NULL, &timeLastWrite);
00093 CloseHandle (hFile);
00094 ULARGE_INTEGER uli;
00095 uli.LowPart = dwSizeLow; uli.HighPart = dwSizeHigh;
00096 str1 = GetFileInfoString (&timeLastWrite, &uli.QuadPart);
00097 }
00098 else
00099 str1.Format ("%s, %s", LS (L_UNKNOWN), LS (L_UNKNOWN));
00100
00101 str2 = GetFileInfoString (m_ptimeNewLastModified, m_puNewSize);
00102
00103 str.Format (LS (L_UNPACK_EXISTSALREADYMSG), szFileName, str1, str2);
00104 SetDlgItemText (IDC__MSG, str);
00105
00106 ApplyLanguage ();
00107
00108 return TRUE;
00109 }
00110
00111 CString CDlg_Unpack_AskOverwrite::GetFileInfoString(FILETIME *time, UINT64 *size)
00112 {
00113 CString str, str2;
00114
00115 if (time)
00116 {
00117 SYSTEMTIME systime;
00118 FileTimeToSystemTime (time, &systime);
00119 char szDate [1000], szTime [1000];
00120 SystemTimeToStr (&systime, szDate, szTime, TRUE);
00121 str2 = szDate; str2 += ", "; str2 += szTime;
00122 }
00123 else
00124 str2 = LS (L_UNKNOWN);
00125
00126 str.Format ("%s, %s", size ? BytesToString (*size) : LS (L_UNKNOWN),
00127 str2);
00128
00129 return str;
00130 }
00131
00132 void CDlg_Unpack_AskOverwrite::ApplyLanguage()
00133 {
00134 fsDlgLngInfo lnginfo [] = {
00135 fsDlgLngInfo (IDC_YES, L_YES),
00136 fsDlgLngInfo (IDC_YESFORALL, L_YESFORALL),
00137 fsDlgLngInfo (IDC_NO2, L_SKIP),
00138 fsDlgLngInfo (IDC_NOFORALL, L_SKIPALL),
00139 fsDlgLngInfo (IDCANCEL, L_CANCEL),
00140 };
00141
00142 _LngMgr.ApplyLanguage (this, lnginfo, sizeof (lnginfo) / sizeof (fsDlgLngInfo), L_CONFIRMATION);
00143 }