]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/urlmsw.cpp
Added ability to switch off more components of the size page UI
[wxWidgets.git] / src / msw / urlmsw.cpp
index e24bcbb90be9d6445e20161539152f7be5fa2d73..d081fc1956e3cab25ec0b77d68112f1fddfcaab2 100644 (file)
@@ -23,6 +23,7 @@
     #include "wx/string.h"
     #include "wx/utils.h"
     #include "wx/module.h"
     #include "wx/string.h"
     #include "wx/utils.h"
     #include "wx/module.h"
+    #include "wx/log.h"
 #endif
 
 #if !wxUSE_PROTOCOL_HTTP
 #endif
 
 #if !wxUSE_PROTOCOL_HTTP
@@ -129,15 +130,28 @@ public:
         { return -1; }
     wxFileOffset TellI() const
         { return -1; }
         { return -1; }
     wxFileOffset TellI() const
         { return -1; }
+    size_t GetSize() const;
 
 protected:
     void SetError(wxStreamError err) { m_lasterror=err; }
     HINTERNET m_hFile;
     size_t OnSysRead(void *buffer, size_t bufsize);
 
 
 protected:
     void SetError(wxStreamError err) { m_lasterror=err; }
     HINTERNET m_hFile;
     size_t OnSysRead(void *buffer, size_t bufsize);
 
-    DECLARE_NO_COPY_CLASS(wxWinINetInputStream)
+    wxDECLARE_NO_COPY_CLASS(wxWinINetInputStream);
 };
 
 };
 
+size_t wxWinINetInputStream::GetSize() const
+{
+   DWORD contentLength = 0;
+   DWORD dwSize = sizeof(contentLength);
+   DWORD index = 0;
+
+   if ( HttpQueryInfo( m_hFile, HTTP_QUERY_CONTENT_LENGTH | HTTP_QUERY_FLAG_NUMBER, &contentLength, &dwSize, &index) )
+      return contentLength;
+   else
+      return 0;
+}
+
 size_t wxWinINetInputStream::OnSysRead(void *buffer, size_t bufsize)
 {
     DWORD bytesread = 0;
 size_t wxWinINetInputStream::OnSysRead(void *buffer, size_t bufsize)
 {
     DWORD bytesread = 0;