📄 xkeyapi.h
字号:
/*
* Copyright (c) 林威汉, 2003
* All rights reserved.
*
* 文件名称:XKeyAPI.h
* 文件标识:N/A
* 摘 要:通用加密锁模块XKey接口头文件
*
* 当前版本:1.0
* 作 者:林威汉
* 完成日期:2003年7月10日
*
* 取代版本:N/A
* 原作者 :N/A
* 完成日期:N/A
*/
#ifndef __XKEYAPI_H__
#define __XKEYAPI_H__
#ifdef XKEY_EXPORTS
#define XKEY_API extern "C" AFX_EXT_API long WINAPI
#else
#define XKEY_API extern "C" AFX_EXT_API long WINAPI
#endif
const int _KEYMAXMEMORYSIZE = 1024;
//Key type
const int _KEY_SOFTKEY2 = 0;
const int _KEY_SENSE_KEYPRO = 1;
const int _KEY_TOTAL_AMOUNT = 2;
//Product type
const int _PRODUCT_PLERINE2_61 = 0;
const int _PRODUCT_PSPACE3_0 = 1;
//License infomation type for pLerien2.61
const int _CT_PLERINE2_61_GENERAL = 0;//"Product Key Code","Product Release Date"
const int _CT_PLERINE2_61_MAIN = 1;//"Product ID","Version Type",
//"Draw Tag Count","I/O Tag Count","History Tag Count",
//"Db Clients Count","Web Clients Count","OEMSpecial"
const int _CT_PLERINE2_61_EX = 2;//"ODBCGate License","ODBCGate Real Data Count","ODBCGate History Data Count"
//"DbCOM License","DbCOM Accessed Tag Count"
const int _CT_PLERINE2_61_IO = 3;//"..."
const int _CT_PLERINE2_61_DATASERVER = 4;//"..."
const int _CT_PLERINE2_61_WIZARD = 5;//"..."
const int _CT_PLERINE2_61_LANGUAGE = 6;//"Languages GB License","Languages TW License","Languages Eng License"
/* XKey License */
XKEY_API _XKey_SetKeyType(int nKeyType);
XKEY_API _XKey_CancelKeyTypeSetting();
XKEY_API _XKey_OffSoftKeyPassCheck();
XKEY_API _XKey_OnSoftKeyPassCheck();
XKEY_API _XKey_GetLicenseData(int nProduct, int nComponentType, CString csComponentName, char* pLicenseData);
XKEY_API _XKey_GetUserData(int nProduct, int nComponentType, CString csComponentName, char* pUserData);
XKEY_API _XKey_SetUserData(int nProduct, int nComponentType, CString csComponentName, char* pUserData);
XKEY_API _XKey_GetLicenseComponetList(int nProduct, int nComponentType, CStringList& csComponentList);
/* XKey Memory */
XKEY_API _XKey_GetKeyMemorySize(int nKeyType);
XKEY_API _XKey_GetKeyMemoryData(int nKeyType, char* pUserData, int nAddr, int nLength);
XKEY_API _XKey_SetKeyMemoryData(int nKeyType, int nAddr, char* pUserData, int nLength);
/* XKey Operation */
const int _KEYSTATUS_NONE = -1;
const int _KEYSTATUS_BLANK = 0;
const int _KEYSTATUS_PRODUCT = 1;
XKEY_API _XKey_GetKeyStatus(int nKeyType, int& nXKeyVersion, int& nProductType, BOOL& bVIP,
long& nVIPCode, CString csVIPReleaseDate);
XKEY_API _XKey_SetKeyPassword(int nKeyType);
XKEY_API _XKey_ResetKey(int nKeyType);
/* System */
XKEY_API _XKey_Initialize(CString& csPath);
XKEY_API _XKey_GetSetupPath(int nProduct, CString& pathString);
//+++++++++++加密所用函数和变量 谷永国++++++++++++++++++//
#define VERSION_OLD
// 宏 VERSION_OLD 说明:是否是老版本标志,如果该驱动在低于力控3.6版本使用,则定义该宏.
// 如果该驱动在力控3.6或更高版本使用,这不要定义这个宏,此时把
// #define VERSION_OLD 注释即可,即取消宏定义
BOOL gbLicensed = FALSE;
DWORD gdwTickCount = GetTickCount();
/* if (!Licensed())
{
return SKIP;
}*/
BOOL Licensed()
{
#ifdef VERSION_OLD
return TRUE;
#endif
DWORD dwTemp = GetTickCount();
//如果没有授权,则限制有效工作时间,1小时
if (!gbLicensed)
{
if (dwTemp - gdwTickCount >= 3600000)
{
return FALSE;
}
return TRUE;
}
return TRUE;
}
// CheckLicensed(pManager->GetModuleName());
void CheckLicensed(CString csName)
{
//在此处检测加密锁,
CString csPath;
long nReturnCode;
_XKey_GetSetupPath(_PRODUCT_PLERINE2_61, csPath);
if (_XKey_Initialize(csPath) == 0)
{
char pKeyData[_KEYMAXMEMORYSIZE];
memset(pKeyData, 0, _KEYMAXMEMORYSIZE);
nReturnCode = _XKey_GetLicenseData(_PRODUCT_PLERINE2_61, _CT_PLERINE2_61_IO, csName, pKeyData);
if (nReturnCode == 0)
{
BOOL bLicensed = pKeyData[0];
gbLicensed = bLicensed;
}
}
}
//+++++++++加密所用函数和变量结束++++++++++++++++//
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -