c++ 怎么获取http网页和文件的大小

c++ 如何获取http网页和文件的大小
没有用MFC的库, 而是使用WinInet库获取,  主要是HttpQueryInfo(  HTTP_QUERY_CONTENT_LENGTH) 获取文件大小,  但大部分网页(文件) 连接 都获取不到大小, 提示12150 ERROR_HTTP_HEADER_NOT_FOUND , 找不到报头,  但可以下载下来。    试了下几个连接
http://zhidao.baidu.com/question/555151711.html     //不能获取到文件大小
http://dl.bizhi.sogou.com/dl/sogou_wallpaper_14_1527.exe    //这是搜狐壁纸的安装程序, 可以获取到文件大小 
  想问下 如何能正确获取请求的文件大小,   还有文件名如何获取,  如果说是http服务不支持, 但迅雷里几乎所有下载的连接却都能获取到文件名和大小,  求教~!

------解决方案--------------------
可能有些HTTP服务在HTTP头中没有返回LENGTH字段
------解决方案--------------------
有些HTTP传输是CHUNKED传输,这种情况是没有CONTENT-LENGTH的,所以,只能收完了才知道大小了...
------解决方案--------------------
http 协议传送文件资源,都会有Content-Length
动态响应,有的有(可能chunked),有的没有
在没有的情形下,http server一定后会在数据发送完毕后,关闭会话连接,所以客户端会收到CLOSE消息
------解决方案--------------------
都似乎分情况进行处理的
有长度最好,没长度就只能硬着头皮收。迅雷之类的,因为大部分都是重复的下载,即使自身没有长度信息的首次下载,在下载完成后,也可以得到长度等各种信息提交服务器,其他人下载就可以得到相应的信息,显示起来就更友好。

文件名的问题,是自己处理的,一种是直接有文件名,有的需要自己构造,总之也是分情况对待,构造出最合理的名字出来。