This is part of Family API which allow to create dual-os version of program runs under OS/2 and DOS

Note: This is legacy API call. It is recommended to use 32-bit equivalent

DosError

This call allows an OS/2 process to receive hard error notification without generating a hard error signal.

Syntax

DosError (Flag)

Parameters

;Flags (USHORT) - input : Bit field, defined in the following example (the unused high-order bits are reserved and must be set to zero). Bit Description 15-2 Reserved, set to zero.

1 0 = Enable exception popups.

1 = Disable exception popups.

0 0 = Disable hard error popups (fail requests).

1 = Enable hard error popups.

Return Code

rc (USHORT) - return Return code descriptions are: *0 NO_ERROR *87 ERROR_INVALID_PARAMETER

Remarks

DosError allows an OS/2 process to disable user notification if a program (or untrapped numeric processor) exception occurs. If end user notification is disabled, and if one of these exceptions occurs, the process is terminated.

Hard errors generated under a process that has issued a DosError call are failed, and the appropriate error code is returned. The default situation is both hard error pop-ups and exception pop-ups are enabled, if DosError is not issued.

Family API Considerations

Some options operate differently in the DOS mode than in the OS/2 mode. Therefore, the following restriction applies to DosError when coding for the DOS mode:

For Flag, a value of 0000 causes all subsequent INT 24s to be failed until a subsequent call with a value of 1 is issued.

Note: Since INT 24 is not issued in DOS mode, this call has no effect when running in DOS mode.

Bindings

C Binding

<PRE> #define INCL_DOSMISC

USHORT rc = DosError(Flag); USHORT Flags; /* Action flags */

USHORT rc; /* return code */ </PRE>

MASM Binding

<PRE> EXTRN DosError:FAR INCL_DOSMISC EQU 1

PUSH WORD Flags ;Action flags CALL DosError

Returns WORD </PRE>

Example Code

This example disables hard error popups and exception popups, then re-enables them. <PRE> #define INCL_DOSQUEUES

#define ENABLE_EXCEPTION 0 #define DISABLE_EXCEPTION 2 #define ENABLE_HARDERROR 1 #define DISABLE_HARDERROR 0 #define DISABLE_ERRORPOPUPS DISABLE_EXCEPTION | DISABLE_HARDERROR #define ENABLE_ERRORPOPUPS ENABLE_EXCEPTION | ENABLE_HARDERROR

USHORT rc;

rc = DosError(DISABLE_ERRORPOPUPS); /* Action flag */ rc = DosError(ENABLE_ERRORPOPUPS); /* Action flag */ </PRE>

Note

Text based on http://www.edm2.com/index.php/DosError_(FAPI)

Family API
DOS	Process Manager	DosBeep DosExit DosSleep DosExecPgm
File Manager	DosChDir DosChgFilePtr DosClose DosDelete DosDupHandle DosMkDir DosMove DosQCurDir DosQCurDisk DosSetFileMode DosOpen DosQFileInfo DosRead DosQFileMode DosQFSInfo DosQVerify DosRmDir DosSelectDisk DosFindClose DosFindFirst DosFindNext DosSetFileInfo DosSetVerify DosWrite DosFileLocks DosSetFHandState DosNewSize DosBufReset DosQFHandState DosSetFSinfo DosShutdown
Memory Manager	DosFreeSeg DosSubAlloc DosSubFree DosSubSet DosAllocHuge DosAllocSeg DosReallocHuge DosReallocSeg DosGetHugeShift DosCreateCSAlias
NLS	DosCaseMap DosGetCtryInfo DosGetDBCSEv DosSetCtryCode DosGetCollate DosGetMessage DosInsMessage DosPutMessage
Date and Time	DosSetDateTime DosGetDateTime
Devices	DosDevConfig DosDevIOCtl DosDevIOCtl2
Signals	DosHoldSignal DosSetSigHandler
Misc	BadDynLink DosGetEnv DosGetMachineMode DosGetVersion DosError DosErrClass DosSetVec
KBD	KbdCharIn KbdFlushBuffer KbdGetStatus KbdSetStatus KbdStringIn KbdPeek
VIO	VioGetBuf VioGetConfig VioGetCurPos VioGetCurType VioGetPhysBuf VioReadCellStr VioReadCharStr VioScrollUp VioScrollDn VioScrollLf VioScrollRt VioScrUnLock VioSetCurPos VioSetCurType VioSetMode VioGetMode VioShowBuf VioWrtCellStr VioWrtCharStr VioWrtCharStrAtt VioWrtNAttr VioWrtNCell VioWrtNChar VioWrtTTY VioScrLock VioPopUp
Tools	BIND
Modules	DOSCALLS.DLL VIOCALLS.DLL KBDCALLS.DLL MSG.DLL
Libraries	API.LIB OS2386.LIB FAPI.LIB DOSCALLS.LIB SUBCALLS.LIB