mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
111 lines
2.2 KiB
C++
111 lines
2.2 KiB
C++
|
// ScanForFilesDlg.cpp : implementation file
|
||
|
//
|
||
|
|
||
|
#include "stdafx.h"
|
||
|
#include "IEPatcher.h"
|
||
|
#include "ScanForFilesDlg.h"
|
||
|
|
||
|
#ifdef _DEBUG
|
||
|
#define new DEBUG_NEW
|
||
|
#undef THIS_FILE
|
||
|
static char THIS_FILE[] = __FILE__;
|
||
|
#endif
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// CScanForFilesDlg dialog
|
||
|
|
||
|
|
||
|
CScanForFilesDlg::CScanForFilesDlg(CWnd* pParent /*=NULL*/)
|
||
|
: CDialog(CScanForFilesDlg::IDD, pParent)
|
||
|
{
|
||
|
//{{AFX_DATA_INIT(CScanForFilesDlg)
|
||
|
m_sFilePattern = _T("");
|
||
|
//}}AFX_DATA_INIT
|
||
|
}
|
||
|
|
||
|
|
||
|
void CScanForFilesDlg::DoDataExchange(CDataExchange* pDX)
|
||
|
{
|
||
|
CDialog::DoDataExchange(pDX);
|
||
|
//{{AFX_DATA_MAP(CScanForFilesDlg)
|
||
|
DDX_Text(pDX, IDC_FILEPATTERN, m_sFilePattern);
|
||
|
//}}AFX_DATA_MAP
|
||
|
}
|
||
|
|
||
|
|
||
|
BEGIN_MESSAGE_MAP(CScanForFilesDlg, CDialog)
|
||
|
//{{AFX_MSG_MAP(CScanForFilesDlg)
|
||
|
ON_BN_CLICKED(IDC_SELECTFILE, OnSelectFile)
|
||
|
ON_BN_CLICKED(IDC_SELECTFOLDER, OnSelectFolder)
|
||
|
//}}AFX_MSG_MAP
|
||
|
END_MESSAGE_MAP()
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// CScanForFilesDlg message handlers
|
||
|
|
||
|
void CScanForFilesDlg::OnOK()
|
||
|
{
|
||
|
UpdateData();
|
||
|
CDialog::OnOK();
|
||
|
}
|
||
|
|
||
|
void CScanForFilesDlg::OnSelectFile()
|
||
|
{
|
||
|
CFileDialog dlg(TRUE, NULL, _T("*.*"));
|
||
|
|
||
|
if (dlg.DoModal() == IDOK)
|
||
|
{
|
||
|
m_sFilePattern = dlg.GetPathName();
|
||
|
UpdateData(FALSE);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
void CScanForFilesDlg::OnSelectFolder()
|
||
|
{
|
||
|
BROWSEINFO bi;
|
||
|
TCHAR szFolder[MAX_PATH + 1];
|
||
|
|
||
|
memset(szFolder, 0, sizeof(szFolder));
|
||
|
|
||
|
memset(&bi, 0, sizeof(bi));
|
||
|
bi.hwndOwner = GetSafeHwnd();
|
||
|
bi.pidlRoot = NULL;
|
||
|
bi.pszDisplayName = szFolder;
|
||
|
bi.lpszTitle = _T("Pick a folder to scan");
|
||
|
|
||
|
// Open the folder browser dialog
|
||
|
LPITEMIDLIST pItemList = SHBrowseForFolder(&bi);
|
||
|
if (pItemList)
|
||
|
{
|
||
|
IMalloc *pShellAllocator = NULL;
|
||
|
|
||
|
SHGetMalloc(&pShellAllocator);
|
||
|
if (pShellAllocator)
|
||
|
{
|
||
|
char szPath[MAX_PATH + 1];
|
||
|
|
||
|
if (SHGetPathFromIDList(pItemList, szPath))
|
||
|
{
|
||
|
// Chop off the end path separator
|
||
|
int nPathSize = strlen(szPath);
|
||
|
if (nPathSize > 0)
|
||
|
{
|
||
|
if (szPath[nPathSize - 1] == '\\')
|
||
|
{
|
||
|
szPath[nPathSize - 1] = '\0';
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Form the file pattern
|
||
|
USES_CONVERSION;
|
||
|
m_sFilePattern.Format(_T("%s\\*.*"), A2T(szPath));
|
||
|
UpdateData(FALSE);
|
||
|
}
|
||
|
|
||
|
pShellAllocator->Free(pItemList);
|
||
|
pShellAllocator->Release();
|
||
|
}
|
||
|
|
||
|
}
|
||
|
}
|