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.
 
 
 
 
 
 

144 lines
5.2 KiB

/****************************************************************************
* @doc INTERNAL PROPEDIT
*
* @module PropEdit.h | Header file for the <c CPropertyEditor>
* class used to implement behavior of a single property to be displayed
* in a property page.
*
* @comm This code tests the Ks interface handlers. This code is only
* compiled if USE_PROPERTY_PAGES is defined.
***************************************************************************/
/****************************************************************************
* @doc INTERNAL CPROPEDITCLASS
*
* @class CPropertyEditor | This class implements behavior of a single
* property to be displayed in a property page.
*
* @mdata ULONG | CPropertyEditor | m_IDProperty | Property ID
*
* @mdata LONG | CPropertyEditor | m_CurrentValue | Property current value
*
* @mdata LONG | CPropertyEditor | m_Min | Property minimum value
*
* @mdata LONG | CPropertyEditor | m_Max | Property maximum value
*
* @mdata LONG | CPropertyEditor | m_SteppingDelta | Property stepping delta
*
* @mdata LONG | CPropertyEditor | m_DefaultValue | Property default value
*
* @mdata BOOL | CPropertyEditor | m_Active | Set to TRUE after all property values have been initialized
*
* @mdata LONG | CPropertyEditor | m_OriginalValue | Backup of the original value
*
* @mdata HWND | CPropertyEditor | m_hDlg | Window handle to the Parent dialog
*
* @mdata HWND | CPropertyEditor | m_hWndMin | Window handle to the Minimum dialog item
*
* @mdata HWND | CPropertyEditor | m_hWndMax | Window handle to the Maximum dialog item
*
* @mdata HWND | CPropertyEditor | m_hWndDefault | Window handle to the Default dialog item
*
* @mdata HWND | CPropertyEditor | m_hWndStep | Window handle to the Stepping Delta dialog item
*
* @mdata HWND | CPropertyEditor | m_hWndEdit | Window handle to the Target dialog item
*
* @mdata HWND | CPropertyEditor | m_hWndTrackbar | Window handle to the slide bar
*
* @mdata HWND | CPropertyEditor | m_hWndProgress | Window handle to the progress bar
*
* @mdata ULONG | CPropertyEditor | m_IDLabel | Resource ID of the property label
*
* @mdata ULONG | CPropertyEditor | m_IDMinControl | Resource ID of the Minimum dialog item
*
* @mdata ULONG | CPropertyEditor | m_IDMaxControl | Resource ID of the Maximum dialog item
*
* @mdata ULONG | CPropertyEditor | m_IDStepControl | Resource ID of the Stepping Delta dialog item
*
* @mdata ULONG | CPropertyEditor | m_IDDefaultControl | Resource ID of the Default dialog item
*
* @mdata ULONG | CPropertyEditor | m_IDEditControl | Resource ID of the Target dialog item
*
* @mdata ULONG | CPropertyEditor | m_IDTrackbarControl | Resource ID of the slide bar
*
* @mdata ULONG | CPropertyEditor | m_IDProgressControl | Resource ID of the progress bar
***************************************************************************/
class CPropertyEditor
{
public:
CPropertyEditor(HWND hDlg, ULONG IDLabel, ULONG IDMinControl, ULONG IDMaxControl, ULONG IDDefaultControl, ULONG IDStepControl, ULONG IDEditControl, ULONG IDTrackbarControl, ULONG IDProgressControl, ULONG IDProperty, ULONG IDAutoControl);
virtual ~CPropertyEditor();
BOOL Init();
HWND GetTrackbarHWnd();
HWND GetProgressHWnd();
HWND GetEditHWnd();
HWND GetAutoHWnd();
BOOL UpdateEditBox();
BOOL UpdateTrackbar();
BOOL UpdateProgress();
BOOL UpdateAuto();
BOOL OnApply();
BOOL OnDefault();
BOOL OnScroll(ULONG nCommand, WPARAM wParam, LPARAM lParam);
BOOL OnEdit(ULONG nCommand, WPARAM wParam, LPARAM lParam);
BOOL OnAuto(ULONG nCommand, WPARAM wParam, LPARAM lParam);
BOOL HasChanged();
protected:
BOOL CanAutoControl(void);
BOOL GetAuto(void);
BOOL SetAuto(BOOL fAuto);
// Pure virtual functions to set/get actual property values, and the ranges
virtual HRESULT GetValue(void) PURE;
virtual HRESULT SetValue(void) PURE;
virtual HRESULT GetRange(void) PURE;
ULONG m_IDProperty; // Property ID
// The following are used by GetValue and SetValue
LONG m_CurrentValue;
LONG m_CurrentFlags;
// The following must be set by GetRange
LONG m_Min;
LONG m_Max;
LONG m_SteppingDelta;
LONG m_DefaultValue;
LONG m_DefaultFlags;
TAPIControlFlags m_CapsFlags;
private:
BOOL m_Active;
BOOL m_fCheckBox;
LONG m_OriginalValue;
LONG m_OriginalFlags;
HWND m_hDlg; // Parent
HWND m_hWndMin; // Min window
HWND m_hWndMax; // Max window
HWND m_hWndDefault; // Default window
HWND m_hWndStep; // Step window
HWND m_hWndEdit; // Edit window
HWND m_hWndTrackbar; // Slider
HWND m_hWndProgress; // Progress
HWND m_hWndAuto; // Auto checkbox
ULONG m_IDLabel; // ID of label
ULONG m_IDMinControl; // ID of min control
ULONG m_IDMaxControl; // ID of max control
ULONG m_IDStepControl; // ID of step control
ULONG m_IDDefaultControl; // ID of default control
ULONG m_IDEditControl; // ID of edit control
ULONG m_IDTrackbarControl;// ID of trackbar
ULONG m_IDProgressControl;// ID of trackbar
ULONG m_IDAutoControl; // ID of auto checkbox
LONG m_TrackbarOffset; // Handles negative trackbar offsets
LONG m_ProgressOffset; // Handles negative trackbar offsets
BOOL m_CanAutoControl;
};