Index: src/ch/Dialogs.cpp =================================================================== diff -u -N -rd2b121c78f510b5384b8ef0ca80afbfd7f77fef7 -rd5c3edd0d167db9b5d47d04248820fda49499a5e --- src/ch/Dialogs.cpp (.../Dialogs.cpp) (revision d2b121c78f510b5384b8ef0ca80afbfd7f77fef7) +++ src/ch/Dialogs.cpp (.../Dialogs.cpp) (revision d5c3edd0d167db9b5d47d04248820fda49499a5e) @@ -1,66 +1,66 @@ -/*************************************************************************** -* Copyright (C) 2001-2008 by J�zef Starosczyk * -* ixen@copyhandler.com * -* * -* This program is free software; you can redistribute it and/or modify * -* it under the terms of the GNU Library General Public License * -* (version 2) as published by the Free Software Foundation; * -* * -* This program is distributed in the hope that it will be useful, * -* but WITHOUT ANY WARRANTY; without even the implied warranty of * -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -* GNU General Public License for more details. * -* * -* You should have received a copy of the GNU Library General Public * -* License along with this program; if not, write to the * -* Free Software Foundation, Inc., * -* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * -***************************************************************************/ -#include "stdafx.h" -#include "dialogs.h" - -#ifdef _DEBUG -#define new DEBUG_NEW -#endif - -bool BrowseForFolder(LPCTSTR lpszTitle, CString* pResult) -{ - // code allows browsing on all disks - LPMALLOC pMalloc; - TCHAR pszBuffer[MAX_PATH]; - _sntprintf(pszBuffer, _MAX_PATH, _T("c:\\windows\\system")); - bool retval=false; - - /* Gets the Shell's default allocator */ - if (::SHGetMalloc(&pMalloc) == NOERROR) - { - BROWSEINFO bi; - LPITEMIDLIST pidl; - - // Get help on BROWSEINFO struct - it's got all the bit settings. - bi.hwndOwner = NULL; - bi.pidlRoot = NULL; - bi.pszDisplayName = pszBuffer; - bi.lpszTitle = lpszTitle; - bi.ulFlags = BIF_RETURNFSANCESTORS | BIF_RETURNONLYFSDIRS; - bi.lpfn = NULL; - bi.lParam = 0; - - // This next call issues the dialog box. - if ((pidl = ::SHBrowseForFolder(&bi)) != NULL) - { - if (::SHGetPathFromIDList(pidl, pszBuffer)) - { - *pResult=pszBuffer; - retval=true; - } - - // Free the PIDL allocated by SHBrowseForFolder. - pMalloc->Free(pidl); - } - // Release the shell's allocator. - pMalloc->Release(); - } - - return retval; -} +/*************************************************************************** +* Copyright (C) 2001-2008 by J�zef Starosczyk * +* ixen@copyhandler.com * +* * +* This program is free software; you can redistribute it and/or modify * +* it under the terms of the GNU Library General Public License * +* (version 2) as published by the Free Software Foundation; * +* * +* This program is distributed in the hope that it will be useful, * +* but WITHOUT ANY WARRANTY; without even the implied warranty of * +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +* GNU General Public License for more details. * +* * +* You should have received a copy of the GNU Library General Public * +* License along with this program; if not, write to the * +* Free Software Foundation, Inc., * +* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * +***************************************************************************/ +#include "stdafx.h" +#include "dialogs.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#endif + +bool BrowseForFolder(LPCTSTR lpszTitle, CString* pResult) +{ + // code allows browsing on all disks + LPMALLOC pMalloc; + TCHAR pszBuffer[MAX_PATH]; + _sntprintf(pszBuffer, _MAX_PATH, _T("c:\\windows\\system")); + bool retval=false; + + /* Gets the Shell's default allocator */ + if (::SHGetMalloc(&pMalloc) == NOERROR) + { + BROWSEINFO bi; + LPITEMIDLIST pidl; + + // Get help on BROWSEINFO struct - it's got all the bit settings. + bi.hwndOwner = NULL; + bi.pidlRoot = NULL; + bi.pszDisplayName = pszBuffer; + bi.lpszTitle = lpszTitle; + bi.ulFlags = BIF_RETURNFSANCESTORS | BIF_RETURNONLYFSDIRS; + bi.lpfn = NULL; + bi.lParam = 0; + + // This next call issues the dialog box. + if ((pidl = ::SHBrowseForFolder(&bi)) != NULL) + { + if (::SHGetPathFromIDList(pidl, pszBuffer)) + { + *pResult=pszBuffer; + retval=true; + } + + // Free the PIDL allocated by SHBrowseForFolder. + pMalloc->Free(pidl); + } + // Release the shell's allocator. + pMalloc->Release(); + } + + return retval; +}