客户端API » Delphi 语言接口定义

方法摘要
longint Login(url: Pointer; sn: Pointer; mode: LOGIN_MODE_ENUM)
授权登录。初始化运行环境,获取操作句柄。必须在除升级函数之外的其它操作前执行。根据登录模式的不同可能需要连接授权服务器。
longint LoginEx(url: Pointer; sn: Pointer; featureId: longint; xmlScope: Pointer; mode: LOGIN_MODE_ENUM)
授权登录的增强版本。允许应用程序在登录时指定授权中所需包含的特征项,以缩小登录范围。
longint Logout()
此函数用于释放上下文句柄,退出登录状态。
longint ReadFeature(featureId: longint; var featureValue: longint)
此函数用于读取特征项的数据内容,可用于“只读”和“读写”特征类型。
longint WriteFeature(featureId: longint; featureValue: longint)
此函数用于更新“读写”类型的特征项的数据内容。
longint ConvertFeature(featureId: longint; para1: longint; para2: longint; para3: longint; para4: longint; var res: longint)
此函数用于使用“算法”类型的特征项对输入参数进行变换操作,得到唯一对应的4字节结果。
longint EncryptFeature(featureId: longint; plainBuffer: Pointer; cipherBuffer: Pointer; bufferSize: longint)
此函数用于使用“密钥”类型的特征项对输入的明文进行加密,返回密文结果。
longint DecryptFeature(featureId: longint; cipherBuffer: Pointer; plainBuffer: Pointer; bufferSize: longint)
此函数用于使用“密钥”类型的特征项对输入的密文进行解密,返回明文结果。
longint QueryFeature(featureId: longint; var capacity: longint)
请求特征项,检查特征项是否存在并可用。可用于任意特征项类型。对于集团授权,函数执行成功后会占用一个模块用户数。
longint ReleaseFeature(featureId: longint; var capacity: longint)
释放特征项。集团授权会释放模块用户数。
longint SetDataItem(dataItemName: Pointer; dataItemValue: Pointer; dataItemValueSize: longint)
创建或更新配置项。如果相同名称的配置项存在,则会更新其中的数据;否则将添加新的授权码配置项。
longint RemoveDataItem(dataItemName: Pointer)
删除指定的配置项。该操作无法删除通过控制台设置的产品配置项或模版配置项。
longint GetDataItem(dataItemName: Pointer; dataItemValue: Pointer; var dataItemValueSize: longint)
读取指定的配置项数据。
longint GetDataItemNum(var num: longint)
此函数用于获取可访问配置项的数量,一般用于配置项的枚举操作。
longint GetDataItemName(index: longint; dataItemName: Pointer; var dataItemNameSize: longint)
根据配置项索引获取其名称,一般用于配置项的枚举操作。
longint GetSessionInfo(sessionType: SESSION_TYPE_ENUM; sessionInfo: Pointer; var sessionInfoSize: longint)
获取当前会话信息,以字符串形式返回。根据获取的内容不同,返回结果可能是XML格式或非XML格式。 返回数据中的日期项已根据客户端的本地时区进行调整。如果Login时未指定SN,返回串为当前系统所有可用SN的综合结果。
longint GetRequestInfo(sn: Pointer; bindingType: BINDING_TYPE_ENUM; requestInfo: Pointer; var requestInfoSize: longint)
获取当前运行环境的升级请求码,用于发起本地授权激活及升级请求。
longint GetUpdateInfo(url: Pointer; sn: Pointer; requestInfo: Pointer; updateInfo: Pointer; var updateInfoSize: longint)
使用请求码与授权服务器进行连接,获取升级码。本函数需要进行网络连接。
longint ApplyUpdateInfo(updateInfo: Pointer; receiptInfo: Pointer; var receiptInfoSize: longint)
应用升级码完成本地授权激活或升级。本函数必须在获取请求码的同一环境下执行。
longint UpdateOnline(url: Pointer; sn: Pointer)
此函数用于与授权服务器在线连接,自动完成本地授权的升级操作。本函数需要进行网络连接。
longint Revoke(url: Pointer; sn: Pointer; revocationInfo: Pointer; var revocationInfoSize: longint)
从客户端迁出已激活的浮动授权码。授权码迁出后,可以用于其它的客户端。根据输入参数的不同,本函数可用于在线或离线迁出。
longint CheckOutSn(url: Pointer; featureId: longint)
从集团授权服务器借出一个完整的授权码,以允许客户端脱离集团服务器单独使用。被借出的集团授权码必须具有可借出属性,并在客户端成功借出后减少一个可用用户数。被借出的用户数在到期后将自动返还给集团服务器。
longint CheckOutFeatures(url: Pointer)
从集团授权服务器借出一组特征项,这些特征项必须包含在同一个授权码中。被借出的集团授权码必须具有可借出属性,并在客户端成功借出后减少一个可用用户数。被借出的用户数在到期后将自动返还给集团服务器。
longint CheckIn(url: Pointer; featureId: longint)
提前返还从集团授权服务器借出的授权。要提前返还授权,该授权码必须具有允许提前返还属性。
longint GetInfo(sn: Pointer; infoType: INFO_TYPE_ENUM; info: Pointer; var infoSize: longint)
获取授权信息及使用环境信息,数据以XML格式返回。调用此函数前客户端不需要执行登录操作。
longint RemoveSn(sn: Pointer)
删除指定授权码在本机的授权数据,可用于测试或当授权数据出现问题而不能通过升级解决时的故障处理。
longint GetVersion(var version: longint)
获取客户端安全库版本号。
方法详细信息

