home *** CD-ROM | disk | FTP | other *** search
/ Boston 2 / boston-2.iso / DOS / PROGRAM / C / TEMPLATE / WMF.H < prev    next >
Text File  |  1993-12-01  |  5KB  |  130 lines

  1. /*
  2.  * WMF Import Filter - MAIN HEADER FILE
  3.  *
  4.  * LANGUAGE      : Microsoft C 6.0
  5.  * MODEL         : medium
  6.  * ENVIRONMENT   : Microsoft Windows 3.0 SDK
  7.  * STATUS        : operational
  8.  *
  9.  * This header contains all the definitions used by the Aldus WMF import
  10.  * filter.  The Aldus filter definitions are extracted from the Aldus header
  11.  * files and included in a section in this header file.
  12.  *
  13.  *    Eikon Systems, Inc.
  14.  *    989 East Hillsdale Blvd, Suite 260
  15.  *    Foster City, California 94404
  16.  *    415-349-4664
  17.  *
  18.  * 08/01/91 1.00 - David E. West - initial creation.
  19.  * 09/01/91 1.01 - Kevin P. Welch - minor revisions.
  20.  *
  21.  */
  22.  
  23. /* ALDUS IMPORT FILTER DEFINITIONS */
  24.  
  25. #define     SUCCESS             0
  26. #define    FAILURE             -1
  27.  
  28. #define    PMMETAFILEKEY    0x9AC6CDD7L        /* Windows metafile keyword */
  29.  
  30. #define    DC                 short                /* screen device coordinates */
  31. typedef    DWORD                FILETYPE;        /* file type flags */
  32.  
  33. typedef struct _PICTINFO { 
  34.     HANDLE    hmf;                                /* Global memory handle to metafile */
  35.     RECT        bbox;                                /* bounding rect in metafile units */
  36.     DC            inch;                                /* metafile units per inch */
  37. } PICTINFO;
  38.  
  39. typedef struct _PMMETAFILEHEADER {     
  40.     DWORD        key;                                /* Windows metafile keyword */
  41.     PICTINFO    mfPict;                            /* PM Metafile structure */
  42.     DWORD        reserved;                        /* Reserved words */
  43.     WORD        checksum;                        /* Check sum of previous entries */
  44. } PMMETAFILEHEADER;
  45.  
  46. #define    IBMFNSIZE         124
  47.  
  48. typedef struct _FILESPEC {                 
  49.     unsigned        slippery : 1;                /* TRUE if file may disappear. */
  50.     unsigned        write : 1;                    /* TRUE if open for write. */
  51.     unsigned        unnamed : 1;                /* TRUE if unnamed. */
  52.     unsigned        linked : 1;                    /* Linked to an FS FCB. */
  53.     unsigned        mark : 1;                    /* Generic mark bit. */
  54.     FILETYPE        fType;                        /* The file type. */
  55.     short            handle;                        /* MS-DOS open file handle. */
  56.     char            fullName[IBMFNSIZE];        /* Device, path, file names. */
  57.     DWORD            filePos;                        /* Our current file posn. */
  58. } FILESPEC;
  59.  
  60. typedef PICTINFO FAR *                LPPICTINFO;
  61. typedef PMMETAFILEHEADER FAR *    LPPMMETAFILEHEADER;
  62. typedef FILESPEC FAR *                LPFILESPEC;
  63.  
  64. /* Import Error Codes */
  65.  
  66. #define IE_BASE                    5300                /* base value for IE_ error codes */
  67. #define IE_NOT_MY_FILE            (IE_BASE+1)        /* generic "not my file" error */
  68. #define IE_TOO_BIG                (IE_BASE+2)        /* bitmap or pict too big error */
  69. #define IE_DUMB_BITMAP            (IE_BASE+3)        /* bitmap all white */
  70. #define IE_BAD_VCHAR                (IE_BASE+4)        /* bad vchar in ImportString */
  71. #define IE_BAD_TOKEN                (IE_BASE+5)        /* illegal wp token */
  72. #define IE_NO_VERIFY                (IE_BASE+6)        /* failed to verify imported story */
  73. #define IE_UNKNOWN_TYPE            (IE_BASE+7)        /* unknown file type */
  74. #define IE_NOT_WP_FILE            (IE_BASE+8)        /* Not a %s file */
  75. #define IE_BAD_FILE_DATA         (IE_BASE+9)      /* current file data is bad */
  76. #define IE_IMPORT_ABORT         (IE_BASE+10)    /* import abort alert */
  77. #define IE_MEM_FULL                (IE_BASE+11)    /* ran out of memory during import */
  78. #define IE_MSNG_FONTS            (IE_BASE+12)    /* missing system fonts */
  79. #define IE_METAFILE_TOO_BIG    (IE_BASE+13)    /* metafile too big */
  80. #define IE_INVALID_LOTUS_PIC    (IE_BASE+14)    /* bad lotus .pic */
  81. #define IE_MEM_FAIL                (IE_BASE+15)    /* couldn't lock memory during import */
  82.  
  83. #define IE_PAINT_BASE            (IE_BASE+40)
  84. #define IE_UNSUPP_COMPR            (IE_PAINT_BASE+1)    /* unsupp'd compress. style */
  85. #define IE_UNSUPP_VERSION        (IE_PAINT_BASE+2)    /* unsupp'd file version */
  86. #define IE_UNSUPP_COLOR            (IE_PAINT_BASE+3)    /* can't handle this color style */
  87.  
  88. /* Windows metafile header pointers */
  89. typedef METAHEADER *            PMETAHEADER;
  90. typedef METAHEADER FAR *    LPMETAHEADER;
  91.  
  92. /* Aldus placeable metafile header key value */
  93. #define WMFKEY        0x9AC6CDD7
  94.  
  95. /* Aldus placeable metafile format header */
  96. typedef struct {
  97.     DWORD            idKey;                        /* binary key--0x9AC6CDD7 */
  98.     HANDLE        hMF;                            /* handle to metafile--zero */
  99.     RECT            bbox;                            /* tight bounding box */
  100.     WORD            cInch;                        /* metafile units per inch */
  101.     DWORD            dwReserved;                    /* reserved--must be zero */
  102.     WORD            idChecksum;                    /* checksum of first 10 words */
  103. } WMFHEADER;
  104.  
  105. typedef WMFHEADER FAR *        LPWMFHEADER;
  106.  
  107. /* LOCAL DEFINITIONS */
  108. typedef char huge *    HPSTR;
  109. typedef BYTE huge *    HPBYTE;
  110. #define INT                int
  111. #define SHORT            short
  112.  
  113. /* other defines */
  114. #define ABS(x)            ((x) < 0 ? (-(x)) : (x))
  115.  
  116. /* WMF Filter Functions - wmf1.c */
  117. WORD FAR PASCAL        WEP( WORD );
  118. BOOL FAR PASCAL        LibMain( HANDLE, WORD, WORD, LPSTR );
  119. VOID FAR PASCAL        GetFilterPref( HANDLE, HWND, HANDLE, WORD );
  120. WORD FAR PASCAL        ImportGr( HDC, LPFILESPEC, LPPICTINFO, HANDLE );
  121. WORD FAR PASCAL        GetFilterInfo( WORD, LPSTR, HANDLE FAR *, HANDLE FAR * );
  122.  
  123. /* WMF Filter Functions - wmf2.c */
  124. BOOL FAR PASCAL        ValidateWMF( LPWMFHEADER );
  125. WORD FAR PASCAL        ComputeWMFChecksum( LPWMFHEADER );
  126. WORD FAR PASCAL        GetWMFBits( LPHANDLE, LONG, INT );
  127.  
  128. /* WMF Filter Functions - wmf3.c */
  129. DWORD FAR PASCAL        hread( INT, HPSTR, DWORD );
  130.