home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 7 / 07.iso / c / c016 / 3.ddi / MEDIAINC.PAK / KNIFEVBX.H < prev   
Encoding:
C/C++ Source or Header  |  1993-11-03  |  10.9 KB  |  255 lines

  1. /*
  2. **    Constants and Declarations for ImageKnife/VBX library
  3. **
  4. **    Copyright (c) 1993 by Media Architects, Inc.  ALL RIGHTS RESERVED
  5. */
  6.  
  7.  
  8. #ifdef __cplusplus
  9. extern "C" {            /* Assume C declarations for C++ */
  10. #endif    /* __cplusplus */
  11.  
  12.  
  13. /* ######  Typedefs  ###### */
  14.  
  15. typedef    PALETTEENTRY FAR *    LPPE;
  16. typedef RGBQUAD      FAR *    LPQUAD;
  17. typedef    HANDLE                    HDIB;
  18. typedef    HDIB         FAR *    LPHDIB;
  19.  
  20. /* ######  Constants  ###### */
  21.  
  22. #define    VBCOLOR    PALETTEENTRY
  23.  
  24. /* Image file formats */
  25. enum  IMAGETYPE {
  26.     IMK_EXTENSION,
  27.     IMK_TIFF,
  28.     IMK_TARGA,
  29.     IMK_BITMAP,
  30.     IMK_GIF,
  31.     IMK_DIB,
  32.     IMK_PCX,
  33.     IMK_JPEG,
  34.     IMK_OLEPBRUSH
  35. };
  36.  
  37. /* Compression schemes */
  38. enum  COMPRESS {
  39.     IMK_UNCOMP,
  40.     IMK_LZW,
  41.     IMK_RLE,
  42.     IMK_PACKBITS,
  43.     IMK_OS2,
  44.     IMK_PCXCOMP,
  45.     IMK_CCIT3,
  46.     IMK_CCIT4
  47. };
  48.  
  49.  
  50. /* ######  Function Pointer Declarations  ###### */
  51. typedef void  (FAR PASCAL * IMKAPPENDTIFF)     (LPSTR filename, short hdib, int compression);
  52. typedef short (FAR PASCAL * IMKBLUR)           (short hdib);
  53. typedef short (FAR PASCAL * IMKBRIGHTCONT)     (short hdib, double bright_pct, double contrast_pct);
  54. typedef short (FAR PASCAL * IMKCOLORREPLACE)   (short hdib, VBCOLOR rgb1, VBCOLOR rgb2, int flag, VBCOLOR newColor);
  55. typedef int   (FAR PASCAL * IMKCOUNTIMAGES)    (LPSTR string, int format);
  56. typedef short (FAR PASCAL * IMKDEREFPOINTER)   (LPHDIB pointer);
  57. typedef short (FAR PASCAL * IMKDUPLICATE)      (short hdib);
  58. typedef short (FAR PASCAL * IMKEXTRACTEDGES)   (short hdib, int magintude);
  59. typedef short (FAR PASCAL * IMKFORCEPAL)       (short hdib, short hpal);
  60. typedef short (FAR PASCAL * IMKGAMMA)          (short hdib, double magintude);
  61. typedef long  (FAR PASCAL * IMKGETCOLOR)       (short hdib, int x, int y);
  62. typedef long  (FAR PASCAL * IMKGETCOLORCOUNT)  (short hdib);
  63. typedef long  (FAR PASCAL * IMKGETPALCOLOR)    (short hpal, int position);
  64. typedef void  (FAR PASCAL * IMKGETPALETTE)     (short hdib, LPPE pal);
  65. typedef void  (FAR PASCAL * IMKGETSCANLINE)    (short hdib, int lineNum, LPPE scanLine);
  66. typedef short (FAR PASCAL * IMKGRAYSCALE)      (short hdib);
  67. typedef short (FAR PASCAL * IMKINCREASECOLORS) (short hdib, int depth);
  68. typedef short (FAR PASCAL * IMKINIT)           (int depth, int width, int height, VBCOLOR colorVal);
  69. typedef short (FAR PASCAL * IMKLOAD)           (LPSTR string, int imageNo, int format);
  70. typedef short (FAR PASCAL * IMKLOADPAL)        (LPSTR string, int imageNo, int format);
  71. typedef short (FAR PASCAL * IMKMASKCOPY)       (HCTL hFrom, HCTL hTo, HCTL hMask);
  72. typedef short (FAR PASCAL * IMKMATRIXFILTER)   (short hdib, int matrixSize, int FAR *matrix, int scale, int norm, int offset);
  73. typedef short (FAR PASCAL * IMKMIRROR)         (short hdib, BOOL horiz, BOOL vert);
  74. typedef short (FAR PASCAL * IMKNEGATE)         (short hdib);
  75. typedef short (FAR PASCAL * IMKOPTIMIZEPAL)    (LPHDIB lphdib, int noImages, int colors);
  76. typedef void  (FAR PASCAL * IMKPUTSCANLINE)    (short hdib, int lineNum, LPPE scanLine);
  77. typedef short (FAR PASCAL * IMKREDUCECOLORS)   (short hdib, long colors, BOOL optimize, BOOL dither, BOOL noBleed);
  78. typedef short (FAR PASCAL * IMKREMAPPAL)       (short hdib, short hpal);
  79. typedef short (FAR PASCAL * IMKROTATE)         (short hdib, int radians, VBCOLOR backColor);
  80. typedef short (FAR PASCAL * IMKSETPALCOLOR)    (short hpal, int position, long colorVal);
  81. typedef short (FAR PASCAL * IMKSETPALETTE)     (int numColors, LPDWORD pal);
  82. typedef void  (FAR PASCAL * IMKSETSCREENPAL)   (short hpal);
  83. typedef short (FAR PASCAL * IMKSHARPEN)        (short hdib, int sharpness);
  84. typedef short (FAR PASCAL * IMKSOFTEN)         (short hdib, int softness);
  85. typedef void  (FAR PASCAL * IMKSTORE)          (LPSTR string, short hdib, int format, int compression);
  86. typedef void  (FAR PASCAL * IMKSTOREPAL)       (LPSTR string, short hpal, int format);
  87. typedef int   (FAR PASCAL * IMKTWIPSTOXCOORD)  (HCTL hctl, long twips);
  88. typedef int   (FAR PASCAL * IMKTWIPSTOYCOORD)  (HCTL hctl, long twips);
  89. typedef int   (FAR PASCAL * IMKVERIFY)         (short hdib);
  90. typedef long  (FAR PASCAL * IMKXCOORDTOTWIPS)  (HCTL hctl, int XCoord);
  91. typedef long  (FAR PASCAL * IMKYCOORDTOTWIPS)  (HCTL hctl, int YCoord);
  92.  
  93. #ifdef KNIFE_DATA    /* Only add globals when KNIFE_DATA is defined */
  94.  
  95. IMKAPPENDTIFF         imkAppendTIFF;
  96. IMKBLUR             imkBlur;
  97. IMKBRIGHTCONT        imkBrightCont;
  98. IMKCOLORREPLACE     imkColorReplace;
  99. IMKCOUNTIMAGES        imkCountImages;
  100. IMKDEREFPOINTER        imkDerefPointer;
  101. IMKDUPLICATE        imkDuplicate;
  102. IMKEXTRACTEDGES     imkExtractEdges;
  103. IMKFORCEPAL            imkForcePal;
  104. IMKGAMMA            imkGamma;
  105. IMKGETCOLOR            imkGetColor;
  106. IMKGETCOLORCOUNT    imkGetColorCount;
  107. IMKGETPALCOLOR        imkGetPalColor;
  108. IMKGETPALETTE        imkGetPalette;
  109. IMKGETSCANLINE        imkGetScanLine;
  110. IMKGRAYSCALE        imkGrayScale;
  111. IMKINCREASECOLORS    imkIncreaseColors;
  112. IMKINIT                imkInit;
  113. IMKLOAD                imkLoad;
  114. IMKLOADPAL            imkLoadPal;
  115. IMKMASKCOPY            imkMaskCopy;
  116. IMKMATRIXFILTER        imkMatrixFilter;
  117. IMKMIRROR            imkMirror;
  118. IMKNEGATE            imkNegate;
  119. IMKOPTIMIZEPAL        imkOptimizePal;
  120. IMKPUTSCANLINE        imkPutScanLine;
  121. IMKREDUCECOLORS        imkReduceColors;
  122. IMKREMAPPAL            imkRemapPal;
  123. IMKROTATE            imkRotate;
  124. IMKSETPALCOLOR        imkSetPalColor;
  125. IMKSETPALETTE        imkSetPalette;
  126. IMKSETSCREENPAL        imkSetScreenPal;
  127. IMKSHARPEN            imkSharpen;
  128. IMKSOFTEN            imkSoften;
  129. IMKSTORE            imkStore;
  130. IMKSTOREPAL            imkStorePal;
  131. IMKTWIPSTOXCOORD    imkTwipsToXCoord;
  132. IMKTWIPSTOYCOORD    imkTwipsToYCoord;
  133. IMKVERIFY            imkVerify;
  134. IMKXCOORDTOTWIPS    imkXCoordToTwips;
  135. IMKYCOORDTOTWIPS    imkYCoordToTwips;
  136.  
  137. HINSTANCE hKnifeLib;
  138.  
  139. BOOL imkBegin(void)
  140. /*
  141. **    Create references to KNIFE.VBX functions.
  142. */
  143. {   
  144.     
  145.     if ((hKnifeLib = LoadLibrary("KNIFE.VBX")) < HINSTANCE_ERROR)
  146.         return(FALSE);
  147.         
  148.     imkAppendTIFF     = (IMKAPPENDTIFF)            GetProcAddress(hKnifeLib, "imkAppendTIFF");
  149.     imkBlur           = (IMKBLUR)                GetProcAddress(hKnifeLib, "imkBlur");
  150.     imkBrightCont     = (IMKBRIGHTCONT)            GetProcAddress(hKnifeLib, "imkBrightCont");
  151.     imkColorReplace   = (IMKCOLORREPLACE)         GetProcAddress(hKnifeLib, "imkColorReplace");
  152.     imkCountImages    = (IMKCOUNTIMAGES)        GetProcAddress(hKnifeLib, "imkCountImages");
  153.     imkDerefPointer   = (IMKDEREFPOINTER)        GetProcAddress(hKnifeLib, "imkDerefPointer");
  154.     imkDuplicate      = (IMKDUPLICATE)            GetProcAddress(hKnifeLib, "imkDuplicate");
  155.     imkExtractEdges   = (IMKEXTRACTEDGES)        GetProcAddress(hKnifeLib, "imkExtractEdges");
  156.     imkForcePal       = (IMKFORCEPAL)            GetProcAddress(hKnifeLib, "imkForcePal");                        
  157.     imkGamma          = (IMKGAMMA)                GetProcAddress(hKnifeLib, "imkGamma");                    
  158.     imkGetColor       = (IMKGETCOLOR)            GetProcAddress(hKnifeLib, "imkGetColor");                        
  159.     imkGetColorCount  = (IMKGETCOLORCOUNT)        GetProcAddress(hKnifeLib, "imkGetColorCount");                    
  160.     imkGetPalColor    = (IMKGETPALCOLOR)        GetProcAddress(hKnifeLib, "imkGetPalColor");                        
  161.     imkGetPalette     = (IMKGETPALETTE)            GetProcAddress(hKnifeLib, "imkGetPalette");                        
  162.     imkGetScanLine    = (IMKGETSCANLINE)        GetProcAddress(hKnifeLib, "imkGetScanLine");                        
  163.     imkGrayScale      = (IMKGRAYSCALE)            GetProcAddress(hKnifeLib, "imkGrayScale");                        
  164.     imkIncreaseColors = (IMKINCREASECOLORS)        GetProcAddress(hKnifeLib, "imkIncreaseColor");                
  165.     imkInit           = (IMKINIT)                GetProcAddress(hKnifeLib, "imkInit");                        
  166.     imkLoad           = (IMKLOAD)                GetProcAddress(hKnifeLib, "imkLoad");                        
  167.     imkLoadPal        = (IMKLOADPAL)            GetProcAddress(hKnifeLib, "imkLoadPal");                        
  168.     imkMaskCopy       = (IMKMASKCOPY)            GetProcAddress(hKnifeLib, "imkMaskCopy");                        
  169.     imkMatrixFilter   = (IMKMATRIXFILTER)        GetProcAddress(hKnifeLib, "imkMatrixFilter");                    
  170.     imkMirror         = (IMKMIRROR)                GetProcAddress(hKnifeLib, "imkMirror");                    
  171.     imkNegate         = (IMKNEGATE)                GetProcAddress(hKnifeLib, "imkNegate");                    
  172.     imkOptimizePal    = (IMKOPTIMIZEPAL)        GetProcAddress(hKnifeLib, "imkOptimizePal");                        
  173.     imkPutScanLine    = (IMKPUTSCANLINE)        GetProcAddress(hKnifeLib, "imkPutScanLine");                        
  174.     imkReduceColors   = (IMKREDUCECOLORS)        GetProcAddress(hKnifeLib, "imkReduceColors");                    
  175.     imkRemapPal       = (IMKREMAPPAL)            GetProcAddress(hKnifeLib, "imkRemapPal");                        
  176.     imkRotate         = (IMKROTATE)                GetProcAddress(hKnifeLib, "imkRotate");                    
  177.     imkSetPalColor    = (IMKSETPALCOLOR)        GetProcAddress(hKnifeLib, "imkSetPalColor");                        
  178.     imkSetPalette     = (IMKSETPALETTE)            GetProcAddress(hKnifeLib, "imkSetPalette");                        
  179.     imkSetScreenPal   = (IMKSETSCREENPAL)        GetProcAddress(hKnifeLib, "imkSetScreenPal");                    
  180.     imkSharpen        = (IMKSHARPEN)            GetProcAddress(hKnifeLib, "imkSharpen");                        
  181.     imkSoften         = (IMKSOFTEN)                GetProcAddress(hKnifeLib, "imkSoften");                    
  182.     imkStore          = (IMKSTORE)                GetProcAddress(hKnifeLib, "imkStore");                    
  183.     imkStorePal       = (IMKSTOREPAL)            GetProcAddress(hKnifeLib, "imkStorePal");                        
  184.     imkTwipsToXCoord  = (IMKTWIPSTOXCOORD)        GetProcAddress(hKnifeLib, "imkTwipsToXCoord");                    
  185.     imkTwipsToYCoord  = (IMKTWIPSTOYCOORD)        GetProcAddress(hKnifeLib, "imkTwipsToYCoord");                    
  186.     imkVerify         = (IMKVERIFY)                GetProcAddress(hKnifeLib, "imkVerify");                    
  187.     imkXCoordToTwips  = (IMKXCOORDTOTWIPS)        GetProcAddress(hKnifeLib, "imkXCoordToTwips");                    
  188.     imkYCoordToTwips  = (IMKYCOORDTOTWIPS)        GetProcAddress(hKnifeLib, "imkYCoordToTwips");                    
  189.         
  190.     return(TRUE);
  191.  
  192. }
  193.     
  194. void imkEnd(void)
  195. /*
  196. **    Remove references to KNIFE.VBX functions.
  197. */
  198. {
  199.     FreeLibrary(hKnifeLib);
  200. }
  201.  
  202. #endif  /* KNIFE_DATA */
  203.  
  204.  
  205. /* ######  Function Prototypes  ###### */
  206. extern    IMKAPPENDTIFF         imkAppendTIFF;
  207. extern    IMKBLUR             imkBlur;
  208. extern    IMKBRIGHTCONT        imkBrightCont;
  209. extern    IMKCOLORREPLACE     imkColorReplace;
  210. extern    IMKCOUNTIMAGES        imkCountImages;
  211. extern    IMKDEREFPOINTER        imkDerefPointer;
  212. extern    IMKDUPLICATE        imkDuplicate;
  213. extern    IMKEXTRACTEDGES     imkExtractEdges;
  214. extern    IMKFORCEPAL            imkForcePal;
  215. extern    IMKGAMMA            imkGamma;
  216. extern    IMKGETCOLOR            imkGetColor;
  217. extern    IMKGETCOLORCOUNT    imkGetColorCount;
  218. extern    IMKGETPALCOLOR        imkGetPalColor;
  219. extern    IMKGETPALETTE        imkGetPalette;
  220. extern    IMKGETSCANLINE        imkGetScanLine;
  221. extern    IMKGRAYSCALE        imkGrayScale;
  222. extern    IMKINCREASECOLORS    imkIncreaseColors;
  223. extern    IMKINIT                imkInit;
  224. extern    IMKLOAD                imkLoad;
  225. extern    IMKLOADPAL            imkLoadPal;
  226. extern    IMKMASKCOPY            imkMaskCopy;
  227. extern    IMKMATRIXFILTER        imkMatrixFilter;
  228. extern    IMKMIRROR            imkMirror;
  229. extern    IMKNEGATE            imkNegate;
  230. extern    IMKOPTIMIZEPAL        imkOptimizePal;
  231. extern    IMKPUTSCANLINE        imkPutScanLine;
  232. extern    IMKREDUCECOLORS        imkReduceColors;
  233. extern    IMKREMAPPAL            imkRemapPal;
  234. extern    IMKROTATE            imkRotate;
  235. extern    IMKSETPALCOLOR        imkSetPalColor;
  236. extern    IMKSETPALETTE        imkSetPalette;
  237. extern    IMKSETSCREENPAL        imkSetScreenPal;
  238. extern    IMKSHARPEN            imkSharpen;
  239. extern    IMKSOFTEN            imkSoften;
  240. extern    IMKSTORE            imkStore;
  241. extern    IMKSTOREPAL            imkStorePal;
  242. extern    IMKTWIPSTOXCOORD    imkTwipsToXCoord;
  243. extern    IMKTWIPSTOYCOORD    imkTwipsToYCoord;
  244. extern    IMKVERIFY            imkVerify;
  245. extern    IMKXCOORDTOTWIPS    imkXCoordToTwips;
  246. extern    IMKYCOORDTOTWIPS    imkYCoordToTwips;
  247.  
  248. BOOL imkBegin(void);
  249. void imkEnd(void);
  250.  
  251. #ifdef __cplusplus
  252. }                       /* End of extern "C" { */
  253. #endif    /* __cplusplus */
  254.  
  255.