#ifndef __RV_PRO_H_INCLUDED_
#define __RV_PRO_H_INCLUDED_

//目前许可文件仅支持多字节编码
//并且仅支持WIN32

#ifdef RVPRO_EXPORTS
#define RVPRO_API __declspec(dllexport)
#else
#define RVPRO_API __declspec(dllimport)
#endif
 

//
RVPRO_API BOOL  rvInitializeEnv (const char* strLicence = NULL, const char* strAppName = NULL , const char* strFilePath=NULL);
RVPRO_API void  rvFinalizeEnv();
// 
////使用模块自己licence
//#ifndef  _EEH_LICENCE_SUPPORT 
// 
//#define RV_LFT_TRIAL_USE        0  //全部权限
//#define RV_LFT_GENERIC_USE      1  //全部权限
//#define RV_LFT_TIMELIMITED_USE  2  //全部权限
//#define RV_LFT_INDUSTRY_USE     3  //全部权限
//#define RV_LFT_CUSTOM_USE       4
//#define RV_LFT_CRITICAL_USE     5 
//
///**
//* \brief A type definition for an application supplied error handling function.
//*
//*/
//typedef void (WINAPI *RV_ERROR_REPORTER_FUNC) (void);
//
//typedef void (WINAPI *RV_LICENCE_CHECK_FUNC) (void*);
//
///**
//*  Defines to specify error reporting behaviour.
//*  Used by rveSetReporter().
//*/
//#define RV_EPF_DEFAULT ((RV_ERROR_REPORTER_FUNC) 0) /* Set default error reporter*/
//#define RV_EPF_IGNORE  ((RV_ERROR_REPORTER_FUNC) 1) /* Ignore error reporting*/
//
//
////算子模块
//#define RV_BLOB_MODULE                 1      //物体提取
//#define RV_PATTMAT_MODULE             (1<<1)  //灰度模板识别, 模板定位, 
//#define RV_TEXTURE_DEFECT_MODULE      (1<<2)  //纹理缺陷识别
//#define RV_RESERVED_MODULE1           (1<<3)  //保留将来使用 
//#define RV_BARCODE_MODULE      (1<<4)         //条码，含二维码
//#define RV_OCR_MODULE          (1<<5)         //字符识别
//#define RV_GAUGE_MODULE        (1<<6)         //测量，直线，圆，角点，边缘距离等基础检测算子
//#define RV_COLOR_MODULE        (1<<7)         //颜色，颜色分辨等
//#define RV_EDGEMAT_MODULE      (1<<8)         //轮廓匹配，边缘匹配
//#define RV_SCANNER_MODULE      (1<<9)         //扫描器模块
//#define RV_SYMMETRY_CHECK_MODULE    (1<<10)   //长度距离识别  
//#define RV_OCV_MODULE            (1<<11)      //字符验证
//#define RV_RESERVED_MODULE2      (1<<12)      //RV_RESERVED_MODULE1
//#define RV_RESERVED_MODULE3      (1<<13)      //保留将来使用
//#define RV_RESERVED_MODULE       (1<<14)     //保留将来使用
//#define RV_PARTSPACE_MODULE      (1<<15)     //长度距离识别
//#define RV_CONTOUR_DEFECT_MODULE    (1<<16)  //轮廓缺陷
//#define RV_RESERVED_MODULE4         (1<<17)  //保留将来使用
//#define RV_RESERVED_MODULE5         (1<<18)  //保留将来使用
//#define RV_FEATURE_DETECT_MODULE    (1<<19)  //特征分类算子,双态识别, 多态识别
//#define RV_RESERVED_MODULE6         (1<<20)  //保留将来使用
//#define RV_RESERVED_MODULE7         (1<<21)  //保留将来使用
//#define RV_RESERVED_MODULE8         (1<<22)  //保留将来使用
//
////扩展
//#define RV_LIGHT_MODULE           (1<<23)    //轻型，未分类
//
//#define RV_EXTENDED_MODULE1       (1<<24)    //用户自定义
//#define RV_EXTENDED_MODULE2       (1<<25)    //用户自定义
//#define RV_EXTENDED_MODULE3       (1<<26)    //用户自定义
//#define RV_EXTENDED_MODULE4       (1<<27)    //用户自定义
//#define RV_EXTENDED_MODULE5       (1<<28)    //用户自定义
//#define RV_EXTENDED_MODULE6       (1<<29)    //用户自定义
//#define RV_EXTENDED_MODULE7       (1<<30)    //用户自定义
//
//
//
//RVPRO_API  BOOL  rvAuthorize(const char* strFilePath ,const char* strAppName, const char* strLicence );
//RVPRO_API  BOOL  rvIsAuthorized();
//
////参数strPin仅为引用，请保持strPin有效。
//RVPRO_API  void  rvSetLicenceCheckCallback(RV_LICENCE_CHECK_FUNC pLicenceCheckFunc, const char* strPin );
//
//
//
////以下函数不支持多线称
//RVPRO_API  BOOL  rvInitialize (const char* strLicence = NULL, const char* strAppName = NULL,BOOL bPromptWhenFailed =TRUE ,const char* strFilePath = NULL );
//RVPRO_API  void  rvFinalize ();
//
////该函数将会主动报错（有messagebox）。
// RVPRO_API BOOL  rvCheckModules(int moduleCode); 
//
////模块是否授权，无messagebox
// RVPRO_API BOOL  rvIsModuleAuthorized(int moduleCode); 
//
//
// RVPRO_API int  rvGetLicenceType(); 
//
////////////////////////////////////////////////////////////////
// 
//
//#endif
//
//



#endif