-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathCustomFileDialog.cpp
More file actions
50 lines (43 loc) · 1.36 KB
/
CustomFileDialog.cpp
File metadata and controls
50 lines (43 loc) · 1.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
// CustomFileDialog.cpp : implementation file
//
#include "stdafx.h"
#include <boost/regex.hpp>
#include "SID_2FY.h"
#include "CustomFileDialog.h"
#include "dMessageBox.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CCustomFileDialog
IMPLEMENT_DYNAMIC(CCustomFileDialog, CFileDialog)
CCustomFileDialog::CCustomFileDialog(BOOL bOpenFileDialog, LPCTSTR lpszDefExt, LPCTSTR lpszFileName,
DWORD dwFlags, LPCTSTR lpszFilter, CWnd* pParentWnd) :
CFileDialog(bOpenFileDialog, lpszDefExt, lpszFileName, dwFlags, lpszFilter, pParentWnd)
{
}
BOOL CCustomFileDialog::OnFileNameOK()
{
CString strFileName;
strFileName = CFileDialog::GetFileTitle();
boost::regex expression("^[^\\\\/:*?\"<>|]*([\\\\/:*?\"<>|]{1,})[^\\\\/:*?\"<>|]*$");
boost::cmatch what;
char tempFileName[255];
WideCharToMultiByte(CP_ACP,0,strFileName,-1,tempFileName,255,NULL,NULL);
if(boost::regex_match(tempFileName, what, expression))//CStringתstring
{
CString info;
info.LoadString(IDS_PRJNAME_ERROR);
CdMessageBox box(this, info);
box.MsgBoxEx();
return TRUE;
}
return FALSE;
}
BEGIN_MESSAGE_MAP(CCustomFileDialog, CFileDialog)
//{{AFX_MSG_MAP(CCustomFileDialog)
// NOTE - the ClassWizard will add and remove mapping macros here.
//}}AFX_MSG_MAP
END_MESSAGE_MAP()