windows-nt/Source/XPSP1/NT/shell/ext/webcheck/cdlabsc.h
2020-09-26 16:20:57 +08:00

59 lines
2.5 KiB
C++

#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