Login

    function Login (
                 url: Pointer;
                 sn: Pointer;
                 mode: LOGIN_MODE_ENUM) : longint
授权登录。初始化运行环境,获取操作句柄。必须在除升级函数之外的其它操作前执行。根据登录模式的不同可能需要连接授权服务器。

参数:
url - [IN] 自定义授权服务器地址,包括端口。如未使用自定义授权服务器则为NULL。
sn - [IN] 授权码(SN)字符串。如果为空(空串或NULL)则尝试寻找所有当前本机可用的SN
mode - [IN] 登录模式。 包含以下类型:
LOCAL_MODE // 登录本地授权,不会尝试寻找集团或云授权服务器。如果本地授权失效也不会尝试自动升级
REMOTE_MODE // 登录远程授权服务器,尝试建立云授权或集团授权连接,服务器地址由URL参数或配置文件提供
AUTO_MODE // 同时尝试本地授权及远程授权,寻找任何可用的授权方式。可能自动升级失效的本地授权

返回:
如果返回值为零,表示此函数调用成功。如果非零,可以根据返回值,从错误码表中查看具体的错误原因。

LoginEx

    function LoginEx (
                 url: Pointer;
                 sn: Pointer;
                 featureId: longint;
                 xmlScope: Pointer;
                 mode: LOGIN_MODE_ENUM) : longint
授权登录的增强版本。允许应用程序在登录时指定授权中所需包含的特征项,以缩小登录范围。

参数:
url - [IN] 自定义授权服务器地址,包括端口。如未使用自定义授权服务器则为NULL。
sn - [IN] 授权码(SN)字符串。如果为空(空串或NULL)则尝试寻找所有当前本机可用的SN
featureId - [IN] 登录授权所需要包含的特征项ID
xmlScope - [IN] 登录范围。用于提供更多的登录条件,格式为标准XML字符串。目前保留,必须为NULL
mode - [IN] 登录模式。 包含以下类型:
LOCAL_MODE // 登录本地授权,不会尝试寻找集团或云授权服务器。如果本地授权失效也不会尝试自动升级
REMOTE_MODE // 登录远程授权服务器,尝试建立云授权或集团授权连接,服务器地址由URL参数或配置文件提供
AUTO_MODE // 同时尝试本地授权及远程授权,寻找任何可用的授权方式。可能自动升级失效的本地授权

返回:
如果返回值为零,表示此函数调用成功。如果非零,可以根据返回值,从错误码表中查看具体的错误原因。

Logout

    function Logout () : longint
此函数用于释放上下文句柄,退出登录状态。

参数:

返回:
如果返回值为零,表示此函数调用成功。如果非零,可以根据返回值,从错误码表中查看具体的错误原因。

ReadFeature

    function ReadFeature (
                 featureId: longint;
                 var featureValue: longint) : longint
