00001
00002
00004
00005 #if !defined(AFX_ADDEDITDNSBL_H__088B8C8A_0172_48C2_B97B_6D60867BBCC4__INCLUDED_)
00006 #define AFX_ADDEDITDNSBL_H__088B8C8A_0172_48C2_B97B_6D60867BBCC4__INCLUDED_
00007
00008 #if _MSC_VER > 1000
00009 #pragma once
00010 #endif // _MSC_VER > 1000
00011
00012 #include <abuse/abuse.h>
00013 #include <map>
00014 #include <abuse/Dnsbl.h>
00015 #include <abuse/Url.h>
00016 #include <utility>
00017 #include "Dialog.h"
00018 #include "DnsblManager.h"
00019
00020 class AddEditDnsbl:public Dialog
00021 {
00022 public:
00023
00024
00025 AddEditDnsbl(const DnsblManager& manager,HWND hParent,const Init& init=Init());
00026
00027 AddEditDnsbl(const DnsblManager& manager,const std::string& name,HWND hParent,const Init& init=Init());
00028 AddEditDnsbl(const DnsblManager& manager,const Dnsbl& dnsbl,HWND hParent,const Init& init=Init());
00029
00030 virtual ~AddEditDnsbl();
00031
00032
00033
00034 const Dnsbl* getResult()const;
00035 private:
00036
00037
00038
00039 static BOOL staticDialogProc(HWND hDlg,UINT uMsg,WPARAM wP,LPARAM lP);
00040
00041
00042
00043 BOOL dlgProc(UINT uMsg,WPARAM wP,LPARAM lP);
00044 Dnsbl* m_pDnsbl;
00045
00046 bool m_bEditing;
00047
00048 bool m_bDirty;
00049
00050 const DnsblManager& m_manager;
00051
00052 std::map<Url,Result> m_results;
00053
00054 __inline void cancelIt();
00055 enum ResultNum{SINGLE,MULTIPLE};
00056
00057 __inline void setResultType(ResultNum num);
00058
00059 __inline void checkOk();
00060 __inline void setResult(Result r);
00061
00062 };
00063
00064 #endif // !defined(AFX_ADDEDITDNSBL_H__088B8C8A_0172_48C2_B97B_6D60867BBCC4__INCLUDED_)