Article ID: 247671
Article Last Modified on 5/12/2003
APPLIES TO
- Microsoft Internet Explorer 5.0
- Microsoft Internet Explorer 5.01
This article was previously published under Q247671
SYMPTOMS
Developers wishing to print multiple copies of an HTML page from script sometimes try to host the WebBrowser control and call ExecWB() repeatedly with the OLECMDID_PRINT command and the OLECMDOPT_DONTPROMPTUSER option. However, this always brings up a print dialog box for each print request. This command works as intended in a WebBrowser host or an ActiveX control. It also works in some versions of Microsoft Internet Explorer Version 4.0.
CAUSE
This was a security hole. Consider the following code:
for (var i = 0; i < 100000; i++) { WebBrowser1.ExecWB 6, -1 }
If allowed to execute, this amounts to a Denial of Service attack, wherein it is possible to jam the user's systems by flooding them with repeat requests.
Additionally, the WebBrowser control's events cannot be sunk when the control is hosted within Internet Explorer. Therefore, there is no way of knowing when a document has completely loaded and is ready to print. For additional information, click the article number below to view the article in the Microsoft Knowledge Base:
183048 PRB: Events Not Firing When IE4 WebBrowser Placed On Web Page
RESOLUTION
There is currently no easy method for printing multiple pages programmatically from script without bringing up a dialog box.
Developers should re-evaluate their use of the WebBrowser control within HTML pages. The WebBrowser control was not designed to be hosted on a Web page using an OBJECT tag.
STATUS
This behavior is by design.
Keywords: kbprint kbwebbrowser kbprb KB247671