此函数用于读取特征项的数据内容,可用于“只读”和“读写”特征类型。

参数:
featureId - [IN] 产品的特征项ID。
featureValue - [OUT] 特征项数据缓存区地址,用于存储读出的数据。

返回:
如果返回值为零,表示此函数调用成功。如果非零,可以根据返回值,从错误码表中查看具体的错误原因。

WriteFeature

    function WriteFeature (
                 featureId: longint;
                 featureValue: longint) : longint
此函数用于更新“读写”类型的特征项的数据内容。

参数:
featureId - [IN] 产品的特征项ID。
featureValue - [IN] 特征项数据值。

返回:
如果返回值为零,表示此函数调用成功。如果非零,可以根据返回值,从错误码表中查看具体的错误原因。

ConvertFeature

    function ConvertFeature (
                 featureId: longint;
                 para1: longint;
                 para2: longint;
                 para3: longint;
                 para4: longint;
                 var res: longint) : longint
此函数用于使用“算法”类型的特征项对输入参数进行变换操作,得到唯一对应的4字节结果。

参数:
featureId - [IN] 产品的特征项ID。
para1 - [IN] 变换输入因子1
para2 - [IN] 变换输入因子2
para3 - [IN] 变换输入因子3
para4 - [IN] 变换输入因子4
res - [OUT] 变换结果。

返回:
如果返回值为零,表示此函数调用成功。如果非零,可以根据返回值,从错误码表中查看具体的错误原因。

EncryptFeature

    function EncryptFeature (
                 featureId: longint;
                 plainBuffer: Pointer;
                 cipherBuffer: Pointer;
                 bufferSize: longint) : longint
此函数用于使用“密钥”类型的特征项对输入的明文进行加密,返回密文结果。

参数:
featureId - [IN] 产品的特征项ID。
plainBuffer - [IN] 数据缓存区地址,用于存储明文数据。
cipherBuffer - [OUT] 数据缓存区地址,用于存储密文数据。
bufferSize - [IN] 数据长度,最大长度为256字节。

返回:
如果返回值为零,表示此函数调用成功。如果非零,可以根据返回值,从错误码表中查看具体的错误原因。

DecryptFeature

    function DecryptFeature (
                 featureId: longint;
                 cipherBuffer: Pointer;
                 plainBuffer: Pointer;
                 bufferSize: longint) : longint
此函数用于使用“密钥”类型的特征项对输入的密文进行解密,返回明文结果。

参数:
featureId - [IN] 产品的特征项ID。
cipherBuffer - [IN] 数据缓存区地址,用于存储密文数据。
plainBuffer - [OUT] 数据缓存区地址,用于存储明文数据。
bufferSize - [IN] 数据长度,最大长度为256字节。

返回:
如果返回值为零,表示此函数调用成功。如果非零,可以根据返回值,从错误码表中查看具体的错误原因。

QueryFeature

    function QueryFeature (
                 featureId: longint;
                 var capacity: longint) : longint
请求特征项,检查特征项是否存在并可用。可用于任意特征项类型。对于集团授权,函数执行成功后会占用一个模块用户数。

参数:
featureId - [IN] 产品的特征项ID。
capacity - [OUT] 当不为NULL时,获取特征项当前可用用户数。

返回:
如果返回值为零,表示此函数调用成功。如果非零,可以根据返回值,从错误码表中查看具体的错误原因。

ReleaseFeature

    function ReleaseFeature (
                 featureId: longint;
                 var capacity: longint) : longint
释放特征项。集团授权会释放模块用户数。

参数:
featureId - [IN] 产品的特征项ID。
capacity - [OUT] 当不为NULL时,获取特征项当前可用用户数。

返回:
如果返回值为零,表示此函数调用成功。如果非零,可以根据返回值,从错误码表中查看具体的错误原因。

SetDataItem

    function SetDataItem (
                 dataItemName: Pointer;
                 dataItemValue: Pointer;
                 dataItemValueSize: longint) : longint
创建或更新配置项。如果相同名称的配置项存在,则会更新其中的数据;否则将添加新的授权码配置项。

参数:
dataItemName - [IN] 数据项名称,名称最大长度为128字节。
dataItemValue - [IN] 数据项数据缓存区地址,数据最大长度为1024字节。
dataItemValueSize - [IN] 数据项长度。

