File Browser (New name: Folder as Workspace) - in progress

Add "copy path", "add folder" and "remove all folders" 3 menu commands.
This commit is contained in:
Don Ho 2016-02-06 14:39:57 +01:00
parent 81deab0554
commit 7d0d874296
11 changed files with 122 additions and 35 deletions

View File

@ -150,8 +150,10 @@ static int __stdcall BrowseCallbackProc(HWND hwnd, UINT uMsg, LPARAM, LPARAM pDa
}; };
void folderBrowser(HWND parent, int outputCtrlID, const TCHAR *defaultStr) generic_string folderBrowser(HWND parent, const generic_string & title, int outputCtrlID, const TCHAR *defaultStr)
{ {
generic_string dirStr;
// This code was copied and slightly modifed from: // This code was copied and slightly modifed from:
// http://www.bcbdev.com/faqs/faq62.htm // http://www.bcbdev.com/faqs/faq62.htm
@ -170,11 +172,13 @@ void folderBrowser(HWND parent, int outputCtrlID, const TCHAR *defaultStr)
info.pidlRoot = NULL; info.pidlRoot = NULL;
TCHAR szDisplayName[MAX_PATH]; TCHAR szDisplayName[MAX_PATH];
info.pszDisplayName = szDisplayName; info.pszDisplayName = szDisplayName;
info.lpszTitle = TEXT("Select a folder to search from"); info.lpszTitle = title.c_str();
info.ulFlags = 0; info.ulFlags = 0;
info.lpfn = BrowseCallbackProc; info.lpfn = BrowseCallbackProc;
TCHAR directory[MAX_PATH]; TCHAR directory[MAX_PATH];
::GetDlgItemText(parent, outputCtrlID, directory, _countof(directory)); if (outputCtrlID != 0)
::GetDlgItemText(parent, outputCtrlID, directory, _countof(directory));
directory[_countof(directory) - 1] = '\0'; directory[_countof(directory) - 1] = '\0';
if (!directory[0] && defaultStr) if (!directory[0] && defaultStr)
@ -193,12 +197,17 @@ void folderBrowser(HWND parent, int outputCtrlID, const TCHAR *defaultStr)
// Return is true if success. // Return is true if success.
TCHAR szDir[MAX_PATH]; TCHAR szDir[MAX_PATH];
if (::SHGetPathFromIDList(pidl, szDir)) if (::SHGetPathFromIDList(pidl, szDir))
{
// Set edit control to the directory path. // Set edit control to the directory path.
::SetDlgItemText(parent, outputCtrlID, szDir); if (outputCtrlID != 0)
::SetDlgItemText(parent, outputCtrlID, szDir);
dirStr = szDir;
}
pShellMalloc->Free(pidl); pShellMalloc->Free(pidl);
} }
pShellMalloc->Release(); pShellMalloc->Release();
} }
return dirStr;
} }

View File

@ -66,7 +66,7 @@ const bool dirDown = false;
typedef std::basic_string<TCHAR> generic_string; typedef std::basic_string<TCHAR> generic_string;
void folderBrowser(HWND parent, int outputCtrlID, const TCHAR *defaultStr = NULL); generic_string folderBrowser(HWND parent, const generic_string & title = TEXT(""), int outputCtrlID = 0, const TCHAR *defaultStr = NULL);
generic_string getFolderName(HWND parent, const TCHAR *defaultDir = NULL); generic_string getFolderName(HWND parent, const TCHAR *defaultDir = NULL);
void printInt(int int2print); void printInt(int int2print);

View File

@ -5383,7 +5383,7 @@ void Notepad_plus::launchFileBrowser(const vector<generic_string> & folders)
data.dlgID = IDM_VIEW_FILEBROWSER; data.dlgID = IDM_VIEW_FILEBROWSER;
NativeLangSpeaker *pNativeSpeaker = (NppParameters::getInstance())->getNativeLangSpeaker(); NativeLangSpeaker *pNativeSpeaker = (NppParameters::getInstance())->getNativeLangSpeaker();
generic_string title_temp = pNativeSpeaker->getAttrNameStr(FB_PROJECTPANELTITLE, "FileBrowser", "PanelTitle"); generic_string title_temp = pNativeSpeaker->getAttrNameStr(FB_PANELTITLE, "FileBrowser", "PanelTitle");
static TCHAR title[32]; static TCHAR title[32];
if (title_temp.length() < 32) if (title_temp.length() < 32)

