home *** CD-ROM | disk | FTP | other *** search
- /*
- * FAULT.H
- *
- * Definitions and function prototypes for Fault.
- *
- * Copyright(c) Microsoft Corp. 1992 All Rights Reserved
- */
-
-
- /*
- * Resource idetifiers and menu ID values.
- */
-
- #define IDR_ICON 1
- #define IDR_MENU 1
-
- #define IDM_EXDIVIDEBYZERO 100
- #define IDM_EXGPFAULT 101
-
-
-
-
- /*
- * Structure holding the "global" variables. Creating a structure with
- * has several advantages over separately declaring each field as a
- * global:
- * 1. Keep source files clean.
- * 2. Eliminates need for many "extern" declarations.
- * 3. A single pointer to this structure can be passed throughout
- * the application, hiding the fact that it's global.
- * 4. Allows the variables to be allocated dynamically or from
- * different memory than the application's stack.
- * 5. Any reference to these variables will have a pointer or
- * structure dereference, which points to where the variable
- * actually is defined. Separate globals are not distinguishable
- * from locals, making code harder to read.
- */
-
- typedef struct
- {
- HWND hWnd; //Top-level application window.
- HANDLE hInst; //Application instance handle.
- FARPROC pfnInt; //GP Fault Handler
- } GLOBALS;
-
- typedef GLOBALS FAR * LPGLOBALS;
-
-
- //External:
- extern LPGLOBALS pGlob;
- extern CATCHBUF cbEx;
- extern LPCATCHBUF pcbEx;
- extern WORD wException;
-
-
- /*
- * Flag values to store in the wException global variable that tells
- * the handler what type of exceptions we specifically want.
- */
-
- #define EXCEPTION_NONE 0x0000 //Turns handling off.
- #define EXCEPTION_DIVIDEBYZERO 0x0001
- #define EXCEPTION_GPFAULT 0x0002
- #define EXCEPTION_ALL 0x0003 //Looks for all exceptions above.
-
-
- /*
- * Function prototypes.
- */
-
- //FAULT.C
- LONG FAR PASCAL FaultWndProc(HWND, UINT, UINT, LONG);
- BOOL FAR PASCAL FPerformCalculation(void);
- HANDLE FAR PASCAL HAllocateNumbers(void);
-
- //HANDLER.ASM
- void FAR PASCAL ExceptionHandler(void);
-