返回:
如果返回值为零,表示此函数调用成功。如果非零,可以根据返回值,从错误码表中查看具体的错误原因。

RemoveDataItem

    function RemoveDataItem (
                 dataItemName: Pointer) : longint
删除指定的配置项。该操作无法删除通过控制台设置的产品配置项或模版配置项。

参数:
dataItemName - [IN] 数据项名称,名称最大长度为128字节。

返回:
如果返回值为零,表示此函数调用成功。如果非零,可以根据返回值,从错误码表中查看具体的错误原因。

GetDataItem

    function GetDataItem (
                 dataItemName: Pointer;
                 dataItemValue: Pointer;
                 var dataItemValueSize: longint) : longint
读取指定的配置项数据。

参数:
dataItemName - [IN] 数据项名称,名称最大长度为128字节。
dataItemValue - [OUT] 数据项数据缓存区地址,数据最大长度为1024字节。
dataItemValueSize - [IN/OUT] 数据项长度。

返回:
如果返回值为零,表示此函数调用成功。如果非零,可以根据返回值,从错误码表中查看具体的错误原因。

GetDataItemNum

    function GetDataItemNum (
                 var num: longint) : longint
此函数用于获取可访问配置项的数量,一般用于配置项的枚举操作。

参数:
num - [OUT] 可访问的数据项总数,包括了所有可以访问到的产品、模版及授权码的数据项。

返回:
如果返回值为零,表示此函数调用成功。如果非零,可以根据返回值,从错误码表中查看具体的错误原因。

GetDataItemName

    function GetDataItemName (
                 index: longint;
                 dataItemName: Pointer;
                 var dataItemNameSize: longint) : longint
根据配置项索引获取其名称,一般用于配置项的枚举操作。

参数:
index - [IN] 数据项索引。
dataItemName - [OUT] 用于存储数据项名称的存储区地址。
dataItemNameSize - [IN/OUT] 数据项名称存储区大小。

返回:
如果返回值为零,表示此函数调用成功。如果非零,可以根据返回值,从错误码表中查看具体的错误原因。

GetSessionInfo

    function GetSessionInfo (
                 sessionType: SESSION_TYPE_ENUM;
                 sessionInfo: Pointer;
                 var sessionInfoSize: longint) : longint
获取当前会话信息,以字符串形式返回。根据获取的内容不同,返回结果可能是XML格式或非XML格式。 返回数据中的日期项已根据客户端的本地时区进行调整。如果Login时未指定SN,返回串为当前系统所有可用SN的综合结果。

参数:
sessionType - [IN] 获取会话信息类型。 包含以下类型:
XML_TYPE_SN_INFO // 获取当前会话中授权码的授权信息,以XML结构表示。未作限制的授权项将不会返回
XML_TYPE_FEATURE_INFO // 获取当前会话中授权码的特征项信息,以XML结构表示
BIT_SERVER_ADDRESS // 授权服务器IP地址。只对云授权有意义,其它授权方式将返回:127.0.0.1
BIT_SERVER_TIME // 授权服务器系统时间。如果是本地授权,将返回本机系统时间
BIT_CONTROL_TYPE // 授权类型。是以逗号分隔的以下几种类型的组合:Group(集团授权),Smart(智能连接), Float(可浮动), Demo(演示授权), USB(U盘授权), Force(强制认证)
BIT_VOLUME_NUMBER // 允许使用的机器数量
BIT_START_DATE // 授权开始日期
BIT_END_DATE // 授权结束日期
BIT_EXPIRATION_DAYS // 授权有效期,单位为天。有效期从激活时间算起
BIT_USAGE_NUMBER // 最大使用次数
BIT_CONSUMED_USAGE_NUMBER // 对于设定最大使用次数的授权码,返回当前使用次数
BIT_ACTIVATE_DATE // 授权码激活时间
BIT_USER_LIMIT // 集团授权用户数。对其它方式的授权返回0
BIT_LAST_UPDATE_DATE // 最后与服务器连接时间
BIT_MAX_OFFLINE_MINUTES // 强制认证最大离线时间(分钟)
sessionInfo - [OUT] 会话信息存储区地址。可以为NULL,此时仅用于获取存储区大小。
sessionInfoSize - [IN/OUT] 会话存储区大小。

