To solve this problem, ensure that all ActiveX controls used on HTML pages properly support property and data persistence.
MFC controls should include PX_ tags for all essential properties inside the COleControl::DoPropExchange override. These persisted properties need to expose data such that when the control is reloaded in the secondary HTML page, it can restore the state of the control. This includes any data that was dynamically added to the control by the user or script.
Also, controls should make no assumptions about the kind of device context (DC) they will be given when they are asked to draw, as they will be asked to draw for the printer in the same manner they are asked to draw for the screen.
Last, ActiveX controls will not be UI Activated during the printing, and any display code in the control that relies on Windows will likely fail and draw incorrectly. When necessary, the workaround described in the following article in the Microsoft Knowledge Base can be used to force window creation without relying on UI activation:
195188 PRB: ActiveX Control Window Is Not Created Until Visible in Internet Explorer