Microsoft KB Archive/253356

= PRB: "API Call Caused an Exception" Error Message with Third-Party Print Drivers =

Article ID: 253356

Article Last Modified on 11/17/2003

-

APPLIES TO

 Microsoft Visual FoxPro 6.0 Professional Edition, when used with:  Microsoft Windows 95

 Microsoft Windows 98 Standard Edition 

-



This article was previously published under Q253356



SYMPTOMS
When using a Hewlett Packard LaserJet 4000 PCL5e or other third-party print driver, a non-fatal error can occur:

API call caused an exception



CAUSE
The third-party print drivers are not resetting the floating point coprocessor.



RESOLUTION
Here is a workaround to the behavior. The error message "API call caused an exception" is trappable and reports an error number of 2028. The error can be handled by placing an _fpreset function call and a retry command in an error-handling procedure. The following code demonstrates the basic structure for trapping this error: DECLARE _fpreset IN MSVCRT20.DLL ON ERROR DO errHand WITH ERROR SET LIBRARY TO HOME+"foxtools.fll" SET PRINTER TO GETPRINTER ? _wfindtitl("Command") && Error occurs at this point

PROCEDURE errHand PARAMETERS _lcError DO CASE CASE _lcError = 2028 && API call caused an exception _fpreset RETRY OTHERWISE ERROR _lcError ENDCASE ENDPROC

<div class="status_section">

STATUS
This behavior is by design.

<div class="moreinformation_section">

Steps to Reproduce the Behavior
<ol> Install a HP LaserJet 4000 PCL5e print driver.</li>  Copy the following code into a FoxPro program: SET LIBRARY TO HOME+"FOXTOOLS.FLL" SET PRINTER TO GETPRINTER ? _wfindtitl("command") </li> Execute the new program.</li> Choose the HP LaserJet 4000 PCL5e print driver. The error message listed in the "Symptoms" section is displayed.</li></ol>

<div class="references_section">