For original discussion please refer to this post.
http://social.msdn.microsoft.com/Forums/en-US/ieextensiondevelopment/thread/3f99
12b8-e14a-4849-8fa3-b233e4e8640e/
When I download for example .pdf, .exe, .gz or .7z file, the
IBindStatusCallback implementation is called in following way:
- GetBindInfo
- OnStartBinding
- OnProgress (BINDSTATUS_BEGINDOWNLOADDATA)
- OnProgress (BINDSTATUS_CACHEFILENAMEAVAILABLE)
- OnDataAvailable
- OnProgress (BINDSTATUS_DOWNLOADINGDATA)
- OnDataAvailable
- OnProgress (BINDSTATUS_DOWNLOADINGDATA)
...
- OnDataAvailable
- OnProgress (BINDSTATUS_ENDDOWNLOADDATA)
- OnDataAvailable
...
- OnStopBinding
File is now fully downloaded and saved on disk.
But when I download .zip file, the IBindStatusCallback implementation is called
in following way:
- GetBindInfo
- OnStartBinding
- OnProgress (BINDSTATUS_BEGINDOWNLOADDATA)
- OnProgress (BINDSTATUS_CACHEFILENAMEAVAILABLE)
- OnDataAvailable
Now application blocks, no more OnProgress or OnDataAvailable call. Last Read()
on stream in OnDataAvailable returned E_PENDING so I expect more calls to
OnProgress and OnDataAvailable, but nothing, application just hangs.
This works correctly in IE7 and IE8. I tested this with multiple pages, files,
on multiple machines with IE9.
I found a reason of this behavior. If you have default .zip files association -
Compressed folder feature in Windows - there are two download dialogs opened
for all .zip files and IBindStatusCallback implementation can't handle this.
Solution is to remove or change association of .zip files (instal for example
7Zip). Then only one download dialog is displayed and everything works
correctly.
Now the issue is whether there's something that we can do in the browser's code?
Original issue reported on code.google.com by prasoonp...@gmail.com on 27 Aug 2011 at 7:33
Original issue reported on code.google.com by
prasoonp...@gmail.com
on 27 Aug 2011 at 7:33