cdlabsc.h
Upload User: xhy777
Upload Date: 2007-02-14
Package Size: 24088k
Code Size: 3k
Category:

Windows Kernel

Development Platform:

Visual C++

  1. #ifndef __CDLBSC_INCLUDED__
  2. #define __CDLBSC_INCLUDED__
  3. class CDLAgentBSC : public IBindStatusCallback, public IServiceProvider,
  4.                     public IInternetHostSecurityManager
  5. {
  6.     public:
  7.         CDLAgentBSC(CCDLAgent *pcdlagent, DWORD dwMaxSizeKB, BOOL fSilentOperation, LPWSTR szCDFURL);
  8.         virtual ~CDLAgentBSC();
  9.         HRESULT Abort();
  10.         HRESULT Pause();
  11.         HRESULT Resume();
  12.         // IUnknown methods
  13.         STDMETHODIMP QueryInterface( REFIID ridd, void **ppv );
  14.         STDMETHODIMP_( ULONG ) AddRef();
  15.         STDMETHODIMP_( ULONG ) Release();
  16.     
  17.         // IBindStatusCallback methods
  18.         STDMETHODIMP GetBindInfo(DWORD *grfBINDINFOF, BINDINFO *pbindinfo);
  19.         STDMETHODIMP OnStartBinding(DWORD grfBSCOption, IBinding *pib);
  20.         STDMETHODIMP GetPriority(LONG *pnPriority);
  21.         STDMETHODIMP OnProgress(ULONG ulProgress, ULONG ulProgressMax,
  22.                                 ULONG ulStatusCode, LPCWSTR szStatusText);
  23.         STDMETHODIMP OnDataAvailable(DWORD grfBSCF, DWORD dwSize,
  24.                                       FORMATETC *pformatetc,
  25.                                       STGMEDIUM *pstgmed);
  26.         STDMETHODIMP OnObjectAvailable(REFIID riid, IUnknown *punk);
  27.         STDMETHODIMP OnLowResource(DWORD dwReserved);
  28.         STDMETHODIMP OnStopBinding(HRESULT hresult, LPCWSTR szError);
  29.         // IServiceProvider
  30.         STDMETHODIMP QueryService(REFGUID rsid, REFIID riid, void ** ppvObj);
  31.         // IInternetHostSecurityManager
  32.         STDMETHODIMP GetSecurityId(BYTE *pbSecurityId, DWORD *pcbSecurityId,
  33.                                    DWORD_PTR dwReserved);
  34.         
  35.         STDMETHODIMP ProcessUrlAction(DWORD dwAction, BYTE *pPolicy, DWORD cbPolicy,
  36.                                       BYTE *pContext, DWORD cbContext, DWORD dwFlags,
  37.                                       DWORD dwReserved);
  38.         
  39.         STDMETHODIMP QueryCustomPolicy(REFGUID guidKey, BYTE **ppPolicy,
  40.                                        DWORD *pcbPolicy, BYTE *pContext,
  41.                                        DWORD cbContext, DWORD dwReserved);
  42.     
  43.     
  44.     protected:
  45.         IBinding                   *m_pIBinding; // ibinding from code dl'er
  46.         CCDLAgent                  *m_pCdlAgent;
  47.         DWORD                       m_cRef;
  48.         BOOL                        m_fSilentOperation;
  49.         DWORD                       m_dwMaxSize;
  50.         WCHAR                       m_pwzCDFBase[INTERNET_MAX_URL_LENGTH];
  51.         IInternetSecurityManager   *m_pSecMgr;
  52. };
  53. #endif