#pragma save
#pragma call (seg_name => GETFONTS)    //set code segment name to GETFONTS_TEXT
#pragma data (seg_name => GETFONTS)    //set data segments' names to GETFONTS_*

#define STRICT 1

  #pragma save
    #pragma warn ( wprg => off )       // prevent message about unknown pragmas
    #pragma warn ( wpin => off )       // allow old style function's headers

    #pragma call ( reg_param     => () )
    #pragma call ( standard_conv => on )
    #pragma call ( windows       => on )

    #define  _pascal    pascal
    #define  _near      near
    #define  _far       far
    #define  _huge      huge
    #define  _cdecl     cdecl

    #define BYTEALIGN    save
    #define DEFAULTALIGN restore

#include "windows.h"

int CALLBACK EnumProc (const ENUMLOGFONT   * _elf,
                       const NEWTEXTMETRIC * _ntm,
                             int             _fonttype,
                             LPARAM          _func);

  #pragma restore

/* ========================================================================= */

int CALLBACK EnumProc (const ENUMLOGFONT   * _elf,
                       const NEWTEXTMETRIC * _ntm,
                             int             _fonttype,
                             LPARAM          _func)
{
  typedef void AddFontProc (int, char *);

  char *        _face   = _elf-> elfLogFont.lfFaceName;
  AddFontProc * ClaProc = (AddFontProc *) _func;

  ClaProc (LF_FACESIZE, _face);
  return 1;
};

