// ClearInetCache.h : Declaration of the CClearInetCache #ifndef __CLEARINETCACHE_H_ #define __CLEARINETCACHE_H_ #include "resource.h" // main symbols #include "../Common/CmptData.h" #define NO_KEY _T("No Key") #include using std::vector; #include typedef vector StringArray; #include #include // #include "../common/events.h" ///////////////////////////////////////////////////////////////////////////// // CClearInetCache class ATL_NO_VTABLE CClearInetCache : public CComObjectRootEx, public CComCoClass, public ISupportErrorInfo, public IDispatchImpl, // public IDispEventImpl<0, CClearInetCache, &DIID_DShutdownEvents, &LIBID_NightSecShutdown, 2, 5>, public IObjectWithSiteImpl, // Property Page public IPropertyPageImpl, public CDialogImpl, public CContextHelp { public: CClearInetCache() { m_dwTitleID = IDS_TITLEClearInetCacheProps; m_dwHelpFileID = IDS_HELPFILEClearInetCacheProps; m_dwDocStringID = IDS_DOCSTRINGClearInetCacheProps; // m_bCancel = false; m_bClearAll = true; m_bCookies = false; m_bInitialized = false; m_dwIDCounter = 0; m_nLoadedURLs = 0; } DECLARE_REGISTRY_RESOURCEID(IDR_CLEARINETCACHE) BEGIN_COM_MAP(CClearInetCache) COM_INTERFACE_ENTRY(ISecureShutdownWin) COM_INTERFACE_ENTRY(IDispatch) COM_INTERFACE_ENTRY(ISupportErrorInfo) COM_INTERFACE_ENTRY(IObjectWithSite) COM_INTERFACE_ENTRY(IPropertyPage) END_COM_MAP() /*BEGIN_SINK_MAP(CClearInetCache) SINK_ENTRY_EX(0, DIID_DShutdownEvents, 1, OnCancel) END_SINK_MAP()*/ // ISupportsErrorInfo STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid); // ISecureShutdownWin public: STDMETHOD(get_Info)(/*[in]*/ NightSecInfo nsItem, /*[out, retval]*/ VARIANT* pvVal); STDMETHOD(DoShutdown)(/*[in]*/ long hParent, /*[in]*/ long lMode); STDMETHOD(SetData)(/*[in]*/ IUnknown* pUnk); // Events // protected: // STDMETHOD(OnCancel)() // { m_bCancel = true; return S_OK; }; // Helpers protected: bool IsDeleteableURL(const string& sURL); int GetServersToDelete(); StringArray m_asServerURLs; bool m_bClearAll; bool m_bInitialized; /////////////////////////////////////////////////////////////////// // Property Sheet Stuff public: enum {IDD = IDD_CLEARINETCACHE}; BEGIN_MSG_MAP(CClearInetCache) MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog) NOTIFY_HANDLER(IDC_SERVERURLLIST, LVN_ENDLABELEDIT, OnURLListEndLabelEdit) NOTIFY_HANDLER(IDC_SERVERURLLIST, LVN_KEYDOWN, OnURLListKeyDown) NOTIFY_HANDLER(IDC_SERVERURLLIST, NM_SETFOCUS, OnListSetFocus) COMMAND_HANDLER(IDC_NEWURL, BN_CLICKED, OnNewURL) COMMAND_HANDLER(IDC_DELETE, BN_CLICKED, OnDelete) COMMAND_HANDLER(IDC_CLEARALLSERVERS, BN_CLICKED, OnClearAll) CHAIN_MSG_MAP(IPropertyPageImpl) CHAIN_MSG_MAP(CContextHelp) END_MSG_MAP() BEGIN_HELP_MAP("nightsec.hlp") HELP_ID(IDC_SERVERURLLIST, 4016) HELP_ID(IDC_COOKIES, 4015) HELP_ID(IDC_CLEARALLSERVERS, 4014) HELP_ID(IDC_NEWURL, 4018) HELP_ID(IDC_DELETE, 4017) END_HELP_MAP // Property Sheet Messages LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnURLListEndLabelEdit(int idCtrl, LPNMHDR pnmh, BOOL& bHandled); LRESULT OnURLListKeyDown(int idCtrl, LPNMHDR pnmh, BOOL& bHandled); LRESULT OnListSetFocus(int idCtrl, LPNMHDR pnmh, BOOL& bHandled); LRESULT OnNewURL(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled); LRESULT OnDelete(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled); LRESULT OnClearAll(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled); protected: HRESULT SaveChanges(); void UpdateClearAll(); // Data protected: // bool m_bCancel; // Called from Cancel Event int m_nLoadedURLs; void LoadFlags(); bool m_bCookies; HICON m_hIconDel; HICON m_hIconNew; CPropertyBag m_Data; CListViewCtrl m_ctlServerList; CImageList m_ImageListSmall; DWORD m_dwIDCounter; public: STDMETHOD(Apply)(void) { ATLTRACE(_T("CClearInetCache::Apply\n")); HRESULT hr = SaveChanges(); m_bDirty = FAILED(hr); return hr; } }; #endif //__CLEARINETCACHE_H_