cdlbsc.hpp
Upload User: xhy777
Upload Date: 2007-02-14
Package Size: 24088k
Code Size: 2k
Category:

Windows Kernel

Development Platform:

Visual C++

  1. #ifndef __CDLBSC_INCLUDED__
  2. #define __CDLBSC_INCLUDED__
  3. #include "init.h"
  4. #include <urlmon.h>
  5. #define DOWNLOAD_PROGRESS  0x9001
  6. #define DOWNLOAD_COMPLETE  0x9002
  7. class CodeDownloadBSC : public IBindStatusCallback, public IWindowForBindingUI {
  8.     public:
  9.         CodeDownloadBSC( HWND hwnd, HWND hdlg, LPITEMIDLIST pidlUpdate = NULL );
  10.         virtual ~CodeDownloadBSC();
  11.         HRESULT Abort();
  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.         // IWindowForBindingUI
  30.         STDMETHODIMP GetWindow( REFGUID rguidReason, HWND __RPC_FAR *phwnd ); 
  31.         HWND            _hdlg;          // progress dialog
  32.     protected:
  33.         IBinding        *_pIBinding; // ibinding from code dl'er
  34.         DWORD           _cRef;
  35.         HWND            _hwnd;          // owner window
  36.         LPITEMIDLIST    _pidlUpdate;    // pidl for item we are updating
  37. };
  38. #endif