133 lines
3.7 KiB
C
133 lines
3.7 KiB
C
|
//
|
||
|
//
|
||
|
//
|
||
|
#ifndef _MAPPING_PAGE_H
|
||
|
#define _MAPPING_PAGE_H
|
||
|
|
||
|
#include "resource.h"
|
||
|
#include "ExchControls.h"
|
||
|
#include "PropSheet.h"
|
||
|
|
||
|
class CAppMappingPage :
|
||
|
public WTL::CPropertyPageImpl<CAppMappingPage>,
|
||
|
public WTL::CWinDataExchange<CAppMappingPage>
|
||
|
{
|
||
|
typedef WTL::CPropertyPageImpl<CAppMappingPage> baseClass;
|
||
|
|
||
|
public:
|
||
|
CAppMappingPage(CAppData * pData)
|
||
|
{
|
||
|
m_pData = pData;
|
||
|
}
|
||
|
~CAppMappingPage()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
enum {IDD = IDD_APPMAP};
|
||
|
|
||
|
BEGIN_MSG_MAP_EX(CAppMappingPage)
|
||
|
MSG_WM_INITDIALOG(OnInitDialog)
|
||
|
COMMAND_HANDLER_EX(IDC_ADD, BN_CLICKED, OnAdd)
|
||
|
COMMAND_HANDLER_EX(IDC_EDIT, BN_CLICKED, OnEdit)
|
||
|
COMMAND_HANDLER_EX(IDC_REMOVE, BN_CLICKED, OnRemove)
|
||
|
COMMAND_HANDLER_EX(IDC_CACHE_ISAPI, BN_CLICKED, OnCacheISAPI)
|
||
|
NOTIFY_HANDLER_EX(IDC_LIST, NM_DBLCLK, OnDblClickList)
|
||
|
CHAIN_MSG_MAP(baseClass)
|
||
|
END_MSG_MAP()
|
||
|
|
||
|
BEGIN_DDX_MAP(CAppMappingPage)
|
||
|
DDX_CHECK(IDC_CACHE_ISAPI, m_pData->m_CacheISAPI)
|
||
|
DDX_CONTROL(IDC_LIST, m_list)
|
||
|
END_DDX_MAP()
|
||
|
|
||
|
LRESULT OnInitDialog(HWND hDlg, LPARAM lParam);
|
||
|
void OnAdd(UINT nCode, UINT nID, HWND hWnd);
|
||
|
void OnEdit(UINT nCode, UINT nID, HWND hWnd);
|
||
|
void OnRemove(UINT nCode, UINT nID, HWND hWnd);
|
||
|
void OnCacheISAPI(UINT nCode, UINT nID, HWND hWnd);
|
||
|
LRESULT OnDblClickList(LPNMHDR pHdr);
|
||
|
BOOL OnKillActive();
|
||
|
void OnHelp();
|
||
|
|
||
|
protected:
|
||
|
CAppData * m_pData;
|
||
|
CListViewExch m_list;
|
||
|
};
|
||
|
|
||
|
class CEditMap :
|
||
|
public CDialogImpl<CEditMap>,
|
||
|
public WTL::CWinDataExchange<CEditMap>
|
||
|
{
|
||
|
public:
|
||
|
CEditMap() :
|
||
|
m_script_engine(FALSE),
|
||
|
m_file_exists(FALSE),
|
||
|
m_verbs_index(0),
|
||
|
m_new(FALSE),
|
||
|
m_bExecValid(FALSE),
|
||
|
m_bExtValid(FALSE),
|
||
|
m_bVerbsValid(FALSE)
|
||
|
{
|
||
|
m_exec[0] = 0;
|
||
|
m_ext[0] = 0;
|
||
|
m_verbs[0] = 0;
|
||
|
}
|
||
|
~CEditMap()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
enum {IDD = IDD_EDITMAP};
|
||
|
|
||
|
protected:
|
||
|
|
||
|
BEGIN_MSG_MAP_EX(CEditMap)
|
||
|
MSG_WM_INITDIALOG(OnInitDialog)
|
||
|
COMMAND_HANDLER_EX(IDC_HELPBTN, BN_CLICKED, OnHelp)
|
||
|
COMMAND_HANDLER_EX(IDOK, BN_CLICKED, OnOK)
|
||
|
COMMAND_HANDLER_EX(IDCANCEL, BN_CLICKED, OnCancel)
|
||
|
COMMAND_HANDLER_EX(IDC_ALL_VERBS, BN_CLICKED, OnVerbs)
|
||
|
COMMAND_HANDLER_EX(IDC_LIMIT_VERBS, BN_CLICKED, OnVerbs)
|
||
|
COMMAND_HANDLER_EX(IDC_EXTENSION, EN_CHANGE, OnExtChanged)
|
||
|
COMMAND_HANDLER_EX(IDC_EXECUTABLE, EN_CHANGE, OnExecChanged)
|
||
|
COMMAND_HANDLER_EX(IDC_VERBS, EN_CHANGE, OnVerbsChanged)
|
||
|
END_MSG_MAP()
|
||
|
|
||
|
BEGIN_DDX_MAP(CEditMap)
|
||
|
// DDX_TEXT_LEN(IDC_EXECUTABLE, m_exec, MAX_PATH)
|
||
|
DDX_TEXT_LEN(IDC_EXTENSION, m_ext, MAX_PATH)
|
||
|
DDX_TEXT_LEN(IDC_VERBS, m_verbs, MAX_PATH)
|
||
|
DDX_RADIO(IDC_ALL_VERBS, m_verbs_index)
|
||
|
DDX_CHECK(IDC_SCRIPT_ENGINE, m_script_engine)
|
||
|
DDX_CHECK(IDC_FILE_EXISTS, m_file_exists)
|
||
|
END_DDX_MAP()
|
||
|
|
||
|
LRESULT OnInitDialog(HWND hDlg, LPARAM lParam);
|
||
|
void OnBrowse(UINT nCode, UINT nID, HWND hWnd);
|
||
|
void OnHelp(UINT nCode, UINT nID, HWND hWnd);
|
||
|
void OnOK(UINT nCode, UINT nID, HWND hWnd);
|
||
|
void OnCancel(UINT nCode, UINT nID, HWND hWnd);
|
||
|
void OnVerbs(UINT nCode, UINT nID, HWND hWnd);
|
||
|
void OnExtChanged(UINT nCode, UINT nID, HWND hWnd);
|
||
|
void OnExecChanged(UINT nCode, UINT nID, HWND hWnd);
|
||
|
void OnVerbsChanged(UINT nCode, UINT nID, HWND hWnd);
|
||
|
|
||
|
public:
|
||
|
// There is a bug in DDX_Text routine -- they pass sizeof(var) there which is site in bytes, not in chars,
|
||
|
// as should be for GetWindowText(). These ugly buffers are for protection
|
||
|
TCHAR m_exec[MAX_PATH];
|
||
|
TCHAR buffer1[MAX_PATH];
|
||
|
TCHAR m_ext[MAX_PATH];
|
||
|
TCHAR buffer2[MAX_PATH];
|
||
|
TCHAR m_prev_ext[MAX_PATH];
|
||
|
TCHAR buffer3[MAX_PATH];
|
||
|
TCHAR m_verbs[MAX_PATH];
|
||
|
TCHAR buffer4[MAX_PATH];
|
||
|
int m_verbs_index;
|
||
|
BOOL m_script_engine, m_file_exists;
|
||
|
BOOL m_new, m_bExtValid, m_bExecValid, m_bVerbsValid;
|
||
|
DWORD m_flags;
|
||
|
CFileChooser m_FileChooser;
|
||
|
CAppData * m_pData;
|
||
|
};
|
||
|
|
||
|
#endif //_MAPPING_PAGE_H
|