]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/urlmsw.cpp
add wxGet/Set/HasWindowExStyle() helpers and use them
[wxWidgets.git] / src / msw / urlmsw.cpp
index 891cdb6bc01596a55eff4c5be9c447d3f1b5de00..7c7bab29c73dcdfb05479ef5709be890547cde15 100644 (file)
@@ -20,6 +20,9 @@
 
 #ifndef WX_PRECOMP
     #include "wx/list.h"
+    #include "wx/string.h"
+    #include "wx/utils.h"
+    #include "wx/module.h"
 #endif
 
 #if !wxUSE_PROTOCOL_HTTP
@@ -63,9 +66,6 @@ USE_PROTOCOL(wxHTTPDummyProto)
     #pragma comment(lib, "wininet.lib")
 #endif
 
-#include "wx/string.h"
-#include "wx/utils.h"
-#include "wx/module.h"
 #include "wx/url.h"
 
 #include <string.h>
@@ -121,7 +121,7 @@ class /*WXDLLIMPEXP_NET */ wxWinINetInputStream : public wxInputStream
 {
 public:
     wxWinINetInputStream(HINTERNET hFile=0);
-    ~wxWinINetInputStream();
+    virtual ~wxWinINetInputStream();
 
     void Attach(HINTERNET hFile);
 
@@ -129,6 +129,7 @@ public:
         { return -1; }
     wxFileOffset TellI() const
         { return -1; }
+    size_t GetSize() const;
 
 protected:
     void SetError(wxStreamError err) { m_lasterror=err; }
@@ -138,6 +139,18 @@ protected:
     DECLARE_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;