summaryrefslogtreecommitdiff
path: root/NetCmpts/ClearInetCache.h
diff options
context:
space:
mode:
Diffstat (limited to 'NetCmpts/ClearInetCache.h')
-rw-r--r--NetCmpts/ClearInetCache.h165
1 files changed, 165 insertions, 0 deletions
diff --git a/NetCmpts/ClearInetCache.h b/NetCmpts/ClearInetCache.h
new file mode 100644
index 0000000..274d5d9
--- /dev/null
+++ b/NetCmpts/ClearInetCache.h
@@ -0,0 +1,165 @@
+// 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 <vector>
+using std::vector;
+
+#include <mystring.h>
+typedef vector<string> StringArray;
+
+#include <atlctrls.h>
+#include <contexthelp.h>
+
+// #include "../common/events.h"
+
+/////////////////////////////////////////////////////////////////////////////
+// CClearInetCache
+
+class ATL_NO_VTABLE CClearInetCache :
+ public CComObjectRootEx<CComSingleThreadModel>,
+ public CComCoClass<CClearInetCache, &CLSID_ClearInetCache>,
+ public ISupportErrorInfo,
+ public IDispatchImpl<ISecureShutdownWin, &IID_ISecureShutdownWin, &LIBID_NightSecNetCmpts>,
+// public IDispEventImpl<0, CClearInetCache, &DIID_DShutdownEvents, &LIBID_NightSecShutdown, 2, 5>,
+ public IObjectWithSiteImpl<CClearInetCache>,
+
+ // Property Page
+ public IPropertyPageImpl<CClearInetCache>,
+ public CDialogImpl<CClearInetCache>,
+ public CContextHelp<CClearInetCache>
+
+{
+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<CClearInetCache>)
+ CHAIN_MSG_MAP(CContextHelp<CClearInetCache>)
+ 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_