Windows2003-3790/inetcore/urlmon/trans/cdldelg.hxx
2020-09-30 16:53:55 +02:00

53 lines
2.2 KiB
C++

#ifndef __CDLDELEGATE_INCLUDED__
#define __CDLDELEGATE_INCLUDED__
STDMETHODIMP AsyncDLCodeInstall(CBinding *pCBinding,
IBindStatusCallback *pBSC,
IBinding **ppIBinding,
CCodeDownloadInfo *pCDLInfo);
class CCDLDelegate : public IBindStatusCallback, public IBinding,
public IWindowForBindingUI {
public:
CCDLDelegate(CBinding *pCBinding, IBindStatusCallback *pBSC);
virtual ~CCDLDelegate();
// 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 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);
STDMETHODIMP GetPriority(LONG *pnPriority);
// IBinding methods
STDMETHODIMP Abort(void);
STDMETHODIMP Suspend(void);
STDMETHODIMP Resume(void);
STDMETHODIMP SetPriority(LONG nPriority);
STDMETHODIMP GetBindResult(CLSID *pclsidProtocol, DWORD *pdwBindResult,
LPWSTR *pszBindResult, DWORD *dwReserved);
// IWindowForBindingUI methods
STDMETHODIMP GetWindow(REFGUID rguidReason, HWND __RPC_FAR *phwnd);
protected:
CBinding *_pCBinding; // CBinding from urlmon (inital dl)
IBindStatusCallback *_pBSC; // BSC from SHDOCVW
IBinding *_pBinding; // ibinding from cdl moniker
DWORD _cRef;
};
#endif