PRB: MFC Active Document Appears to Hang When Printed from Internet Explorer

ID: Q178060


The information in this article applies to:
  • Microsoft Internet Explorer (Programming) versions 3.0, 3.01, 3.02, 4.0, 4.01, 5.0
  • Microsoft Visual C++, 32-bit Editions, versions 4.2, 4.2b, 5.0


SYMPTOMS

When an Active Document is viewed in Internet Explorer and the document is printed using the IOLECommandTarget command mechanism, the Active Document server appears to hang.


CAUSE

The Active Document View window is disabled during the print operation and not enabled on completion.


RESOLUTION

Override CView::OnFilePrint(), the default handler for ID_FILE_PRINT, in the Active Document server CView-derived class and insert a call to EnableWindow() as follows:


void CMyView::OnFilePrint()
{
   CView::OnFilePrint();
   AfxGetMainWnd()->EnableWindow();   // TRUE by default
} 


NOTE: Make sure you call the base-class OnFilePrint() before the call to EnableWindow(). ClassWizard does not insert this call for you.


MORE INFORMATION

Internet Explorer issues the Print command to the Active Document server through a call to IOleCommandTarget::Exec using the OLECMDID_PRINT identifier. The BINDSCRB sample code demonstrates mapping this command to ID_FILE_PRINT by adding the ON_OLECMD_PRINT macro to the document's OLECMD map.

However, after printing, the Active Document server no longer accepts input.

Steps to Reproduce Behavior

  1. Build the MFC BINDSCRB sample provided with Microsoft Visual C++.


  2. Run the resulting application to register the server and save a Scribble document.


  3. Drag the Scribble document to Internet Explorer to activate the BINDSCRB server and display the Scribble document.


  4. Select Print from the Internet Explorer File menu. The document will be output to the printer, but the view is disabled and will not accept any input.



REFERENCES

Q180152 HOWTO: Print from an Active Document Server

Additional query words: DocObject server DocObj Active Document

Keywords : kbole kbMFC kbVC kbIE500 AXSDKDocObjects AXSDKIEAutomation
Version : WINDOWS:3.0,3.01,3.02,4.0,4.01,5.0; winnt:4.2,4.2b,5.0
Platform : WINDOWS winnt
Issue type : kbprb


Last Reviewed: October 6, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.