返回:
如果返回值为零,表示此函数调用成功。如果非零,可以根据返回值,从错误码表中查看具体的错误原因。

GetRequestInfo

    function GetRequestInfo (
                 sn: Pointer;
                 bindingType: BINDING_TYPE_ENUM;
                 requestInfo: Pointer;
                 var requestInfoSize: longint) : longint
获取当前运行环境的升级请求码,用于发起本地授权激活及升级请求。

参数:
sn - [IN] 授权码(SN)字符串。如果为空(空串或NULL)则尝试寻找所有当前本机可用的SN
bindingType - [IN] 本地授权绑定类型。 包含以下类型:
BINDING_EXISTING // 使用当前绑定类型,对已激活授权码进行升级时使用。
BINDING_LOCAL // 使用本机指纹进行绑定
BINDING_USB_STORAGE // 使用USB存储器进行绑定
requestInfo - [OUT] 用于存储请求码的存储区地址。
requestInfoSize - [IN/OUT] 输入时为请求码存储区大小,输出时为请求码长度。

返回:
如果返回值为零,表示此函数调用成功。如果非零,可以根据返回值,从错误码表中查看具体的错误原因。

GetUpdateInfo

    function GetUpdateInfo (
                 url: Pointer;
                 sn: Pointer;
                 requestInfo: Pointer;
                 updateInfo: Pointer;
                 var updateInfoSize: longint) : longint
使用请求码与授权服务器进行连接,获取升级码。本函数需要进行网络连接。

参数:
url - [IN] 自定义授权服务器地址,包括端口。如未使用自定义授权服务器则为NULL。
sn - [IN] 授权码(SN)字符串
requestInfo - [IN] 由获取请求码函数得到的请求码。
updateInfo - [OUT] 由授权服务器获得的本地授权升级码。
updateInfoSize - [IN/OUT] 输入时为存储区大小,输出时为升级码长度。

返回:
如果返回值为零,表示此函数调用成功。如果非零,可以根据返回值,从错误码表中查看具体的错误原因。

ApplyUpdateInfo

    function ApplyUpdateInfo (
                 updateInfo: Pointer;
                 receiptInfo: Pointer;
                 var receiptInfoSize: longint) : longint
应用升级码完成本地授权激活或升级。本函数必须在获取请求码的同一环境下执行。

参数:
updateInfo - [IN] 由授权服务器获得的本地授权升级码。
receiptInfo - [OUT] 确认码,记录升级状态,可在控制台上解析。
receiptInfoSize - [IN/OUT] 输入时为存储区大小,输出时为确认码长度。

返回:
如果返回值为零,表示此函数调用成功。如果非零,可以根据返回值,从错误码表中查看具体的错误原因。

UpdateOnline

    function UpdateOnline (
                 url: Pointer;
                 sn: Pointer) : longint
此函数用于与授权服务器在线连接,自动完成本地授权的升级操作。本函数需要进行网络连接。

参数:
url - [IN] 自定义授权服务器地址,包括端口。如未使用自定义授权服务器则为NULL。
sn - [IN] 授权码(SN)字符串。如果为空(空串或NULL)则尝试寻找所有当前本机可用的SN

返回:
如果返回值为零,表示此函数调用成功。如果非零,可以根据返回值,从错误码表中查看具体的错误原因。

Revoke

    function Revoke (
                 url: Pointer;
                 sn: Pointer;
                 revocationInfo: Pointer;
                 var revocationInfoSize: longint) : longint
从客户端迁出已激活的浮动授权码。授权码迁出后,可以用于其它的客户端。根据输入参数的不同,本函数可用于在线或离线迁出。

参数:
url - [IN] 自定义授权服务器地址,包括端口。如未使用自定义授权服务器则为NULL。
sn - [IN] 授权码(SN)字符串
revocationInfo - [OUT] 迁出请求码的存储区地址。为NULL表示进行在线迁出,否则API将执行手工离线迁出,请求码应发给服务器进行确认。
revocationInfoSize - [IN/OUT] 输入时为请求码存储区大小,输出时为请求码长度。如此参数为NULL,函数将选择在线迁出。

