// Author: Hajo Kirchhoff
// Modified by:
// Created: 06/11/2003
-// RCS-ID: $Id$
// Copyright: (c) 2003 Hajo Kirchhoff
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef WX_PRECOMP
#include "wx/list.h"
+ #include "wx/string.h"
+ #include "wx/utils.h"
+ #include "wx/module.h"
+ #include "wx/log.h"
#endif
#if !wxUSE_PROTOCOL_HTTP
#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>
{
public:
wxWinINetInputStream(HINTERNET hFile=0);
- ~wxWinINetInputStream();
+ virtual ~wxWinINetInputStream();
void Attach(HINTERNET hFile);
{ 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);
- 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;