#ifndef __PropWnd2_h__ #define __PropWnd2_h__ //////////////////////////////////////////////////////////////////////////////////////////////////// #pragma warning( disable : 4786 ) #include #include #include "poldata.h" #include "controlID.h" using namespace std; //////////////////////////////////////////////////////////////////////////////////////////////////// LRESULT CALLBACK DefaultProc( HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam ); class CPropertyDataWindow2 { friend class CNmAkWiz; public: // Static functions static void MapControlsToRegKeys( void ); private: // Static functions public: // Static Data static const int mcs_iTop; static const int mcs_iLeft; static const int mcs_iBorder; protected: // Static Data static map< UINT, CPolicyData::eKeyType > ms_ClassMap; static map< UINT, TCHAR* > ms_KeyMap; static map< UINT, TCHAR* > ms_ValueMap; protected: // DATA // Frame Window for data boxes TCHAR *m_szClassName; HWND m_hwnd; HWND m_hwndParent; UINT m_IDD; WNDPROC m_wndProc; RECT m_rect; list< UINT > m_checkIDList; list< HWND > m_enableList; list< CControlID * > m_condList; list< CControlID * > m_specialControlList; BOOL m_bInit; public: // construction / destruction CPropertyDataWindow2( HWND hwndParent, UINT uIDD, LPTSTR szClassName, WNDPROC wndProc, UINT PopUpHelpMenuTextId, int iX, int iY, int iWidth, int iHeight, BOOL bScroll = TRUE ); CPropertyDataWindow2( HWND hwndParent, UINT uIDD, LPTSTR szClassName, UINT PopUpHelpMenuTextId, int iX, int iY, int iWidth, int iHeight, BOOL bScroll = TRUE ); ~CPropertyDataWindow2( void ); public: // Member fns inline HWND GetHwnd() { return m_hwnd; }; inline int LoadString( UINT IDS, LPTSTR lpszBuffer, int cb ) { return ::LoadString( g_hInstance, IDS, lpszBuffer, cb ); } void ConnectControlsToCheck( UINT idCheck, UINT uCount, ... ); void AddControl( CControlID *pControl ); void SetEnableListID( UINT uCount, ... ); void GetEditData( UINT id, TCHAR* sz, ULONG cb ) const; void SetEditData( UINT id, TCHAR* sz ); ULONG GetEditDataLen( UINT id ) const; BOOL SetFocus( UINT id ); BOOL GetCheck( UINT id ) const; void SetCheck( UINT id, BOOL bCheck ); void ShowWindow( BOOL bShowWindow = TRUE ); void EnableWindow( BOOL bEnable = TRUE ); void ReadSettings( void ); BOOL WriteSettings( void ); void Reset(); BOOL WriteToINF( HANDLE hFile, BOOL bCheckValues ); int Spew( HWND hwndList, int iStartLine ); protected: // Helper Fns BOOL _InitWindow( void ); BOOL _SizeWindow( int X, int Y, int Width, int Height ); void _PrepScrollBars( void ); void _ReadIntSetting( UINT ID, int *pData ); void _ReadEditSetting( UINT EditID ); void _ReadCheckSetting( UINT ID); void _ReadComboSetting( UINT ComboID ); void _ReadSliderSetting( CControlID * ); void _ReadCheckSettings( void ); BOOL _WriteIntSetting(UINT ID, int iData); BOOL _WriteEditSetting( UINT EditID ); BOOL _WriteCheckSetting( UINT ID); BOOL _WriteComboSetting( UINT ComboID ); BOOL _WriteSliderSetting( UINT ID ); BOOL _WriteCheckSettings( void ); // We need these friends so that the WebView data can be shared friend void ReadWebViewSettings(CPropertyDataWindow2 *pData); friend void WriteWebViewSettings(CPropertyDataWindow2 *pData); BOOL WriteStringValue(LPCTSTR szKeyName, LPCTSTR szValue); BOOL WriteNumberValue(LPCTSTR szKeyName, int nValue); void ReadStringValue(LPCTSTR szKeyName, LPTSTR szValue, UINT cchValueMax); void ReadNumberValue(LPCTSTR szKeyName, int * pnValue); void _WriteCheckToINF( HANDLE hFile, UINT ID, BOOL bCheckValues ); void _WriteChecksToINF( HANDLE hFile, BOOL bCheckValues ); void _WriteEditToINF( HANDLE hFile, UINT EditID, BOOL bCheckValues ); void _WriteEditNumToINF( HANDLE hFile, UINT EditID, BOOL bCheckValues ); void _WriteSliderToINF( HANDLE hFile, UINT SliderID, BOOL bCheckValues ); void _WriteComboToINF( HANDLE hFile, UINT ComboID, BOOL bCheckValues ); void _DeleteKey( HANDLE hFile, UINT ID ); int _Spew( HWND hwndList, int iStartLine, CControlID *pControlID ); }; #endif // __PropWnd_h__