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.
52 lines
2.2 KiB
52 lines
2.2 KiB
#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
|