Listing 4

/*****************************************************/
/* fpumsg.h                                          */
/* -- Interface to fpumsg module.                    */
/*****************************************************/

/*****************************************************/
/* Types.                                            */
/*****************************************************/
/* Callback. */
/* -- First word is 6 exception bits. */
/* -- Second word is CS of offending instruction. */
/* -- Third word is IP of offending instruction. */
typedef void (FAR * LPFN_NOTIFY)(WORD, WORD, WORD);


/*****************************************************/
/* Prototypes.                                       */
/*****************************************************/
/* The guy that does all the work. */
BOOL    FPeekMessageLpfn(LPMSG, HWND, WORD, WORD, WORD,
                         LPFN_NOTIFY);

/* Kludge since MSC 6.0 can't compile: */
/*     WORD rgw[7]; */
/*     _asm fstenv rgw; */
/* without generating an internal compiler error. */
VOID    Notify(WORD, LPFN_NOTIFY);


