00001
00002
00003
00004
00005 #ifndef __FDMIECOOKIESBHO_H_
00006 #define __FDMIECOOKIESBHO_H_
00007
00008 #include "resource.h"
00009 #include <exdisp.h>
00010 #include <comdef.h>
00011 #include <fsString.h>
00012
00013 class ATL_NO_VTABLE CFDMIECookiesBHO :
00014 public CComObjectRootEx<CComSingleThreadModel>,
00015 public CComCoClass<CFDMIECookiesBHO, &CLSID_FDMIECookiesBHO>,
00016 public IObjectWithSiteImpl<CFDMIECookiesBHO>,
00017 public IDispatchImpl<IFDMIECookiesBHO, &IID_IFDMIECookiesBHO, &LIBID_IECOOKSLib>
00018 {
00019 public:
00020 CFDMIECookiesBHO()
00021 {
00022 m_hFile = INVALID_HANDLE_VALUE;
00023 m_mxFile = CreateMutex (NULL, FALSE, "vmsMX::fdmietmpcookiesfileops");
00024 }
00025
00026 DECLARE_REGISTRY_RESOURCEID(IDR_FDMIECOOKIESBHO)
00027
00028 DECLARE_PROTECT_FINAL_CONSTRUCT()
00029
00030 BEGIN_COM_MAP(CFDMIECookiesBHO)
00031 COM_INTERFACE_ENTRY(IFDMIECookiesBHO)
00032 COM_INTERFACE_ENTRY(IObjectWithSite)
00033 COM_INTERFACE_ENTRY(IDispatch)
00034 END_COM_MAP()
00035
00036 public:
00037 STDMETHOD(DocumentComplete)( IDispatch *pDisp, VARIANT *URL);
00038 static long get_IEDownloadsCount();
00039 STDMETHOD(DownloadComplete)();
00040 STDMETHOD(DownloadBegin)();
00041 STDMETHOD(BeforeNavigate2)(IDispatch*, VARIANT* url, VARIANT* flags, VARIANT* tfn, VARIANT* pd, VARIANT* headers, VARIANT_BOOL* bCancel);
00042 STDMETHOD(ProgressChange)(long Progress, long ProgressMax);
00043 STDMETHOD(GetSite)(REFIID riid, void **ppvSite);
00044 STDMETHOD(SetSite )(IUnknown *pSite);
00045 protected:
00046 void DeleteFile();
00047 static long _cIEDownloads;
00048 void WalkThroughForm (IHTMLElement* pElement, fsString& str);
00049 HANDLE m_mxFile;
00050 void SaveInfoToDisk();
00051 STDMETHOD(Disconnect)();
00052 STDMETHOD(Connect)();
00053
00054 IConnectionPointContainerPtr m_spWB_CPC;
00055 IWebBrowser2Ptr m_spWB;
00056 DWORD m_dwCookie;
00057 IConnectionPointPtr m_spWB_CPC_CP;
00058 fsString m_strCookies;
00059 fsString m_strUrl;
00060 fsString m_strPostData;
00061 fsString m_strBeforeNavUrl;
00062 fsString m_strTmpFile;
00063 HANDLE m_hFile;
00064 };
00065
00066 #endif