>>>I assume you've already done something to try playing with SetErrorMode() to see if you can get the critical error not to trap out at the OS?
>>
>>Unfortunately, I don't know anything about it. Is it an API function?
>
>Yes - it determines whether Windows traps certain errors or passes them along to the app for it to deal with:
SetErrorMode
>The SetErrorMode function controls whether the system will handle the specified types of serious errors, or whether the process will handle them.
>
>UINT SetErrorMode(
> UINT uMode // process error mode
>);
>Parameters
>uMode
>[in] Specifies the process error mode. This parameter can be one or more of the following values.
>My guess is if it's going to help, you'll want to pass it the critical error handler flag:
>
>DECLARE INTEGER SetErrorMode IN Kernel32 INTEGER Flags
>=SetErrorMode(1)
>
>You can use this to bypass having the OS trap out I/O errors to simplify handling some tests for missing floppies, for example:
>
>DECLARE INTEGER SetErrorMode IN Kernel32 INTEGER Flags
>nOldValue=SetErrorMode(0x8001)
>? DISKSPACE('A:')
>=SetErrorMode(nOldValue)
>? DISKSPACE('A:')
I'll try that and I will be back with the result. When having PHDBase in the main COM, I know how to simulate the error. So, I should be able to test it right away.