Introduction
This is an MFC application that renames Visual C++ Projects.
This application will replace all occurences of "Current Project Name" to "New Project Name" in all files and rename all file names that have "Current Project Name" in it.
This application supports:
- VC6 ~ VC9 Projects
- Changing the Project GUID
- Allows cancel during renaming
- UTF-8 files that may be created when the project name was non-english language
- Shows elapsed time and failed file list
This application was developed for Windows XP and uses Windows XP visual style.
The borders of controls like CEdit
may not be displayed clearly on Windows Vista.
Usage
- Browse the Visual C++ project to rename (*.dsp *.sln)
- Enter new project name
- Select "Project GUID change" if you want to change the project GUID
(You can change GUID if you don't like the generated GUID) - Click "Rename" to begin processing
Using the Code
This program is a dialog based application.
It has two views, one is "SelectView" the other is "ProgressView".
BEGIN_MESSAGE_MAP(CProjectRenameDlg, CDialog)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_WM_DESTROY()
ON_MESSAGE(WMU_SELECT_VIEW_CLOSE, OnSelectViewClose)
ON_MESSAGE(WMU_PROGRESS_VIEW_CLOSE, OnProgressViewClose)
ON_MESSAGE(WMU_RENAME_FINISHED, OnRenameDone)
ON_MESSAGE(WMU_RENAME_CANCELED, OnCancelRename)
END_MESSAGE_MAP()
When the user clicked "Rename" to begin renaming, WM_SELECT_VIEW_CLOSE
message is sent from "SelectView" and the thread to process is created.
LRESULT CProjectRenameDlg::OnSelectViewClose(WPARAM wParam, LPARAM lParam)
{
m_pRenameThread = (CRenameThread*)AfxBeginThread
(RUNTIME_CLASS(CRenameThread), THREAD_PRIORITY_NORMAL, 0, CREATE_SUSPENDED);
m_pRenameThread->m_bCancel = FALSE;
m_pRenameThread->m_pOwner = this;
m_pRenameThread->m_renameOptions = ((CSelectView*)m_pSelectView)->GetRenameOptions();
m_pRenameThread->ResumeThread();
}
When renaming has been finished, the thread sends WM_RENANE_FINISHED
message to notify that renaming has been completed.
BOOL CRenameThread::InitInstance()
{
ASSERT(!m_renameOptions.strCurrentPath.IsEmpty());
m_astrFileList.RemoveAll();
PrepareRename(m_renameOptions.strCurrentPath);
m_renameStatus.nTotalFiles = m_astrFileList.GetSize();
m_renameStatus.nCheckedFiles = 0;
m_renameStatus.nRenamedFiles = 0;
m_renameStatus.astrErrorList.RemoveAll();
ProcessRename(m_renameOptions.strCurrentPath);
return FALSE;
}
int CRenameThread::ExitInstance()
{
m_pOwner->PostMessage(WMU_RENAME_FINISHED);
return CWinThread::ExitInstance();
}
History
- 8 Jun 2009: Version 0.10 Released
- 9 Jun 2009: Version 0.11 Fixed bug with writing to UFT-8 files