home *** CD-ROM | disk | FTP | other *** search
/ Chip 2004 October / CMCD1004.ISO / Software / Shareware / Utilitare / pec / pec2setup.exe / sdk / codec / PEC2CodecSDK.h
Encoding:
C/C++ Source or Header  |  2004-05-17  |  2.2 KB  |  76 lines

  1. /*
  2.  * PECompact v2 CODEC SDK
  3.  *
  4.  * C/C++ include file
  5.  *
  6.  * Copyright (c) 2004 by Jeremy Collake and Bitsum Technologies
  7.  * All Rights Reserved
  8.  *
  9.  * http://www.bitsum.com/
  10.  */
  11.  
  12. #ifndef PEC2CODECSDK_H_INCLUDED
  13. #define PEC2CODECSDK_H_INCLUDED
  14.  
  15. #include <windows.h>
  16.  
  17. #ifdef __cplusplus
  18. extern "C" {
  19. #endif
  20.  
  21. /*
  22.  * define flags and codes
  23.  */ 
  24. #define PEC2_CODEC_ACTION_DONE 0
  25. #define PEC2_CODEC_ACTION_ENCODE 1
  26. #define PEC2_CODEC_ACTION_ERROR (-1)
  27. #define PEC2_CODEC_ACTION_USER_DEFINED 10
  28.  
  29. #define PEC2_CODEC_ERROR_UNSPECIFIED (-1)
  30. #define PEC2_CODEC_ERROR_INSUFFICIENT_BUFFER (-2)
  31. #define PEC2_CODEC_ERROR_ABORTED (-3)
  32.  
  33. /*
  34.  * define this SDK version
  35.  */
  36. #define PEC2_CODEC_SDK_VERSION_MAJOR 1
  37. #define PEC2_CODEC_SDK_VERSION_MINOR 00
  38. #define PEC2_CODEC_SDK_VERSION ((PEC2_CODEC_SDK_VERSION_MAJOR*100)+PEC2_CODEC_SDK_VERSION_MINOR)
  39.  
  40. /*
  41.  * codec host module pointer types
  42.  */
  43. typedef FARPROC (WINAPI *PFNCodecGetProcAddress)(DWORD dwCodecIndex, LPCSTR pszApi);
  44. typedef DWORD (WINAPI *PFNGetNumberOfCodecs)();
  45.  
  46. typedef struct _PEC2_DECODE_EXTRA
  47. {
  48.    FARPROC pLoadLibraryA;      /* pointer to LoadLibraryA */
  49.    FARPROC pGetProcAddress;    /* pointer to GetProcAddress */
  50. } PEC2_DECODE_EXTRA, *PPEC2_DECODE_EXTRA;
  51.  
  52. /*
  53.  * codec callback function pointer type(s)
  54.  */
  55. typedef BOOL (WINAPI *PFNCodecCallback)(DWORD dwAction, DWORD dwParam1, DWORD dwParam2, DWORD dwParam3);
  56.  
  57. /*
  58.  * codec function pointer types
  59.  */
  60. typedef DWORD (WINAPI *PFNDecodeSmall)(LPVOID lpvSource, LPVOID lpvDest, LPVOID lpExtraData);
  61. typedef DWORD (WINAPI *PFNDecodeFast)(LPVOID lpvSource, LPVOID lpvDest, LPVOID lpExtraData);
  62. typedef DWORD (WINAPI *PFNGetDecodeSmallFuncSize)();
  63. typedef DWORD (WINAPI *PFNGetDecodeFastFuncSize)();
  64. typedef DWORD (WINAPI *PFNEncode)(LPVOID lpvSource, DWORD dwSourceSize, LPVOID lpvDest,
  65.                                     DWORD *pdwDestSize, DWORD dwLevel, PFNCodecCallback pCallback);
  66. typedef DWORD (WINAPI *PFNGetCodecVersion)(DWORD *pdwSDKVersion);
  67. typedef DWORD (WINAPI *PFNGetCodecName)(WCHAR *pwszBuffer, DWORD dwBufSize);
  68. typedef DWORD (WINAPI *PFNGetCodecAuthor)(WCHAR *pwszBuffer, DWORD dwBufSize);
  69. typedef DWORD (WINAPI *PFNGetMaximumEncodingLevel)();
  70.  
  71. #ifdef __cplusplus
  72. } /* extern "C" */
  73. #endif
  74.  
  75. #endif /* PEC2CODECSDK_H_INCLUDED */
  76.