mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
2.5 KiB
58 lines
2.5 KiB
#ifndef __CDLBSC_INCLUDED__
|
|
#define __CDLBSC_INCLUDED__
|
|
|
|
class CDLAgentBSC : public IBindStatusCallback, public IServiceProvider,
|
|
public IInternetHostSecurityManager
|
|
{
|
|
public:
|
|
CDLAgentBSC(CCDLAgent *pcdlagent, DWORD dwMaxSizeKB, BOOL fSilentOperation, LPWSTR szCDFURL);
|
|
virtual ~CDLAgentBSC();
|
|
HRESULT Abort();
|
|
HRESULT Pause();
|
|
HRESULT Resume();
|
|
|
|
// IUnknown methods
|
|
STDMETHODIMP QueryInterface( REFIID ridd, void **ppv );
|
|
STDMETHODIMP_( ULONG ) AddRef();
|
|
STDMETHODIMP_( ULONG ) Release();
|
|
|
|
// IBindStatusCallback methods
|
|
STDMETHODIMP GetBindInfo(DWORD *grfBINDINFOF, BINDINFO *pbindinfo);
|
|
STDMETHODIMP OnStartBinding(DWORD grfBSCOption, IBinding *pib);
|
|
STDMETHODIMP GetPriority(LONG *pnPriority);
|
|
STDMETHODIMP OnProgress(ULONG ulProgress, ULONG ulProgressMax,
|
|
ULONG ulStatusCode, LPCWSTR szStatusText);
|
|
STDMETHODIMP OnDataAvailable(DWORD grfBSCF, DWORD dwSize,
|
|
FORMATETC *pformatetc,
|
|
STGMEDIUM *pstgmed);
|
|
STDMETHODIMP OnObjectAvailable(REFIID riid, IUnknown *punk);
|
|
STDMETHODIMP OnLowResource(DWORD dwReserved);
|
|
STDMETHODIMP OnStopBinding(HRESULT hresult, LPCWSTR szError);
|
|
|
|
// IServiceProvider
|
|
STDMETHODIMP QueryService(REFGUID rsid, REFIID riid, void ** ppvObj);
|
|
|
|
// IInternetHostSecurityManager
|
|
STDMETHODIMP GetSecurityId(BYTE *pbSecurityId, DWORD *pcbSecurityId,
|
|
DWORD_PTR dwReserved);
|
|
|
|
STDMETHODIMP ProcessUrlAction(DWORD dwAction, BYTE *pPolicy, DWORD cbPolicy,
|
|
BYTE *pContext, DWORD cbContext, DWORD dwFlags,
|
|
DWORD dwReserved);
|
|
|
|
STDMETHODIMP QueryCustomPolicy(REFGUID guidKey, BYTE **ppPolicy,
|
|
DWORD *pcbPolicy, BYTE *pContext,
|
|
DWORD cbContext, DWORD dwReserved);
|
|
|
|
|
|
protected:
|
|
IBinding *m_pIBinding; // ibinding from code dl'er
|
|
CCDLAgent *m_pCdlAgent;
|
|
DWORD m_cRef;
|
|
BOOL m_fSilentOperation;
|
|
DWORD m_dwMaxSize;
|
|
WCHAR m_pwzCDFBase[INTERNET_MAX_URL_LENGTH];
|
|
IInternetSecurityManager *m_pSecMgr;
|
|
};
|
|
|
|
#endif
|