windows-nt/Source/XPSP1/NT/inetsrv/iis/admin/appconfig/mappingpage.h

133 lines
3.7 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
//
//
//
#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