00001
00002
00003
00004
00005
00006 #ifndef __WGURLRECEIVER_H_
00007 #define __WGURLRECEIVER_H_
00008
00009 #include "resource.h"
00010 #include <objsafe.h>
00011
00012 class ATL_NO_VTABLE CWGUrlReceiver :
00013 public CComObjectRootEx<CComSingleThreadModel>,
00014 public CComCoClass<CWGUrlReceiver, &CLSID_WGUrlReceiver>,
00015 public IDispatchImpl<IWGUrlReceiver, &IID_IWGUrlReceiver, &LIBID_FdmLib>
00016 {
00017 public:
00018 CWGUrlReceiver()
00019 {
00020 m_bCheckExt = FALSE;
00021 m_bIgnoreSize = TRUE;
00022 m_hJobt = NULL;
00023 m_dlInfo.bForceSilent = FALSE;
00024 m_dlInfo.bForceAutoStart = FALSE;
00025 m_dlInfo.bDisableMaliciousChecking = FALSE;
00026 m_dlInfo.bDisableURLExistsChecking = FALSE;
00027 m_dlInfo.bFlashVideoDownload = FALSE;
00028 }
00029
00030 DECLARE_REGISTRY_RESOURCEID(IDR_WGURLRECEIVER)
00031
00032 DECLARE_PROTECT_FINAL_CONSTRUCT()
00033
00034 BEGIN_COM_MAP(CWGUrlReceiver)
00035 COM_INTERFACE_ENTRY(IWGUrlReceiver)
00036 COM_INTERFACE_ENTRY(IDispatch)
00037 END_COM_MAP()
00038
00039 BEGIN_CATEGORY_MAP(CWGUrlReceiver)
00040 IMPLEMENTED_CATEGORY(CATID_SafeForScripting)
00041 IMPLEMENTED_CATEGORY(CATID_SafeForInitializing)
00042 END_CATEGORY_MAP()
00043
00044 public:
00045 STDMETHOD(get_FlashVideoDownload)( BOOL *pVal);
00046 STDMETHOD(put_FlashVideoDownload)( BOOL newVal);
00047 STDMETHOD(get_FileName)( BSTR *pVal);
00048 STDMETHOD(put_FileName)( BSTR newVal);
00049 STDMETHOD(get_DisableURLExistsCheck)( BOOL *pVal);
00050 STDMETHOD(put_DisableURLExistsCheck)( BOOL newVal);
00051 STDMETHOD(get_DisableMaliciousChecking)( BOOL *pVal);
00052 STDMETHOD(put_DisableMaliciousChecking)( BOOL newVal);
00053 STDMETHOD(get_ForceDownloadAutoStart)( BOOL *pVal);
00054 STDMETHOD(put_ForceDownloadAutoStart)( BOOL newVal);
00055 STDMETHOD(get_ForceSilentEx)( BOOL *pVal);
00056 STDMETHOD(put_ForceSilentEx)( BOOL newVal);
00057 STDMETHOD(get_PostData)( BSTR *pVal);
00058 STDMETHOD(put_PostData)( BSTR newVal);
00059 STDMETHOD(get_Cookies)( BSTR *pVal);
00060 STDMETHOD(put_Cookies)( BSTR newVal);
00061 STDMETHOD(get_ForceSilent)( BOOL *pVal);
00062 STDMETHOD(put_ForceSilent)( BOOL newVal);
00063 STDMETHOD(get_UIState)( BSTR *pVal);
00064 STDMETHOD(get_UseSkipExtsList)( BOOL *pVal);
00065 STDMETHOD(put_UseSkipExtsList)( BOOL newVal);
00066 void FinalRelease();
00067 STDMETHOD(get_IgnoreSize)( BOOL *pVal);
00068 STDMETHOD(put_IgnoreSize)( BOOL newVal);
00069 STDMETHOD(get_CheckExtension)( BOOL *pVal);
00070 STDMETHOD(put_CheckExtension)( BOOL newVal);
00071 STDMETHOD(AddDownload)();
00072
00073 STDMETHOD(get_Referer)( BSTR *pVal);
00074 STDMETHOD(put_Referer)( BSTR newVal);
00075
00076 STDMETHOD(get_Comment)( BSTR *pVal);
00077 STDMETHOD(put_Comment)( BSTR newVal);
00078
00079 STDMETHOD(get_Url)( BSTR *pVal);
00080 STDMETHOD(put_Url)( BSTR newVal);
00081
00082 STDMETHOD(ShowAddPageDownloadDialog)();
00083
00084 STDMETHOD(ShowAddDownloadDialog)();
00085 protected:
00086 void StartJobThread (LPTHREAD_START_ROUTINE pfn);
00087 static DWORD WINAPI _threadAddPage (LPVOID lp);
00088 HANDLE m_hJobt;
00089 struct _ic_DownloadInfo {
00090 CComBSTR bstrUrl, bstrComment, bstrReferer,
00091 bstrCookies, bstrPostData, bstrFileName;
00092 BOOL bForceSilent;
00093 BOOL bNoUIInForceSilentMode;
00094 BOOL bForceAutoStart;
00095 BOOL bDisableMaliciousChecking;
00096 BOOL bDisableURLExistsChecking;
00097 BOOL bFlashVideoDownload;
00098 };
00099
00100 BOOL is_ExtToSkip ();
00101 static DWORD WINAPI _threadAddDownload (LPVOID lp);
00102 static HRESULT AddDownload_imp(_ic_DownloadInfo* dlinfo);
00103 _ic_DownloadInfo m_dlInfo;
00104 BOOL m_bCheckExt;
00105 BOOL m_bIgnoreSize;
00106 };
00107
00108 #endif