/*++ Copyright (c) 1994-1998 Microsoft Corporation Module Name : httppage.h Abstract: HTTP Headers property page definitions Author: Ronald Meijer (ronaldm) Project: Internet Services Manager Revision History: --*/ #ifndef __HTTPPAGE_H__ #define __HTTPPAGE_H__ //{{AFX_INCLUDES() #include "rat.h" //}}AFX_INCLUDES class CHeader : public CObjectPlus /*++ Class Description: HTTP Header definition Public Interface: CHeader : Constructor DisplayString : Build display string CrackDisplayString : Convert from crack display string --*/ { // // Constructor // public: CHeader( IN LPCTSTR lpstrHeader, IN LPCTSTR lpstrValue ); // // Parse header info from name:value string // CHeader(LPCTSTR lpstrDisplayString); // // Access // public: LPCTSTR QueryHeader() const { return m_strHeader; } LPCTSTR QueryValue() const { return m_strValue; } CString & GetHeader() { return m_strHeader;} CString & GetValue() { return m_strValue; } void SetHeader(LPCTSTR lpszHeader); void SetValue(LPCTSTR lpszValue); // // Interface: public: // // Build output display string // LPCTSTR DisplayString(OUT CString & str); protected: // // Parse the display string into fields // static void CrackDisplayString( IN LPCTSTR lpstrDisplayString, OUT CString & strHeader, OUT CString & strValue ); private: CString m_strHeader; CString m_strValue; }; class CW3HTTPPage : public CInetPropertyPage /*++ Class Description: HTTP Custom Headers property page Public Interface: CW3HTTPPage : Constructor --*/ { DECLARE_DYNCREATE(CW3HTTPPage) // // Construction // public: CW3HTTPPage(IN CInetPropertySheet * pSheet = NULL); ~CW3HTTPPage(); // // Dialog Data // protected: enum { RADIO_IMMEDIATELY, RADIO_EXPIRE, RADIO_EXPIRE_ABS, }; enum { COMBO_MINUTES, COMBO_HOURS, COMBO_DAYS, }; //{{AFX_DATA(CW3HTTPPage) enum { IDD = IDD_DIRECTORY_HTTP }; int m_nTimeSelector; int m_nImmediateTemporary; BOOL m_fEnableExpiration; CEdit m_edit_Expire; CButton m_radio_Immediately; CButton m_button_Delete; CButton m_button_Edit; CButton m_button_PickDate; CButton m_button_FileTypes; CStatic m_static_Contents; CComboBox m_combo_Time; //}}AFX_DATA DWORD m_dwRelTime; CILong m_nExpiration; CTime m_tm; CTime m_tmNow; CRat m_ocx_Ratings; CButton m_radio_Time; CButton m_radio_AbsTime; CDateTimePicker m_dtpDate; CDateTimePicker m_dtpTime; CRMCListBox m_list_Headers; CStringListEx m_strlCustomHeaders; // // Overrides // protected: virtual HRESULT FetchLoadedValues(); virtual HRESULT SaveInfo(); // ClassWizard generate virtual function overrides //{{AFX_VIRTUAL(CW3HTTPPage) protected: virtual void DoDataExchange(CDataExchange * pDX); virtual BOOL OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult); //}}AFX_VIRTUAL // // Implementation // protected: // Generated message map functions //{{AFX_MSG(CW3HTTPPage) afx_msg void OnButtonAdd(); afx_msg void OnButtonDelete(); afx_msg void OnButtonEdit(); afx_msg void OnButtonFileTypes(); afx_msg void OnButtonRatingsTemplate(); afx_msg void OnCheckExpiration(); afx_msg void OnSelchangeComboTime(); afx_msg void OnSelchangeListHeaders(); afx_msg void OnDblclkListHeaders(); afx_msg void OnRadioImmediately(); afx_msg void OnRadioTime(); afx_msg void OnRadioAbsTime(); afx_msg void OnDestroy(); virtual BOOL OnInitDialog(); //}}AFX_MSG afx_msg void OnItemChanged(); DECLARE_MESSAGE_MAP() void SetTimeFields(); void FillListBox(); void FetchHeaders(); void StoreTime(); void StoreHeaders(); void MakeExpirationString(CString & strExpiration); BOOL SetControlStates(); BOOL CrackExpirationString(CString & strExpiration); BOOL HeaderExists(LPCTSTR lpHeader); INT_PTR ShowPropertiesDialog(BOOL fAdd = FALSE); LPCTSTR QueryMetaPath(); private: BOOL m_fValuesAdjusted; CStringListEx m_strlMimeTypes; CObListPlus m_oblHeaders; CMimeTypes * m_ppropMimeTypes; }; // // Inline Expansion // // <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< inline CHeader::CHeader( IN LPCTSTR lpstrHeader, IN LPCTSTR lpstrValue ) : m_strHeader(lpstrHeader), m_strValue(lpstrValue) { } inline CHeader::CHeader( IN LPCTSTR lpstrDisplayString ) { CrackDisplayString(lpstrDisplayString, m_strHeader, m_strValue); } inline LPCTSTR CHeader::DisplayString( OUT CString & str ) { str.Format(_T("%s: %s"), (LPCTSTR)m_strHeader, (LPCTSTR)m_strValue); return str; } inline void CHeader::SetHeader( IN LPCTSTR lpszHeader ) { m_strHeader = lpszHeader; } inline void CHeader::SetValue( IN LPCTSTR lpszValue ) { m_strValue = lpszValue; } inline LPCTSTR CW3HTTPPage::QueryMetaPath() { return ((CW3Sheet *)GetSheet())->GetDirectoryProperties().QueryMetaRoot(); } #endif // __HTTPPAGE_H__