X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/02761f6cd478e3c2c97cf6f93442747f7b029833..591cc82deb5bc6dd0af6047ecfa7ce7cf4f8d859:/src/msw/urlmsw.cpp diff --git a/src/msw/urlmsw.cpp b/src/msw/urlmsw.cpp index 70eb9dfdde..94ae0483f5 100644 --- a/src/msw/urlmsw.cpp +++ b/src/msw/urlmsw.cpp @@ -23,6 +23,7 @@ #include "wx/string.h" #include "wx/utils.h" #include "wx/module.h" + #include "wx/log.h" #endif #if !wxUSE_PROTOCOL_HTTP @@ -121,7 +122,7 @@ class /*WXDLLIMPEXP_NET */ wxWinINetInputStream : public wxInputStream { public: wxWinINetInputStream(HINTERNET hFile=0); - ~wxWinINetInputStream(); + virtual ~wxWinINetInputStream(); void Attach(HINTERNET hFile); @@ -129,6 +130,7 @@ public: { return -1; } wxFileOffset TellI() const { return -1; } + size_t GetSize() const; protected: void SetError(wxStreamError err) { m_lasterror=err; } @@ -138,6 +140,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;