View File

@ -504,7 +504,7 @@ BEGIN
MENUITEM "Project Panel 2", IDM_VIEW_PROJECT_PANEL_2 MENUITEM "Project Panel 2", IDM_VIEW_PROJECT_PANEL_2
MENUITEM "Project Panel 3", IDM_VIEW_PROJECT_PANEL_3 MENUITEM "Project Panel 3", IDM_VIEW_PROJECT_PANEL_3
END END
MENUITEM "Folder as Workspace", IDM_VIEW_FILEBROWSER
MENUITEM "Document Map", IDM_VIEW_DOC_MAP MENUITEM "Document Map", IDM_VIEW_DOC_MAP
MENUITEM "Function List", IDM_VIEW_FUNC_LIST MENUITEM "Function List", IDM_VIEW_FUNC_LIST
MENUITEM SEPARATOR MENUITEM SEPARATOR

View File

@ -1159,7 +1159,7 @@ INT_PTR CALLBACK FindReplaceDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM
case IDD_FINDINFILES_BROWSE_BUTTON : case IDD_FINDINFILES_BROWSE_BUTTON :
{ {
if (_currentStatus == FINDINFILES_DLG) if (_currentStatus == FINDINFILES_DLG)
folderBrowser(_hSelf, IDD_FINDINFILES_DIR_COMBO, _options._directory.c_str()); folderBrowser(_hSelf, TEXT("Select a folder to search from"), IDD_FINDINFILES_DIR_COMBO, _options._directory.c_str());
} }
return TRUE; return TRUE;

View File

