home *** CD-ROM | disk | FTP | other *** search
- // ===========================================================================
- // File: DOWNLOAD.Cpp
- // Defines the class behaviour for CBindStatusCallback.
-
-
- #include "stdafx.h"
- #include "Mainfrm.h"
- #include "download.h"
- #include "winnls.h"
- #include "Util.H"
-
- // ===========================================================================
- // CBindStatusCallback Implementation
- // ===========================================================================
-
- // ---------------------------------------------------------------------------
- // %%Function: CBindStatusCallback::CBindStatusCallback
- // ---------------------------------------------------------------------------
- CBindStatusCallback::CBindStatusCallback(CMainFrame * pMDIframewnd)
- {
- m_pbinding = NULL;
- m_pstm = NULL;
- m_cRef = 1;
- m_cbOld = 0;
- m_pMDIframwnd=pMDIframewnd;
- } // CBindStatusCallback
-
- // ---------------------------------------------------------------------------
- // %%Function: CBindStatusCallback::~CBindStatusCallback
- // ---------------------------------------------------------------------------
- CBindStatusCallback::~CBindStatusCallback()
- {
- if (m_pstm)
- m_pstm->Release();
- if (m_pbinding)
- m_pbinding->Release();
- } // ~CBindStatusCallback
-
-
- // ---------------------------------------------------------------------------
- // %%Function: CBindStatusCallback::QueryInterface
- // ---------------------------------------------------------------------------
- STDMETHODIMP
- CBindStatusCallback::QueryInterface(REFIID riid, void** ppv)
- {
- *ppv = NULL;
-
- if (riid==IID_IUnknown || riid==IID_IBindStatusCallback)
- {
- *ppv = this;
- AddRef();
- return S_OK;
- }
- return E_NOINTERFACE;
- } // CBindStatusCallback::QueryInterface
-
- // ---------------------------------------------------------------------------
- // %%Function: CBindStatusCallback::OnStartBinding
- // ---------------------------------------------------------------------------
- STDMETHODIMP
- CBindStatusCallback::OnStartBinding(DWORD grfBSCOption, IBinding* pbinding)
- {
- m_pMDIframwnd->MyShowPane("Starting to Download File ");
- return(NOERROR);
- } // CBindStatusCallback::OnStartBinding
-
- // ---------------------------------------------------------------------------
- // %%Function: CBindStatusCallback::GetPriority
- // ---------------------------------------------------------------------------
- STDMETHODIMP
- CBindStatusCallback::GetPriority(LONG* pnPriority)
- {
- return(NOERROR);
- } // CBindStatusCallback::GetPriority
-
- // ---------------------------------------------------------------------------
- // %%Function: CBindStatusCallback::OnLowResource
- // ---------------------------------------------------------------------------
- STDMETHODIMP
- CBindStatusCallback::OnLowResource(DWORD dwReserved)
- {
- return(NOERROR);
- } // CBindStatusCallback::OnLowResource
-
- // ---------------------------------------------------------------------------
- // %%Function: CBindStatusCallback::OnStopBinding
- // ---------------------------------------------------------------------------
- STDMETHODIMP
- CBindStatusCallback::OnStopBinding(HRESULT hrStatus, LPCWSTR pszError)
- {
- if (hrStatus)
- m_pMDIframwnd->MyShowPane("File download Failed.");
- else
- m_pMDIframwnd->MyShowPane("File Downloaded");
- return(NOERROR);
- } // CBindStatusCallback::OnStopBinding
-
- // ---------------------------------------------------------------------------
- // %%Function: CBindStatusCallback::GetBindInfo
- // ---------------------------------------------------------------------------
- STDMETHODIMP
- CBindStatusCallback::GetBindInfo(DWORD* pgrfBINDF, BINDINFO* pbindInfo)
- {
- return (NOERROR);
- } // CBindStatusCallback::GetBindInfo
-
- // ---------------------------------------------------------------------------
- // %%Function: CBindStatusCallback::OnDataAvailable
- // This function is called whenever data starts arriving. When the file download is
- // complete then the BSCF_LASTDATANOTIFICATION comes and you can get the local cached
- // File Name.
- // ---------------------------------------------------------------------------
- STDMETHODIMP
- CBindStatusCallback::OnDataAvailable
- (
- DWORD grfBSCF,
- DWORD dwSize,
- FORMATETC* pfmtetc,
- STGMEDIUM* pstgmed
- )
- {
- return(NOERROR);
- } // CBindStatusCallback::OnDataAvailable
-
-
- // ---------------------------------------------------------------------------
- // %%Function: CBindStatusCallback::OnObjectAvailable
- // ---------------------------------------------------------------------------
- STDMETHODIMP
- CBindStatusCallback::OnObjectAvailable(REFIID riid, IUnknown* punk)
- {
- return(NOERROR);
- } // CBindStatusCallback::OnObjectAvailable
-
- // ---------------------------------------------------------------------------
- // %%Function: CBindStatusCallback::OnProgress
- // ---------------------------------------------------------------------------
- STDMETHODIMP
- CBindStatusCallback::OnProgress
- (
- ULONG ulProgress,
- ULONG ulProgressMax,
- ULONG ulStatusCode,
- LPCWSTR pwzStatusText
- )
- {
- char msg[100];
- wsprintf(msg,"Downloaded : %d bytes of %d ", ulProgress, (ulProgress>ulProgressMax)?ulProgress:ulProgressMax);
- m_pMDIframwnd->MyShowPane(msg);
-
- return(NOERROR);
- }// CBindStatusCallback::OnProgress
-