I have been struggling with an upgrade of a VB6 & CR IX application. Due to issues printing a MICR (printer) embedded font. I have needed to use the PrintOutputController method of printing instead of PrintToPrinter.
The first problem I encountered was the compiled application (CR for VS 2010 SP2) produced an error "Class not registered - CrystalPrintControl". After a long search of the forum I found that the PrintControl.dll was not registered. I checked the client and the install of CRRuntime_32bit_13_0_2.msi did NOT install the ActiveXControls directory to the client. I then copied the ActiveXControls from the development computer and registered the PrintControl.dll. This worked!
However I tried to use the crPrintReportOptions.PaperSource = CrPaperSourceEnum.crPaperSourceUpper command to set the printer tray but this did not work on the HP 4250 printer. I used GetAvailableBins(printername) and GetAvailableBinNames(printername) to determine the correct values for the trays (tray 1 - 262 and tray 2 - 261). This all worked outstandingly well on the development computer but caused an "External component has thrown an exception" error on the client computer when the GetAvailableBins or GetAvailableBinNames were executed.
1. Why did the ActiveXControls folder and files fail to be created on the client computer when the CRRuntime_32bit_13_0_2 was installed?
2. Suggestions on why I am now getting the "External component has thrown an exception" when using the GetAvailableBins command? The commands work OK on the development computer so I assume there is a problem with the client installation. As a possibility I thought it may have something to do with csprintdlg.dll which is in the ActiveXControls folder (which did not get created in the install) so I tried to manually register the dll in the ActiveXControls folder but received the error "the dllregisterserver point was not found".