@ -246,9 +246,9 @@ INT_PTR CALLBACK FileBrowser::run_dlgProc(UINT message, WPARAM wParam, LPARAM lP
void FileBrowser::initPopupMenus() void FileBrowser::initPopupMenus()
{ {
NativeLangSpeaker *pNativeSpeaker = (NppParameters::getInstance())->getNativeLangSpeaker(); //NativeLangSpeaker *pNativeSpeaker = (NppParameters::getInstance())->getNativeLangSpeaker();
generic_string edit_removeFolderFromFileBrowser = pNativeSpeaker->getProjectPanelLangMenuStr("FileBrowserContextMenu", IDM_FILEBROWSER_REMOVEROOTFOLDER, PM_EDITREMOVE); /*
/* generic_string removeFolderFromFileBrowser = pNativeSpeaker->getProjectPanelLangMenuStr("FileBrowserContextMenu", IDM_FILEBROWSER_REMOVEROOTFOLDER, FB_REMOVEROOT);
generic_string edit_rename = pNativeSpeaker->getProjectPanelLangMenuStr("ProjectMenu", IDM_FILEBROWSER_RENAME, PM_EDITRENAME); generic_string edit_rename = pNativeSpeaker->getProjectPanelLangMenuStr("ProjectMenu", IDM_FILEBROWSER_RENAME, PM_EDITRENAME);
generic_string edit_addfolder = pNativeSpeaker->getProjectPanelLangMenuStr("ProjectMenu", IDM_FILEBROWSER_NEWFOLDER, PM_EDITNEWFOLDER); generic_string edit_addfolder = pNativeSpeaker->getProjectPanelLangMenuStr("ProjectMenu", IDM_FILEBROWSER_NEWFOLDER, PM_EDITNEWFOLDER);
generic_string edit_addfiles = pNativeSpeaker->getProjectPanelLangMenuStr("ProjectMenu", IDM_FILEBROWSER_ADDFILES, PM_EDITADDFILES); generic_string edit_addfiles = pNativeSpeaker->getProjectPanelLangMenuStr("ProjectMenu", IDM_FILEBROWSER_ADDFILES, PM_EDITADDFILES);
@ -260,18 +260,24 @@ void FileBrowser::initPopupMenus()
edit_remove = pNativeSpeaker->getProjectPanelLangMenuStr("FolderMenu", IDM_FILEBROWSER_DELETEFOLDER, PM_EDITREMOVE); edit_remove = pNativeSpeaker->getProjectPanelLangMenuStr("FolderMenu", IDM_FILEBROWSER_DELETEFOLDER, PM_EDITREMOVE);
*/ */
_hGlobalMenu = ::CreatePopupMenu(); _hGlobalMenu = ::CreatePopupMenu();
::InsertMenu(_hGlobalMenu, 0, MF_BYCOMMAND, IDM_FILEBROWSER_ADDROOT, TEXT("Add"));
::InsertMenu(_hGlobalMenu, 0, MF_BYCOMMAND, IDM_FILEBROWSER_REMOVEALLROOTS, TEXT("Remove All"));
_hRootMenu = ::CreatePopupMenu(); _hRootMenu = ::CreatePopupMenu();
::InsertMenu(_hRootMenu, 0, MF_BYCOMMAND, IDM_FILEBROWSER_REMOVEROOTFOLDER, edit_removeFolderFromFileBrowser.c_str()); ::InsertMenu(_hRootMenu, 0, MF_BYCOMMAND, IDM_FILEBROWSER_REMOVEROOTFOLDER, TEXT("Remove"));
::InsertMenu(_hRootMenu, 0, MF_BYCOMMAND, IDM_FILEBROWSER_COPYEPATH, TEXT("Copy path"));
::InsertMenu(_hRootMenu, 0, MF_BYCOMMAND, IDM_FILEBROWSER_EXPLORERHERE, TEXT("Explorer here")); ::InsertMenu(_hRootMenu, 0, MF_BYCOMMAND, IDM_FILEBROWSER_EXPLORERHERE, TEXT("Explorer here"));
::InsertMenu(_hRootMenu, 0, MF_BYCOMMAND, IDM_FILEBROWSER_CMDHERE, TEXT("CMD here")); ::InsertMenu(_hRootMenu, 0, MF_BYCOMMAND, IDM_FILEBROWSER_CMDHERE, TEXT("CMD here"));
_hFolderMenu = ::CreatePopupMenu(); _hFolderMenu = ::CreatePopupMenu();
::InsertMenu(_hFolderMenu, 0, MF_BYCOMMAND, IDM_FILEBROWSER_COPYEPATH, TEXT("Copy path"));
::InsertMenu(_hFolderMenu, 0, MF_BYCOMMAND, IDM_FILEBROWSER_EXPLORERHERE, TEXT("Explorer here")); ::InsertMenu(_hFolderMenu, 0, MF_BYCOMMAND, IDM_FILEBROWSER_EXPLORERHERE, TEXT("Explorer here"));
::InsertMenu(_hFolderMenu, 0, MF_BYCOMMAND, IDM_FILEBROWSER_CMDHERE, TEXT("CMD here")); ::InsertMenu(_hFolderMenu, 0, MF_BYCOMMAND, IDM_FILEBROWSER_CMDHERE, TEXT("CMD here"));
//::InsertMenu(_hFolderMenu, 0, MF_BYCOMMAND, IDM_FILEBROWSER_NEWFOLDER, edit_addfolder.c_str()); //::InsertMenu(_hFolderMenu, 0, MF_BYCOMMAND, IDM_FILEBROWSER_NEWFOLDER, edit_addfolder.c_str());
//::InsertMenu(_hFolderMenu, 0, MF_BYCOMMAND, IDM_FILEBROWSER_ADDFILES, edit_addfiles.c_str()); //::InsertMenu(_hFolderMenu, 0, MF_BYCOMMAND, IDM_FILEBROWSER_ADDFILES, edit_addfiles.c_str());
_hFileMenu = ::CreatePopupMenu(); _hFileMenu = ::CreatePopupMenu();
::InsertMenu(_hFileMenu, 0, MF_BYCOMMAND, IDM_FILEBROWSER_COPYEPATH, TEXT("Copy path"));
::InsertMenu(_hFileMenu, 0, MF_BYCOMMAND, IDM_FILEBROWSER_EXPLORERHERE, TEXT("Explorer here")); ::InsertMenu(_hFileMenu, 0, MF_BYCOMMAND, IDM_FILEBROWSER_EXPLORERHERE, TEXT("Explorer here"));
::InsertMenu(_hFileMenu, 0, MF_BYCOMMAND, IDM_FILEBROWSER_CMDHERE, TEXT("CMD here")); ::InsertMenu(_hFileMenu, 0, MF_BYCOMMAND, IDM_FILEBROWSER_CMDHERE, TEXT("CMD here"));
//::InsertMenu(_hFileMenu, 0, MF_BYCOMMAND, IDM_FILEBROWSER_RENAME, edit_rename.c_str()); //::InsertMenu(_hFileMenu, 0, MF_BYCOMMAND, IDM_FILEBROWSER_RENAME, edit_rename.c_str());
@ -692,8 +698,6 @@ void FileBrowser::popupMenuCmd(int cmdID)
{ {
// get selected item handle // get selected item handle
HTREEITEM selectedNode = _treeView.getSelection(); HTREEITEM selectedNode = _treeView.getSelection();
if (not selectedNode)
return;
switch (cmdID) switch (cmdID)
{ {
@ -703,6 +707,8 @@ void FileBrowser::popupMenuCmd(int cmdID)
// //
case IDM_FILEBROWSER_REMOVEROOTFOLDER: case IDM_FILEBROWSER_REMOVEROOTFOLDER:
{ {
if (not selectedNode) return;
generic_string *rootPath = (generic_string *)_treeView.getItemParam(selectedNode); generic_string *rootPath = (generic_string *)_treeView.getItemParam(selectedNode);
if (_treeView.getParent(selectedNode) != nullptr || rootPath == nullptr) if (_treeView.getParent(selectedNode) != nullptr || rootPath == nullptr)
return; return;
@ -723,6 +729,8 @@ void FileBrowser::popupMenuCmd(int cmdID)
case IDM_FILEBROWSER_EXPLORERHERE: case IDM_FILEBROWSER_EXPLORERHERE:
{ {
if (not selectedNode) return;
generic_string path = getNodePath(selectedNode); generic_string path = getNodePath(selectedNode);
if (::PathFileExists(path.c_str())) if (::PathFileExists(path.c_str()))
{ {
@ -736,6 +744,8 @@ void FileBrowser::popupMenuCmd(int cmdID)
case IDM_FILEBROWSER_CMDHERE: case IDM_FILEBROWSER_CMDHERE:
{ {
if (not selectedNode) return;
if (getNodeType(selectedNode) == browserNodeType_file) if (getNodeType(selectedNode) == browserNodeType_file)
selectedNode = _treeView.getParent(selectedNode); selectedNode = _treeView.getParent(selectedNode);
@ -750,18 +760,44 @@ void FileBrowser::popupMenuCmd(int cmdID)
} }
break; break;
case IDM_FILEBROWSER_COPYEPATH:
{
if (not selectedNode) return;
generic_string path = getNodePath(selectedNode);
str2Clipboard(path, _hParent);
}
break;
case IDM_FILEBROWSER_REMOVEALLROOTS:
{
for (int i = _folderUpdaters.size() - 1; i >= 0; --i)
{
_folderUpdaters[i]->stopWatcher();
HTREEITEM root = getRootFromFullPath(_folderUpdaters[i]->_rootFolder._rootPath);
if (root)
_treeView.removeItem(root);
_folderUpdaters.erase(_folderUpdaters.begin() + i);
}
}
break;
case IDM_FILEBROWSER_ADDROOT:
{
generic_string folderPath = folderBrowser(_hParent, TEXT("Select a folder to add in Folder as Workspace panel"));
if (not folderPath.empty())
{
addRootFolder(folderPath);
}
}
break;
/* /*
case IDM_FILEBROWSER_RENAME : case IDM_FILEBROWSER_RENAME :
TreeView_EditLabel(_treeView.getHSelf(), hTreeItem); TreeView_EditLabel(_treeView.getHSelf(), hTreeItem);
break; break;
case IDM_FILEBROWSER_NEWFOLDER :
{
NativeLangSpeaker *pNativeSpeaker = (NppParameters::getInstance())->getNativeLangSpeaker();
generic_string newFolderLabel = pNativeSpeaker->getAttrNameStr(PM_NEWFOLDERNAME, "ProjectManager", "NewFolderName");
createNewFolder(hTreeItem, newFolderLabel.c_str());
}
break;

View File

@ -37,7 +37,8 @@
#include "TreeView.h" #include "TreeView.h"
#include "fileBrowser_rc.h" #include "fileBrowser_rc.h"
#define FB_PROJECTPANELTITLE TEXT("File Browser") #define FB_PANELTITLE TEXT("Folder as Workspace")
/*
#define PM_NEWFOLDERNAME TEXT("Folder Name") #define PM_NEWFOLDERNAME TEXT("Folder Name")
#define PM_NEWPROJECTNAME TEXT("Project Name") #define PM_NEWPROJECTNAME TEXT("Project Name")
@ -50,14 +51,16 @@
#define PM_EDITNEWFOLDER TEXT("Add Folder") #define PM_EDITNEWFOLDER TEXT("Add Folder")
#define PM_EDITADDFILES TEXT("Add Files...") #define PM_EDITADDFILES TEXT("Add Files...")
#define PM_EDITADDFILESRECUSIVELY TEXT("Add Files from Directory...") #define PM_EDITADDFILESRECUSIVELY TEXT("Add Files from Directory...")
#define PM_EDITREMOVE TEXT("Remove\tDEL") */
#define PM_EDITMODIFYFILE TEXT("Modify File Path") #define FB_REMOVEROOT TEXT("Remove")
#define PM_WORKSPACEMENUENTRY TEXT("Workspace") //#define PM_EDITMODIFYFILE TEXT("Copy path")
#define PM_EDITMENUENTRY TEXT("Edit")
#define PM_MOVEUPENTRY TEXT("Move Up\tCtrl+Up") //#define PM_WORKSPACEMENUENTRY TEXT("Workspace")
#define PM_MOVEDOWNENTRY TEXT("Move Down\tCtrl+Down") //#define PM_EDITMENUENTRY TEXT("Edit")
//#define PM_MOVEUPENTRY TEXT("Move Up\tCtrl+Up")
//#define PM_MOVEDOWNENTRY TEXT("Move Down\tCtrl+Down")
class TiXmlNode; class TiXmlNode;

View File

@ -34,16 +34,17 @@
#define IDD_FILEBROWSER_MENU (IDD_FILEBROWSER + 10) #define IDD_FILEBROWSER_MENU (IDD_FILEBROWSER + 10)
#define IDM_FILEBROWSER_REMOVEROOTFOLDER (IDD_FILEBROWSER_MENU + 1) #define IDM_FILEBROWSER_REMOVEROOTFOLDER (IDD_FILEBROWSER_MENU + 1)
#define IDM_FILEBROWSER_REMOVEALLROOTS (IDD_FILEBROWSER_MENU + 2)
#define IDM_FILEBROWSER_ADDROOT (IDD_FILEBROWSER_MENU + 3)
/* /*
#define IDM_FILEBROWSER_RENAME (IDD_FILEBROWSER_MENU + 1)
#define IDM_FILEBROWSER_NEWFOLDER (IDD_FILEBROWSER_MENU + 2)
#define IDM_FILEBROWSER_ADDFILES (IDD_FILEBROWSER_MENU + 3) #define IDM_FILEBROWSER_ADDFILES (IDD_FILEBROWSER_MENU + 3)
#define IDM_FILEBROWSER_DELETEFILE (IDD_FILEBROWSER_MENU + 5) #define IDM_FILEBROWSER_DELETEFILE (IDD_FILEBROWSER_MENU + 5)
*/ */
//#define IDM_FILEBROWSER_MODIFYFILEPATH (IDD_FILEBROWSER_MENU + 6) #define IDM_FILEBROWSER_COPYEPATH (IDD_FILEBROWSER_MENU + 6)
#define IDM_FILEBROWSER_EXPLORERHERE (IDD_FILEBROWSER_MENU + 8) #define IDM_FILEBROWSER_EXPLORERHERE (IDD_FILEBROWSER_MENU + 8)
#define IDM_FILEBROWSER_CMDHERE (IDD_FILEBROWSER_MENU + 9) #define IDM_FILEBROWSER_CMDHERE (IDD_FILEBROWSER_MENU + 9)

View File

@ -1386,7 +1386,7 @@ INT_PTR CALLBACK DefaultDirectoryDlg::run_dlgProc(UINT Message, WPARAM wParam, L
return TRUE; return TRUE;
case IDD_OPENSAVEDIR_ALWAYSON_BROWSE_BUTTON : case IDD_OPENSAVEDIR_ALWAYSON_BROWSE_BUTTON :
folderBrowser(_hSelf, IDC_OPENSAVEDIR_ALWAYSON_EDIT); folderBrowser(_hSelf, TEXT("Select a folder as default directory"), IDC_OPENSAVEDIR_ALWAYSON_EDIT);
return TRUE; return TRUE;
case IDC_OPENSAVEDIR_CHECK_USENEWSTYLESAVEDIALOG: case IDC_OPENSAVEDIR_CHECK_USENEWSTYLESAVEDIALOG:
@ -2395,7 +2395,7 @@ INT_PTR CALLBACK BackupDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM)
} }
case IDD_BACKUPDIR_BROWSE_BUTTON : case IDD_BACKUPDIR_BROWSE_BUTTON :
{ {
folderBrowser(_hSelf, IDC_BACKUPDIR_EDIT); folderBrowser(_hSelf, TEXT("Select a folder as backup directory"), IDC_BACKUPDIR_EDIT);
return TRUE; return TRUE;
} }
@ -2960,7 +2960,7 @@ INT_PTR CALLBACK SettingsOnCloudDlg::run_dlgProc(UINT Message, WPARAM wParam, LP
case IDD_CLOUDPATH_BROWSE_BUTTON: case IDD_CLOUDPATH_BROWSE_BUTTON:
{ {
folderBrowser(_hSelf, IDC_CLOUDPATH_EDIT); folderBrowser(_hSelf, TEXT("Select a folder from/to where Notepad++ reads/writes its settings"), IDC_CLOUDPATH_EDIT);
} }
break; break;

View File

@ -1060,6 +1060,44 @@ generic_string NativeLangSpeaker::getProjectPanelLangMenuStr(const char * nodeNa
} }
return defaultStr; return defaultStr;
} }
/*
generic_string NativeLangSpeaker::getFileBrowserLangMenuStr(const char * nodeName, int cmdID, const TCHAR *defaultStr) const
{
if (!_nativeLangA) return defaultStr;
TiXmlNodeA *targetNode = _nativeLangA->FirstChild("FileBrowser");
if (!targetNode) return defaultStr;
targetNode = targetNode->FirstChild("Menus");
if (!targetNode) return defaultStr;
targetNode = targetNode->FirstChild(nodeName);
if (!targetNode) return defaultStr;
const char *name = NULL;
for (TiXmlNodeA *childNode = targetNode->FirstChildElement("Item");
childNode;
childNode = childNode->NextSibling("Item"))
{
TiXmlElementA *element = childNode->ToElement();
int id;
const char *idStr = element->Attribute("id", &id);
if (idStr && id == cmdID)
{
name = element->Attribute("name");
break;
}
}
if (name && name[0])
{
WcharMbcsConvertor *wmc = WcharMbcsConvertor::getInstance();
return wmc->char2wchar(name, _nativeLangEncoding);
}
return defaultStr;
}
*/
generic_string NativeLangSpeaker::getAttrNameStr(const TCHAR *defaultStr, const char *nodeL1Name, const char *nodeL2Name) const generic_string NativeLangSpeaker::getAttrNameStr(const TCHAR *defaultStr, const char *nodeL1Name, const char *nodeL2Name) const
{ {

View File

@ -83,7 +83,7 @@ public:
}; };
bool getMsgBoxLang(const char *msgBoxTagName, generic_string & title, generic_string & message); bool getMsgBoxLang(const char *msgBoxTagName, generic_string & title, generic_string & message);
generic_string getProjectPanelLangMenuStr(const char * nodeName, int cmdID, const TCHAR *defaultStr) const; generic_string getProjectPanelLangMenuStr(const char * nodeName, int cmdID, const TCHAR *defaultStr) const;
//generic_string getFunctionListPanelLangStr(const char *nodeName, const TCHAR *defaultStr) const; //generic_string getFileBrowserLangMenuStr(const char * nodeName, int cmdID, const TCHAR *defaultStr) const;
generic_string getAttrNameStr(const TCHAR *defaultStr, const char *nodeL1Name, const char *nodeL2Name = NULL) const; generic_string getAttrNameStr(const TCHAR *defaultStr, const char *nodeL1Name, const char *nodeL2Name = NULL) const;
int messageBox(const char *msgBoxTagName, HWND hWnd, const TCHAR *message, const TCHAR *title, int msgBoxType, int intInfo = 0, const TCHAR *strInfo = NULL); int messageBox(const char *msgBoxTagName, HWND hWnd, const TCHAR *message, const TCHAR *title, int msgBoxType, int intInfo = 0, const TCHAR *strInfo = NULL);
private: private: