// EmptyRecycleBin.h : Declaration of the CEmptyRecycleBin #ifndef __EMPTYRECYCLEBIN_H_ #define __EMPTYRECYCLEBIN_H_ #include "resource.h" // main symbols #include "Shlobj.h" #include "../Common/CmptData.h" #include HRESULT InvokeMenuCommand(IContextMenu* pcm, HMENU hMenu, UINT nMenuItem, HWND hWndParent, bool bClosePrompt = false); HRESULT InvokeMenuId(IContextMenu* pcm, int nIDCmd, HWND hWndParent); int GetMenuIdFromString(HMENU hMenu, string sMenuItem); int GetMenuIdFromString(HMENU hMenu, UINT nStrID); DWORD WINAPI ClosePromptWindow( LPVOID pParam ); HWND GetTopLevel(HWND hwndChild); #define ER_REG_RECYCLE _T("Empty Recycle Bin") #define ER_REG_NORTON _T("Empty Norton Protected") ///////////////////////////////////////////////////////////////////////////// // CEmptyRecycleBin class ATL_NO_VTABLE CEmptyRecycleBin : public CComObjectRootEx, public CComCoClass, public ISupportErrorInfo, public IDispatchImpl, public IPropertyPageImpl, public CDialogImplEx, public CContextHelp { public: CEmptyRecycleBin() : CDialogImplEx(IDD) { m_dwTitleID = IDS_TITLERecycle; m_dwHelpFileID = IDS_NSHELPFILE; m_dwDocStringID = IDS_DOCSTRINGRecycle; } ~CEmptyRecycleBin() { ATLTRACE(_T("Destroying EmptyRecycleBin\n")); } DECLARE_REGISTRY_RESOURCEID(IDR_EMPTYRECYCLEBIN) BEGIN_COM_MAP(CEmptyRecycleBin) COM_INTERFACE_ENTRY(ISecureShutdownWin) COM_INTERFACE_ENTRY(IDispatch) COM_INTERFACE_ENTRY(ISupportErrorInfo) COM_INTERFACE_ENTRY_IMPL(IPropertyPage) END_COM_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); // Data protected: CPropertyBag m_Data; /////////////////////////////////////////////////////////////////// // Property Sheet Stuff public: enum {IDD = IDD_EMPTYRECYCLE}; BEGIN_MSG_MAP(CEmptyRecycleBin) MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog) CHAIN_MSG_MAP(IPropertyPageImpl) CHAIN_MSG_MAP(CContextHelp) END_MSG_MAP() BEGIN_HELP_MAP(NS_HELP_FILE) HELP_ID(IDC_EMPTYRECYCLE, 4020) HELP_ID(IDC_EMPTYNORTON, 4019) END_HELP_MAP // Property Sheet Messages LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); STDMETHOD(Apply)(void) { ATLTRACE(_T("CEmptyRecycleBun::Apply\n")); HRESULT hr; HRESULT hrRet = S_OK; // Save AutoFix State hr = m_Data.WriteInt(ER_REG_RECYCLE, IsDlgButtonChecked(IDC_EMPTYRECYCLE)); if(FAILED(hr)) hrRet = hr; // Save Cluster State hr = m_Data.WriteInt(ER_REG_NORTON, IsDlgButtonChecked(IDC_EMPTYNORTON)); if(FAILED(hr)) hrRet = hr; m_bDirty = FALSE; return hrRet; } }; #endif //__EMPTYRECYCLEBIN_H_