unit dsrnew;

interface

function ft001(): Integer; stdcall; external 'FUTONGDLL.DLL';
//输出函数Ini:
//目的:初步检查是否存在用户锁,如果有存在,提示用户插入用户锁。在程序初始化时,一定要使用这段代码


function ft002(): Integer; stdcall; external 'FUTONGDLL.DLL';
//输出函数CheckKey
//目的:用狗中特定的算法验证当前的加密狗是否为授权的正确狗
//返回结果:要进行设置的值


function ft003(a: Integer): Integer; stdcall; external 'FUTONGDLL.DLL';
//输出函数SetValue
//目的:用来对变量进行值的设置
//参数a:要进行设置的值
//返回结果:要进行设置的值
//例:对于原来如  x1 = x2; 的赋值方式,可改用 x1 = ft003(x2)的方式


function ft004(var s1, s2: PAnsiChar; len: Integer): Integer; stdcall; external 'FUTONGDLL.DLL';
//输出函数CompareString
//目的:用来对两个字符串进行比较
//参数s1:要比较的两个字符串之一
//参数s2:要比较的两个字符串之一
//参数len:要比较的长度
//返回结果:如果为0,两个字符串相等,如果为正数,s1>s2,如果为负数,s1<s2


function ft005(var s1, s2: PAnsiChar; len: Integer): Integer; stdcall; external 'FUTONGDLL.DLL';
//输出函数CompareStringNoCase
//目的:用来对两个字符串进行比较(忽略大小写)
//参数s1:要比较的两个字符串之一
//参数s2:要比较的两个字符串之一
//参数len:要比较的长度
//返回结果:如果为0,两个字符串相等,如果为正数,s1>s2,如果为负数,s1<s2


function ft006(var s1, s2: PAnsiChar): Integer; stdcall; external 'FUTONGDLL.DLL';
//输出函数Strcat
//目的:用来对两个字符串进行连接
//参数s1:要连接的两个字符串之一
//参数s2:要连接的两个字符串之一
//返回结果:返回目的字符串的长度, s1 为连接后的字符串
//相当于 s1 = s1 + s2,  s2加在s1的后面, 返回。


function ft007(sd, s: PAnsiChar): Integer; stdcall; external 'FUTONGDLL.DLL';
//输出函数Strcpy
//目的:对字符串进行复制
//参数sd:目的字符串
//参数s:源字符串
//返回结果:返回目的字符串的长度
//相当于 sd = s


function ft008(p1, p2: Integer; exp: Char): Integer; stdcall; external 'FUTONGDLL.DLL';
//输出函数:Compare
//目的:用来比较两个数的大小,相当于?a>b,a<b,a=b
//参数p1:要比较的第一个数
//参数p2:要比较的第二个数
//参数c:是大于,小于或等于,即">","<","="
//返回结果:
//如果返回0,表示表达式为假,返回1表示表达式为真



//获取设置加密狗中的参数
//对加密狗的存储区进行操作时,耗时时间较长,应注意!!!!
//加密狗中存储位置说明
//允许使用的总空间160字节,其中:64字节存放数据库连接信息,分别是:
//标识		对应参数		允许存放的最大字符串长度
//   5		IP地址			15
//	 6		用户名			15
//   7		用户口令		15
//   8		DataBase		15
//	 9		标识			可用来进行特别标识,如本加密狗的信息,本机硬件信息等
// 0-4		自定义			共80字节空间,每个数字表示1节(16字节),递增
//			注意空间不能溢出,否则引起未知错误;
//			0-4标识使用的是连续空间,当0位置的长度超过15时,
//			将覆盖1号位置的存储区域。
//			使用 0, 可用空间 80 - 1;
//				 1,		  64 - 1;
//				 2,		  48 - 1;
//........


function ft011(outstr: PAnsiChar; Ord: Integer): Integer; stdcall; external 'FUTONGDLL.DLL';
//输出函数GetParm
//目的:获取加密狗指定位置的字符串
//参数outstr:目的字符串
//参数Ord:标识加密狗特定地点的标志值(0-9)
//返回结果:返回目的字符串的长度