返回:
如果返回值为零,表示此函数调用成功。如果非零,可以根据返回值,从错误码表中查看具体的错误原因。

CheckOutSn

    function CheckOutSn (
                 url: Pointer;
                 featureId: longint) : longint
从集团授权服务器借出一个完整的授权码,以允许客户端脱离集团服务器单独使用。被借出的集团授权码必须具有可借出属性,并在客户端成功借出后减少一个可用用户数。被借出的用户数在到期后将自动返还给集团服务器。

参数:
url - [IN] 集团授权服务器地址,包括端口。如输入NULL,则使用配置文件地址;如输入 * 号,则使用广播查找地址。
featureId - [IN] 指定借出授权码需要包含的特征项ID,为 0 则寻找第一个可借出授权码。

返回:
如果返回值为零,表示此函数调用成功。如果非零,可以根据返回值,从错误码表中查看具体的错误原因。

CheckOutFeatures

    function CheckOutFeatures (
                 url: Pointer) : longint
从集团授权服务器借出一组特征项,这些特征项必须包含在同一个授权码中。被借出的集团授权码必须具有可借出属性,并在客户端成功借出后减少一个可用用户数。被借出的用户数在到期后将自动返还给集团服务器。

参数:
url - [IN] 集团授权服务器地址,包括端口。如输入NULL,则使用配置文件地址;如输入 * 号,则使用广播查找地址。

返回:
如果返回值为零,表示此函数调用成功。如果非零,可以根据返回值,从错误码表中查看具体的错误原因。

CheckIn

    function CheckIn (
                 url: Pointer;
                 featureId: longint) : longint
提前返还从集团授权服务器借出的授权。要提前返还授权,该授权码必须具有允许提前返还属性。

参数:
url - [IN] 集团授权服务器地址,包括端口。如输入NULL,则使用配置文件地址;如输入 * 号,则使用广播查找地址。
featureId - [IN] 指定要返还授权码需要包含的特征项ID,为 0 则寻找第一个可返还授权码。

返回:
如果返回值为零,表示此函数调用成功。如果非零,可以根据返回值,从错误码表中查看具体的错误原因。

GetInfo

    function GetInfo (
                 sn: Pointer;
                 infoType: INFO_TYPE_ENUM;
                 info: Pointer;
                 var infoSize: longint) : longint
获取授权信息及使用环境信息,数据以XML格式返回。调用此函数前客户端不需要执行登录操作。

参数:
sn - [IN] 授权码(SN)字符串
infoType - [IN] 获取信息类型。 包含以下类型:
BIT_INFO_SERVER_ADDRESS // 获取局域网内的集团授权服务器地址列表
BIT_INFO_SN // 获取本机已激活的授权码列表
BIT_INFO_SN_FEATURE // 获取本机已激活授权码的特征项列表
BIT_INFO_SN_LICENSE // 获取本机已激活授权码的授权信息
BIT_INFO_UPDATE_ERROR // 获取指定授权码的升级错误详细信息。是否存在详细信息由授权码类型及错误类型决定
BIT_INFO_CONFIG // 获取当前产品的配置文件信息
BIT_INFO_TOKEN_LIST // 获取当前机器上可用的BIT-ID列表信息
info - [OUT] 用于存储返回XML信息数据的存储区地址。
infoSize - [IN/OUT] 输入的存储区长度。

返回:
如果返回值为零,表示此函数调用成功。如果非零,可以根据返回值,从错误码表中查看具体的错误原因。

RemoveSn

    function RemoveSn (
                 sn: Pointer) : longint
删除指定授权码在本机的授权数据,可用于测试或当授权数据出现问题而不能通过升级解决时的故障处理。

参数:
sn - [IN] 授权码(SN)字符串

返回:
如果返回值为零,表示此函数调用成功。如果非零,可以根据返回值,从错误码表中查看具体的错误原因。

GetVersion

    function GetVersion (
                 var version: longint) : longint
获取客户端安全库版本号。

参数:
version - [OUT] 客户端安全库版本号。

返回:
如果返回值为零,表示此函数调用成功。如果非零,可以根据返回值,从错误码表中查看具体的错误原因。