Microsoft KB Archive/169436

{|
 * width="100%"|

FIX: Second Time Print from WebBrowser Causes AV in MSHTML.DLL

 * }

Q169436

-

The information in this article applies to:


 * Microsoft Internet Explorer (Programming) versions 3.01, 3.02, on platform(s):
 * the operating system: Microsoft Windows NT
 * the operating system: Microsoft Windows 95

-

SYMPTOMS
Attempting to print the contents of a WebBrowser control for the second time in Internet Explorer 3.x causes an Access Violation error in Mshtml.dll.

RESOLUTION
Use the following steps to work around the problem:

 Download the IE 3.02 File Upload Add-on from the Microsoft download site: http://www.microsoft.com/msdownload/ieplatform/iewin95.htm

This add-on, in addition to the File Upload support, includes a fix for this WebBrowser printing problem.  Execute the following code to force MSHTML out of memory, and then reload it, restoring its reference count:      HMODULE hmod; int   i = 0, j;

// Try to remove MSHTML from memory while( hmod = GetModuleHandle("MSHTML") ) {        FreeLibrary(hmod); i++; }

// Restore MSHTML's refcount for (j = 1; j <= i; j++) {        LoadLibrary("MSHTML"); } 

STATUS
Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article. This bug has been corrected in the IE 3.02 File Upload add-on release.

Steps to Reproduce Behavior
From an application that hosts the WebBrowser control:


 * 1) Open a window containing the WebBrowser control.
 * 2) Navigate to any URL, such as http://www.microsoft.com.
 * 3) Print the contents of the WebBrowser.
 * 4) Close the window containing the WebBrowser control.
 * 5) Reopen the window containing the WebBrowser control, navigating to any URL.
 * 6) Print the contents of the WebBrowser control (second time).
 * 7) A dialog box pops up indicating an Access Violation has occurred in Mshtml.dll.