Re: Asynchronous Pluggable Protocol support for Range Fetching



I guess urlmoniker knows nothing about byte ranges requests. It is needed for downloading large files over HTTP protocol, and HTTP is not involved at this stage - you implement it.

Yes, I realize that it has BINDSTATUS_ACCEPTRANGES flag in ReportProgress(), but it has lots of other flags which are pure informative: BINDSTATUS_PROXYDETECTING, BINDSTATUS_COOKIE_SENT, etc. Reporting this information via ReportProgress() doesn't do anything - won't trigger any response from urlmoniker or webbrowser control.

Ivan.

GoogleGroupsFS@xxxxxxxxxxxx wrote:
I have an Asynchronous Pluggable Protocol (APP), implemented in C++,
which works fine. I would like to add support for byte-range fetching
to it. In particular, I would like to get the Adobe Acrobat Reader
control to make range requests using my APP. I'm very interested in
hearing from anyone who has managed to get byte-range fetching to work,
or who has pointers to documentation explaining how to make this work.

The current implementation makes the following calls, in order, on the
IInternetProtocolSink interface:
ReportProgress(BINDSTATUS_MIMETYPEAVAILABLE, wzMimeType)
ReportProgress(BINDSTATUS_CACHEFILENAMEAVAILABLE, wzFilePath)

After that, we call ReportData as the data becomes available, which
causes URLMON to call our Read function to read the data.

My best guess is that I need to call:
ReportProgress(BINDSTATUS_ACCEPTRANGES, L"bytes")))

I suspect that this call should be made around the time that I make the
other two calls to ReportProgress. I've played around with this, but
can't get the Acrobat control to make a range fetch, as it will do
when it uses http 1.1.

Any help is appreciated.

Cheers

.