Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

Activex Document Server & Internet Explorer

Posted on 2012-03-12
3
Medium Priority
?
369 Views
Last Modified: 2012-08-14
Dear friends,

I'm working on activex document server that is used to display documents in Internet Explorer (an user enters URL address of a specified document in IE address bar, document is downloaded and displayed in Internet Explorer).

I would like to create some type of progress bar in activex document server that displays information about document's download progress in Internet Explorer.
Is there any COM interface that can be used to obtain these information from Internet Explorer?

Thanks in advance for any suggestions.

tomas
0
Comment
Question by:tomas_v
  • 2
3 Comments
 
LVL 7

Expert Comment

by:tampnic
ID: 37719169
I don't know how your application works but I recently wrote a download system  in php (download a file by specifying a key code in the querystring of the URL, all files on the webserver in a directory above httpdocs to prevent direct downloads).

That php code looks up the file associated with the provided key, sets up the http headers, mime-type etc, then sends the file data in chunks and I can track how much data has been sent in the server side code - I could notionally send that data to a client side object during the download if I wanted. But why bother - most browsers I know already monitor how much data has been received for a download and show progress automatically.

What I'm trying to get at is - it might be easier for you to monitor the download in server code while the server gives data to the client; create a mechanism to send progress messages to a bespoke client ActiveX object. Why isn't the inbuilt IE download progress bar sufficient for the users, its a standard part of the IE user interface?

Cheers,
  Chris
0
 

Accepted Solution

by:
tomas_v earned 0 total points
ID: 37840172
Hi Chris,

thank you for your advice.
I've found solution for my problem. I had to implement support for IPersistMoniker interface in my Activex document server.

Internet Explorer performs a QueryInterface on the server's document object for IPersistMoniker. If IPersistMoniker is supported, Internet Explorer calls the IPersistMoniker::Load method with the moniker it used to begin downloading the data file.

Then I can skip the normal binding to storage and download the data in a worker thread and display the progress.

http://support.microsoft.com/kb/178059
0
 

Author Closing Comment

by:tomas_v
ID: 37859678
Found solution
0

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Unlike C#, C++ doesn't have native support for sealing classes (so they cannot be sub-classed). At the cost of a virtual base class pointer it is possible to implement a pseudo sealing mechanism The trick is to virtually inherit from a base class…
Go is an acronym of golang, is a programming language developed Google in 2007. Go is a new language that is mostly in the C family, with significant input from Pascal/Modula/Oberon family. Hence Go arisen as low-level language with fast compilation…
The viewer will learn how to user default arguments when defining functions. This method of defining functions will be contrasted with the non-default-argument of defining functions.
The viewer will be introduced to the member functions push_back and pop_back of the vector class. The video will teach the difference between the two as well as how to use each one along with its functionality.
Suggested Courses
Course of the Month10 days, 15 hours left to enroll

885 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question