|
|
//____________________________________________________________________________
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1995 - 1996.
//
// File: dlg.hxx
//
// Contents:
//
// Classes:
//
// Functions:
//
// History: 04-Apr-96 RaviR Created.
// 12-Jul-96 MarkBl CPropPage now task-specific to incorporate
// scheduling-specific functionality needed
// by all sub-classes.
// 05-05-97 DavidMun prop page copies task path in ctor,
// does not free it.
//
//____________________________________________________________________________
#ifndef _DLG_HXX_
#define _DLG_HXX_
//
// CPropPage task flag values.
//
#define TASK_FLAG_IN_TASKS_FOLDER 0x00000001 // Task resides w/in the
// Tasks folder
#define TASK_FLAG_WIN_TASK 0x00000002 // Task resides on a Win95
// machine.
#define TASK_FLAG_NT_TASK 0x00000004 // Task resides on an NT
// machine.
//____________________________________________________________________________
//
// Class: CPropPage
//____________________________________________________________________________
class CPropPage { public:
CPropPage(LPCTSTR szTmplt, LPTSTR ptszJobPath); virtual ~CPropPage();
HRESULT DoModeless(LPFNADDPROPSHEETPAGE lpfnAddPage, LPARAM lParam);
//
// I hate to undo the purity of this property-page specific class, but
// these scheduling-agent specific methods need to be available on all
// subclasses.
//
void SetPlatformId(BYTE bPlatform) { m_bPlatformId = bPlatform; } BYTE GetPlatformId() { return m_bPlatformId; } LPTSTR GetTaskPath() const { return (LPTSTR) m_ptszTaskPath; } BOOL IsTaskInTasksFolder() { return m_fTaskInTasksFolder; } BOOL SupportsSystemRequired() { return m_fSupportsSystemRequired; }
//
// Static WndProc to be passed to PROPSHEETPAGE::pfnDlgProc
//
static INT_PTR CALLBACK StaticDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
//
// Instance specific wind proc
//
virtual LRESULT DlgProc(UINT uMsg, WPARAM wParam, LPARAM lParam);
//
// Protected virtual member functions, called by WndProc
//
virtual LRESULT _OnInitDialog(LPARAM lParam) = 0; virtual LRESULT _OnCommand(int id, HWND hwndCtl, UINT codeNotify); virtual LRESULT _OnNotify(UINT uMessage, UINT uParam, LPARAM lParam); virtual LRESULT _OnWinIniChange(WPARAM wParam, LPARAM lParam); virtual LRESULT _OnApply(void); virtual LRESULT _OnCancel(void); virtual LRESULT _OnSetFocus(HWND hwndLoseFocus); virtual LRESULT _OnTimer(UINT idTimer); virtual LRESULT _OnDestroy(void); virtual LRESULT _OnSpinDeltaPos(NM_UPDOWN * pnmud); virtual LRESULT _OnPSMQuerySibling(WPARAM wParam, LPARAM lParam); virtual LRESULT _OnPSNSetActive(LPARAM lParam); virtual LRESULT _OnPSNKillActive(LPARAM lParam); virtual LRESULT _OnDateTimeChange(LPARAM lParam); virtual LRESULT _OnHelp(HANDLE hRequesting, UINT uiHelpCommand);
virtual BOOL _ProcessListViewNotifications(UINT uMsg, WPARAM wParam, LPARAM lParam);
//
// Help full inline functions
//
HWND Hwnd() { return m_hPage; } HWND _hCtrl(int idCtrl) { return GetDlgItem(m_hPage, idCtrl); }
virtual void _EnableApplyButton(void) { m_fDirty = TRUE; PropSheet_Changed(GetParent(m_hPage), m_hPage);}
void _EnableDlgItem(int idCtrl, BOOL fEnable) { EnableWindow(_hCtrl(idCtrl), fEnable); }
//
// Data members
//
PROPSHEETPAGE m_psp; HWND m_hPage; BOOL m_fDirty;
protected:
BOOL m_fInInit; void _BaseInit(void);
private:
static UINT CALLBACK PageRelease(HWND hwnd, UINT uMsg, LPPROPSHEETPAGE ppsp);
CDllRef m_DllRef; BOOL m_fTaskInTasksFolder; BOOL m_fSupportsSystemRequired; TCHAR m_ptszTaskPath[MAX_PATH + 1]; BYTE m_bPlatformId;
}; // class CPropPage
inline LRESULT CPropPage::_OnHelp( HANDLE hRequesting, UINT uiHelpCommand) { return TRUE; }
//____________________________________________________________________________
//
// Class: CDlg
//____________________________________________________________________________
class CDlg { public:
CDlg() {} virtual ~CDlg() {}
INT_PTR DoModal(UINT idRes, HWND hParent); HWND DoModeless(UINT idRes, HWND hParent);
HWND Hwnd() { return m_hDlg; }
protected:
static INT_PTR CALLBACK DlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
HWND m_hDlg;
//
// Help full inline functions
//
HWND _hCtrl(int idCtrl) { return GetDlgItem(m_hDlg, idCtrl); }
private:
virtual INT_PTR RealDlgProc(UINT uMsg, WPARAM wParam, LPARAM lParam);
}; // class CDlg
#endif // _DLG_HXX_
|