Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

115 lines
3.1 KiB

#ifndef __STORE_CONFIG_PAGE_H_
#define __STORE_CONFIG_PAGE_H_
#include "resource.h"
//#include <atlsnap.h>
#include "..\..\inc\atlsnap.h"
#include <atlapp.h>
#include <atlctrls.h>
#include <faxmmc.h>
#include <faxutil.h>
#include <fxsapip.h>
#include <RoutingMethodConfig.h>
class CStoreConfigPage : public CSnapInPropertyPageImpl<CStoreConfigPage>
{
public :
CStoreConfigPage(LONG_PTR lNotifyHandle, bool bDeleteHandle = false, TCHAR* pTitle = NULL ) :
m_lNotifyHandle(lNotifyHandle),
m_bDeleteHandle(bDeleteHandle) // Should be true for only page.
{
m_hFax = NULL;
m_fIsDialogInitiated = FALSE;
m_fIsDirty = FALSE;
}
HRESULT Init(LPCTSTR lpctstrServerName, DWORD dwDeviceId);
~CStoreConfigPage()
{
DEBUG_FUNCTION_NAME(TEXT("CStoreConfigPage::~CStoreConfigPage"));
if (m_hFax)
{
if (!FaxClose(m_hFax))
{
DWORD ec = GetLastError();
DebugPrintEx(
DEBUG_ERR,
TEXT("FaxClose() failed on fax handle (0x%08X : %s). (ec: %ld)"),
m_hFax,
m_bstrServerName,
ec);
}
m_hFax = NULL;
}
if (m_bDeleteHandle)
{
MMCFreeNotifyHandle(m_lNotifyHandle);
}
}
enum { IDD = IDD_STORE };
BEGIN_MSG_MAP(CStoreConfigPage)
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog )
MESSAGE_HANDLER(WM_CONTEXTMENU, OnHelpRequest)
MESSAGE_HANDLER(WM_HELP, OnHelpRequest)
CHAIN_MSG_MAP(CSnapInPropertyPageImpl<CStoreConfigPage>)
COMMAND_HANDLER(IDC_EDIT_FOLDER, EN_CHANGE, OnFieldChange)
COMMAND_HANDLER(IDC_BUT_BROWSE, BN_CLICKED, OnBrowseForFolder)
END_MSG_MAP()
LRESULT OnBrowseForFolder(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
HRESULT PropertyChangeNotify(long param)
{
return MMCPropertyChangeNotify(m_lNotifyHandle, param);
}
BOOL OnApply();
LRESULT OnFieldChange(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled)
{
if (!m_fIsDialogInitiated) //event receieved in too early stage
{
return 0;
}
else
{
m_fIsDirty = TRUE;
SetModified(TRUE);
return 0;
}
}
LRESULT OnInitDialog(
UINT uiMsg,
WPARAM wParam,
LPARAM lParam,
BOOL& fHandled );
LRESULT OnHelpRequest(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
public:
LONG_PTR m_lNotifyHandle;
bool m_bDeleteHandle;
static CComBSTR &GetFolder () { return m_bstrFolder; }
private:
HANDLE m_hFax; // Handle to fax server connection
CComBSTR m_bstrServerName;
DWORD m_dwDeviceId;
static CComBSTR m_bstrFolder; // We're refering to this variable in the callback function BrowseCallbackProc
//
// Controls
//
CEdit m_edtFolder;
BOOL m_fIsDialogInitiated;
BOOL m_fIsDirty;
};
#endif