function ft012(instr: PAnsiChar; Ord: Integer): Integer; stdcall; external 'FUTONGDLL.DLL';
//输出函数SetParm
//目的:在加密狗的指定位置存放字符串
//参数instr:需存放的字符串
//参数Ord:标识加密狗特定地点的标志值(0-9)
//返回结果:返回写入字符串的长度



//加解密函数

function ft021(inStr, outStr: PAnsiChar): Integer; stdcall; external 'FUTONGDLL.DLL';
//说明:本函数单向加密字符串instr,不能逆向解密!
//目的:获取输入字符串instr的单向加密字符串outstr
//参数instr:需加密的字符串
//参数outStr:单向加密后的密文
//返回结果:返回密文的长度


function ft022(source, dest, key: PAnsiChar; flg: Integer): Integer; stdcall; external 'FUTONGDLL.DLL';
function ft023(source, dest, key: PAnsiChar; flg: Integer): Integer; stdcall; external 'FUTONGDLL.DLL';
//说明:均为字符串加解密函数,可加解密
//目的:用指定的Key,对输入字符串source进行置换,dest为置换后的字符串
//参数source:需置换的字符串源文
//参数dest:置换后后的字符串密文
//参数key:置换采用的key,字符串
//参数flg: 为1时,进行加密,为0时进行解密
//返回结果:返回置换后字符串的长度

function PBDecode(Strin, StrOut: PAnsiChar; nInLen, nOutLen: Integer): Integer; stdcall; external 'FUTONG.DLL';
//为解密函数入口参数为Strin,需解密的字符串
//                    StrOut,解密后的字符串(要求预先分配空间)
//		      nInLen,为Strin的长度
//		      nOutLen,为解密后的长度

function PBEncode(Strin, StrOut: PAnsiChar; nInLen, nOutLen: Integer): Integer; stdcall; external 'FUTONG.DLL';
//跟上面的函数对应,实现加密功能
{
//function ulong  SQlfunc(ref string OutStr,ref string InStr,UINT len,UINT ID) LIBRARY "Futong.dll"
//对应数据库扩展存储过程(实现加密功能)对应的解密函数
//    OutStr要求预先分配空间
//     len  为解密后内容长度
//      ID  算法因子(和存储过程对应)

function checkfunc(handle: Integer; DogFlag: String): Integer; stdcall; external 'FUTONG.DLL';
//检查硬件狗函数
// handle为主窗口句柄
// DogFlag为从数据库中查询到的硬件狗信息
// DLL自动检查硬件狗和DogFlag的信息是否相符,不符时将在3分钟左右自动重启计算机

function GetParm(flag: Integer; out len: Integer; outHex: PAnsiChar): Integer; stdcall; external 'FUTONG.DLL';
//硬件狗中获取特定信息,如IP地址,数据库名称,用户名、口令等
//自定义参数flag取值范围为0--4,存储空间一共为20个字节,为连续的地址空间
//也即:参数0,最大可用长度为20,这时其他参数,将覆盖这个区域
//	参数4,最大可用长度为4
//DogFlag为字符串信息

function SetParm(flag, len: Integer; inHex: PAnsiChar): Integer; stdcall; external 'FUTONG.DLL';
//flag=5IP,=6User,=7Pass,=8DB
//硬件狗中设置参数,传入IP时,须设置为 “C8A00164”等形式传入(192.168.1.100)
//自定义参数用法同上

function InfoFunc(order: Integer; info: PAnsiChar): Integer; stdcall; external 'FUTONG.DLL';
//读取本机硬件信息,返回值为机器网卡个数
//考虑到某些可移动的网卡,要查询固定的网卡信息
//软件安装时要求移除可移动网卡
//order为第几块网卡,从0开始

function GetHostIpAddr(DogParm, HostName, IPAddr: PAnsiChar): Integer; stdcall; external 'FUTONG.DLL';
//获取硬件狗标识,本机IP地址(仅参考,因为机器有多个IP地址,获取的只是其中之一)
//以及机器名称
}
implementation

end.