Browse Source

report total download size properly

David Rose 16 years ago
parent
commit
f0d19f90a9

+ 4 - 2
direct/src/plugin_activex/PPDownloadCallback.cpp

@@ -18,7 +18,8 @@
 
 
 PPDownloadCallback::PPDownloadCallback( PPDownloadCallbackSync& downloadSync ) 
-    : m_downloadSync( downloadSync ), m_dwTotalRead( 0 ), m_ulObjRefCount( 1 ) 
+    : m_downloadSync( downloadSync ), m_dwTotalRead( 0 ), 
+      m_dwTotalInStream( 0 ), m_ulObjRefCount( 1 ) 
 {
 }
 
@@ -148,6 +149,7 @@ STDMETHODIMP PPDownloadCallback::OnProgress(ULONG ulProgress,
         ulStatusCode = UF_BINDSTATUS_LAST + 1;
     }
 
+    m_dwTotalInStream = ulProgressMax;
     m_downloadSync.ProgressNotify( ulProgress, ulProgressMax );
 
 #ifdef _DEBUG
@@ -209,7 +211,7 @@ STDMETHODIMP PPDownloadCallback::OnDataAvailable(DWORD grfBSCF, DWORD dwSize,
                 pBytes[dwActuallyRead] = 0;
                 if (dwActuallyRead>0)
                 {
-                    bool ret = m_downloadSync.DataNotify( dwSize, (const void*)pBytes, dwActuallyRead );
+                    bool ret = m_downloadSync.DataNotify( m_dwTotalInStream, (const void*)pBytes, dwActuallyRead );
                     if (!ret)
                     {
                         hr = E_ABORT;

+ 1 - 0
direct/src/plugin_activex/PPDownloadCallback.h

@@ -60,5 +60,6 @@ private:
     PPDownloadCallbackSync& m_downloadSync;
 
     DWORD m_dwTotalRead;
+    DWORD m_dwTotalInStream;
 
 };