/* Code generated by cmd/cgo; DO NOT EDIT. */

/* package command-line-arguments */


#line 1 "cgo-builtin-export-prolog"

#include <stddef.h>

#ifndef GO_CGO_EXPORT_PROLOGUE_H
#define GO_CGO_EXPORT_PROLOGUE_H

#ifndef GO_CGO_GOSTRING_TYPEDEF
typedef struct { const char *p; ptrdiff_t n; } _GoString_;
#endif

#endif

/* Start of preamble from import "C" comments.  */



#line 3 "im.go"

#include <stdint.h>

#line 1 "cgo-generated-wrapper"








/* End of preamble from import "C" comments.  */


/* Start of boilerplate cgo prologue.  */
#line 1 "cgo-gcc-export-header-prolog"

#ifndef GO_CGO_PROLOGUE_H
#define GO_CGO_PROLOGUE_H

typedef signed char GoInt8;
typedef unsigned char GoUint8;
typedef short GoInt16;
typedef unsigned short GoUint16;
typedef int GoInt32;
typedef unsigned int GoUint32;
typedef long long GoInt64;
typedef unsigned long long GoUint64;
typedef GoInt64 GoInt;
typedef GoUint64 GoUint;
typedef size_t GoUintptr;
typedef float GoFloat32;
typedef double GoFloat64;
#ifdef _MSC_VER
#include <complex.h>
typedef _Fcomplex GoComplex64;
typedef _Dcomplex GoComplex128;
#else
typedef float _Complex GoComplex64;
typedef double _Complex GoComplex128;
#endif

/*
  static assertion to make sure the file is being used on architecture
  at least with matching size of GoInt.
*/
typedef char _check_for_64_bit_pointer_matching_GoInt[sizeof(void*)==64/8 ? 1:-1];

#ifndef GO_CGO_GOSTRING_TYPEDEF
typedef _GoString_ GoString;
#endif
typedef void *GoMap;
typedef void *GoChan;
typedef struct { void *t; void *v; } GoInterface;
typedef struct { void *data; GoInt len; GoInt cap; } GoSlice;

#endif

/* End of boilerplate cgo prologue.  */

#ifdef __cplusplus
extern "C" {
#endif


// 向SDK设置自定义的CoinType 和 前缀
//
extern __declspec(dllexport) void SetCoinTypeCustom(long long int coinType, char* addrPre);
extern __declspec(dllexport) char* Init(char* conf, char* addrpre, char* pwd);

// 初始化设置生成配置文件，addpre等等
//
extern __declspec(dllexport) char* InitV2(char* conf, char* addrpre, char* pwd, char* impwd);
extern __declspec(dllexport) char* InitV3(char* conf, char* addrpre, char* prk);

// 检查是否升级CoinType
//
extern __declspec(dllexport) char* CheckUpgradePreAndCoinType(char* conf, char* addrpre);

// 升级CoinType
//
extern __declspec(dllexport) char* UpgradePreAndCoinType(char* conf, char* newaddrpre, long long int newcoinType, char* pwd, char* imprik);

// 检查当前地址(ip+port)是否在线
//
extern __declspec(dllexport) char* CheckP2pOnline(char* addr);

// 设置im日志等级 0-7, 3 error 4 waring 6 info 7 debug
//
extern __declspec(dllexport) void SetLogLevel(long int level);

// 移除本地生成的各种文件及文件夹(包括keystore，wallet，logs等等)
//
extern __declspec(dllexport) char* RemoveCache();

// 设置语言
//
extern __declspec(dllexport) void SetLang(char* lan);

// 获取默认的钱包地址
//
extern __declspec(dllexport) char* GetCoinbase(char* password);

// 检查钱包密码是否正确
//
extern __declspec(dllexport) char* CheckPassword(char* password);

// 更改钱包密码
//
extern __declspec(dllexport) char* UpdatePassword(char* oldpwd, char* newpwd);

// 导出助记词
//
extern __declspec(dllexport) char* ExportMnemonic(char* pwd);

// 导入助记词，从实现角度来看，应该是弃用了
//
extern __declspec(dllexport) char* ImportMnemonic(char* pwd, char* word);

// 导入助记词
//
extern __declspec(dllexport) char* ImportMnemonicV2(char* pwd, char* impwd, char* minerpwd, char* word);

// 导入助记词V3
//
extern __declspec(dllexport) char* ImportMnemonicV3(char* pwd, char* impwd, char* minerpwd, char* word, long int num);

// 创建新的钱包地址
//
extern __declspec(dllexport) char* CreateNewAddrV1(char* password, long int walletIndex);

// 获取所有钱包地址
//
extern __declspec(dllexport) char* GetAllAddr(long int walletIndex);
extern __declspec(dllexport) char* GetMsg();
extern __declspec(dllexport) void SetConfPath(char* path);

// 关闭本次area链接（IM使用）
//
extern __declspec(dllexport) void Close();
extern __declspec(dllexport) char* UUID();
extern __declspec(dllexport) char* UUIDS(long int n);
extern __declspec(dllexport) char* SnowId();

// 获取本节点信息
//
extern __declspec(dllexport) char* GetNodeId();
extern __declspec(dllexport) char* GetHash(char* str);

// 删除本地keystore文件
//
extern __declspec(dllexport) char* RemoveKey(char* conf);
extern __declspec(dllexport) char* RemoveMachineId(char* conf);

// 检查当前area是否在线
//
extern __declspec(dllexport) char* CheckOnline();

// 重连P2P
//
extern __declspec(dllexport) char* ReConnect();

// 关闭P2P网络
//
extern __declspec(dllexport) char* CloseNet();

// 获取连接数量
//
extern __declspec(dllexport) char* GetSessionNum();

// 获取超级节点id
//
extern __declspec(dllexport) char* GetSuperNodeId();

// 检查助记词
//
extern __declspec(dllexport) char* CheckMnemonic(char* content);

// 获取当前版本（这个地方是写死的，没啥用）
//
extern __declspec(dllexport) char* Version();
extern __declspec(dllexport) void ExportCallbackFunc(GoInterface cbi);
extern __declspec(dllexport) char* GetWalletZeroAddrPrk(char* pwd);
extern __declspec(dllexport) char* GetNetAddrKeyByMnemonic(char* word);
extern __declspec(dllexport) char* InitLinked();
extern __declspec(dllexport) char* LPush(char* lKey, char* iKey, char* valByte, char* val);
extern __declspec(dllexport) char* LGet(char* itemKey);
extern __declspec(dllexport) char* LDel(char* lKey, char* iKey);
extern __declspec(dllexport) char* LUpdate(char* lKey, char* iKey, char* valByte, char* val);
extern __declspec(dllexport) char* LSetMeta(char* lkey, char* linked);
extern __declspec(dllexport) char* LGetMeta(char* lkey);
extern __declspec(dllexport) char* GetKeyStorePrv(char* pwd);
extern __declspec(dllexport) char* GetPukBase58StrByAddr(char* addr, char* pwd, long int walletIndex);
extern __declspec(dllexport) char* GetPukBase58StrByPrikIndex(char* pwd, long int prikIndex);
extern __declspec(dllexport) char* GetUseKeystoreIndex();
extern __declspec(dllexport) char* BuildNetAddrByPuk(char* puk);
extern __declspec(dllexport) char* BuildAddrByPuk(char* pre, char* puk);
extern __declspec(dllexport) char* SignByWalleAddr(char* addr, char* text, char* addrpass);
extern __declspec(dllexport) char* ResetWalletPassword(char* oldPwd, char* newPwd);
extern __declspec(dllexport) char* BuildNetAddrByMnemonic(char* word);
extern __declspec(dllexport) char* GetUserAuth();

// 生成DH密钥对
//
extern __declspec(dllexport) char* GenerateDHPair();

// 获取HTTP加密DH客户端公钥
//
extern __declspec(dllexport) char* GetHTTPDHKeyPublicKey();

// HTTP加密
//
extern __declspec(dllexport) void EncryptHTTPData(long long int port, char* data);

// HTTP解密
//
extern __declspec(dllexport) void DecryptHTTPData(long long int port, char* data);
extern __declspec(dllexport) char* RunServer();
extern __declspec(dllexport) char* SetP2pPort(char* port);
extern __declspec(dllexport) void RunP2p(long long int port, char* remoteaddr, char* nodeAddr, char* devName, char* runEnv, long int autoPush);
extern __declspec(dllexport) char* RunP2pByPrk(char* conf, char* remoteaddr, char* prk);
extern __declspec(dllexport) char* SendMsg(long int msgid, char* tonodeid, char* topuk, char* msg, long long int retry);
extern __declspec(dllexport) char* SendMsgByHttp(long int msgid, char* tonodeid, char* topuk, char* msg, long long int retry);
extern __declspec(dllexport) char* GroupId();
extern __declspec(dllexport) char* GetMegHash(long int msgid, char* tonodeid, char* msgstr);
extern __declspec(dllexport) void UpdateUserInfo(long long int port, long int version, char* content);
extern __declspec(dllexport) void GetUserinfo(long long int port, char* addrNet, char* content);
extern __declspec(dllexport) char* GetTime();
extern __declspec(dllexport) char* UpdateIsAllRead(long int needRead);
extern __declspec(dllexport) char* GetMachineId(char* content);
extern __declspec(dllexport) char* GetServerTime(char* content);
extern __declspec(dllexport) char* SetAddrData(long int genre, char* content);
extern __declspec(dllexport) char* SetAddrData1(char* content);
extern __declspec(dllexport) char* SetNewChamberData(char* content);
extern __declspec(dllexport) char* SetNewChamberVer(char* content);
extern __declspec(dllexport) char* CreateGroup2(char* content);
extern __declspec(dllexport) char* UpdateGroup(char* content);
extern __declspec(dllexport) char* ChangeGroupMember(char* content);
extern __declspec(dllexport) char* GroupDissolve(char* content);
extern __declspec(dllexport) char* ManagerGroupMember(char* content);
extern __declspec(dllexport) char* UpdateGroup2(char* content);
extern __declspec(dllexport) char* JoinGroupApply(char* content, int isOfficial);
extern __declspec(dllexport) void GetGroupInfo(long long int port, char* content);
extern __declspec(dllexport) char* IsGroupMembers(char* content);
extern __declspec(dllexport) char* InGroupMembers(char* content);
extern __declspec(dllexport) char* GetGroupMemberListRemotePic(char* content);
extern __declspec(dllexport) void SendGroupMsg2(long long int port, char* content, char* toAddr, long int genre, int isOfficial);
extern __declspec(dllexport) char* SendGroupByHttp(char* content, char* toAddr, long int genre);
extern __declspec(dllexport) void LoadMoreGroupMsg(long int port, char* groupId);
extern __declspec(dllexport) char* GetGroupPasswd(char* content);
extern __declspec(dllexport) char* SetAreaName(char* content);
extern __declspec(dllexport) void UpdateGroupMemberCallback(char* gid);
extern __declspec(dllexport) void AddWhiteList(char* content);
extern __declspec(dllexport) char* CheckImPassword(char* password);
extern __declspec(dllexport) char* UpdateImPwd(char* oldpwd, char* newpwd);
extern __declspec(dllexport) char* ExportImPrivateKey(char* pwd);
extern __declspec(dllexport) char* SetServerPort(char* port);
extern __declspec(dllexport) char* SetAllProxy(char* content, char* id, char* ip, long int port);
extern __declspec(dllexport) char* SetAreaVerByMid(char* content);
extern __declspec(dllexport) char* SetAllProxy2(char* content, char* id, char* ip, long int port);
extern __declspec(dllexport) void GetDeviceData(long long int port, long long int ver);
extern __declspec(dllexport) char* UpdateCloudFileTime(char* content);
extern __declspec(dllexport) char* RemoveCloudFileTime(char* content);
extern __declspec(dllexport) char* GetAllProxy(char* content);
extern __declspec(dllexport) void SetWSMessagePort(long int port);
extern __declspec(dllexport) void StartWSMessageServer();
extern __declspec(dllexport) void StartGetMessage();
extern __declspec(dllexport) char* BindDomain(char* content, char* id, long int version);
extern __declspec(dllexport) char* UnBindDomain(char* content, char* id, long int version);
extern __declspec(dllexport) char* GetNodeBindDomain(char* content, char* id, long int version);
extern __declspec(dllexport) char* FindDomainBindNodes(char* content, char* id, long int version);
extern __declspec(dllexport) char* LoadInitData(char* content);
extern __declspec(dllexport) char* MessageDataRecv(char* content);
extern __declspec(dllexport) void InitDartApi(void* api);
extern __declspec(dllexport) void SetMsgSendPort(GoInt64 port);
extern __declspec(dllexport) void CleanMessageStructMemory(GoInt64 ptrAddr);
extern __declspec(dllexport) void CleanMessageStructMemoryByPort(GoInt64 ptrAddr);
extern __declspec(dllexport) char* StatMessageStructMemory();
extern __declspec(dllexport) char* CgoHandleStat();
extern __declspec(dllexport) char* GetMsgByCgoHandle(GoUintptr handleVal);
extern __declspec(dllexport) void CleanCgoHandleByPort(long long int port);
extern __declspec(dllexport) char* ClearLoginInfo();
extern __declspec(dllexport) char* SetAreaConnType(char* connType);
extern __declspec(dllexport) char* SetReadMsgDelVersion(char* connType);
extern __declspec(dllexport) char* SetBlockStranger(char* connType);
extern __declspec(dllexport) char* GetAllOnlineMachine(long int msgid, char* content);
extern __declspec(dllexport) char* CloseOnlineMachine(long int msgid, char* addr, char* machine);
extern __declspec(dllexport) char* CloseOnlineMachineV2(long int msgid, char* machine, long int cType, long int version, char* isDel);
extern __declspec(dllexport) char* OnlineMachineRcv(long int cmd, char* hash);
extern __declspec(dllexport) char* OnlineMachineRcvV2(long int cmd, char* hash, char* isDel);
extern __declspec(dllexport) char* AddressCoinToEvmAddress(char* addr);
extern __declspec(dllexport) char* EvmAddressToAddressCoin(char* addr);
extern __declspec(dllexport) char* AuthLogin(char* proxy, char* toCurPuk);
extern __declspec(dllexport) char* SetMainDevice(char* proxy);
extern __declspec(dllexport) char* SignatureStr(char* str);
extern __declspec(dllexport) char* SignVerificationStr(char* edpuk, char* msg, char* sigMsg);
extern __declspec(dllexport) void SaveDeviceData(long long int port, char* proxy);
extern __declspec(dllexport) char* BindTempDev(char* proxy);
extern __declspec(dllexport) void SendP2pMsgToNode(long long int port, char* recvId, char* machineId, char* data);
extern __declspec(dllexport) void SendMediaMsgToNode(long long int port, char* data);
extern __declspec(dllexport) char* GetCurProxy();
extern __declspec(dllexport) char* CreateQR(char* gid);
extern __declspec(dllexport) char* EncryptQR(char* str, char* gid, long int gidVer);
extern __declspec(dllexport) char* DeleteAppGs(char* gid);
extern __declspec(dllexport) char* SetEncryptData(char* key, char* pwd, char* value);
extern __declspec(dllexport) char* GetEncryptData(char* key, char* pwd);
extern __declspec(dllexport) char* DelEncryptData(char* key);
extern __declspec(dllexport) char* GetCommonDatabase(char* content);
extern __declspec(dllexport) char* SetCommonDatabase(char* content);
extern __declspec(dllexport) char* GetActivityNum(char* req, char* addr);
extern __declspec(dllexport) char* GetActivityRank(char* req, char* addr);
extern __declspec(dllexport) char* GetDatabaseToken(char* req, char* addr);
extern __declspec(dllexport) char* CommonDatabaseRequest(long int msgID, char* req, char* addr);
extern __declspec(dllexport) char* AddTransfer(char* req, char* addr);
extern __declspec(dllexport) char* GetTransfer(char* req, char* addr);
extern __declspec(dllexport) char* GetTransferEveryDayNum(char* req, char* addr);
extern __declspec(dllexport) char* GetProducts(char* addr, char* req);
extern __declspec(dllexport) char* CheckinToken(char* req, char* addr);
extern __declspec(dllexport) void InitLedisDb(char* dir);
extern __declspec(dllexport) char* AddErrLog(long long int addTime, long long int ver, char* project, char* file, char* funcName, char* user, char* errLog, char* other);
extern __declspec(dllexport) char* GetErrLog();
extern __declspec(dllexport) char* DelErrLog(long long int min, long long int max);
extern __declspec(dllexport) char* UnzipErrLog(char* str);
extern __declspec(dllexport) void Ping(long long int port, char* str, long int waitNum);
extern __declspec(dllexport) char* SavePriInfo(char* str);
extern __declspec(dllexport) char* GetPriInfo(char* str);
extern __declspec(dllexport) char* DelPriInfo();
extern __declspec(dllexport) char* GetGroupMemberList(char* str);
extern __declspec(dllexport) char* RecoveryMsgByFileContent(char* str);
extern __declspec(dllexport) char* EncryptContent(char* key, char* content);
extern __declspec(dllexport) char* DecryptContent(char* key, char* content);
extern __declspec(dllexport) char* AddImCommonData(char* key, char* value, char* dataType, long int version);
extern __declspec(dllexport) char* DelImCommonData(char* key, long int version);
extern __declspec(dllexport) char* GetImCommonData(char* key);
extern __declspec(dllexport) void NoticeConfig(long long int port, char* data);
extern __declspec(dllexport) char* GetConnStatus();
extern __declspec(dllexport) void OssIsExit(long long int port, char* param);
extern __declspec(dllexport) void ExitAccount();
extern __declspec(dllexport) void SetTestFlag();
extern __declspec(dllexport) void MessageResp(char* key);
extern __declspec(dllexport) void UpdateUserInfoV2(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void QueryUser(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void SingleChat(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void SingleDelByid(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void SingleDelAll(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void GroupChat(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void GroupDelByid(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void GroupDelAll(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void SingleDelSection(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void SingleSend(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void SingleRead(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void SingleWithdraw(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void GetSingleChatMsg(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void AddContact(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void BlockContact(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void RemoveBlockContact(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void DeleteContact(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void RemarkContact(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void DisturbContact(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void RequestAddContact(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void QueryContactInfo(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void ReplyRequestAddContact(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void HandleRequestAddContact(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void UpdatePinneMesList(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void UpdateContactConf(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void AddDevice(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void UpdateDevice(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void DeleteDevice(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void DeviceInfo(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void UploadOnline(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void OutLineOtherDev(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void UpdateNoticeVoiceConfig(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void CreateGroup(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void UpdateGroupName(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void UpdateGroupHeadUrl(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void UpdateGroupIntroduction(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void AddGroupMember(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void RemoveGroupMember(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void UpdateGroupMemberName(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void DissolveGroup(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void QueryGroup(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void ApplyGroup(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void UpdateGroupMemberRole(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void UpdateGroupConf(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void GroupTransfer(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void ExitGroup(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void UpdateGroupPinneMesList(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void GroupDelSection(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void GroupWithdraw(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void GetGroupChatMsg(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void P2pMsgData(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) char* GetSingleOfflineMsgBody(uint8_t* content, long int len);
extern __declspec(dllexport) char* GetGroupOfflineMsgBody(uint8_t* content, long int len);
extern __declspec(dllexport) void AddFavoriteContent(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void UpdateFavoriteContent(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void DelFavoriteContent(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void AddFavoriteFolder(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void DelFavoriteFolder(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void UpdateFavoriteFolder(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void GetFavoriteFolders(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) void GetFavoriteAllFolders(long long int port, uint8_t* content, long int len);
extern __declspec(dllexport) char* GetWalletCoinAddress(long int walletIndex, long int addressIndex, char* pwd);

// 添加地址
//
extern __declspec(dllexport) char* AddWalletCoinAddress(long int port, long int walletIndex, long int addressIndex, char* pwd, char* nickName);

// 导入私钥
//
extern __declspec(dllexport) char* ImportPrivateKey(long int port, char* passwd, char* prk, char* chain, char* segwitType, char* nickName);
extern __declspec(dllexport) char* DeletePrivateKey(long int port, char* passwd, long int index);

// 添加钱包 不生成地址
//
extern __declspec(dllexport) char* AddWallet(long int port, char* pwd, char* nickName);
extern __declspec(dllexport) char* DeleteWallet(long int port, char* pwd, long int walletIndex);

// 导入助记词 不生成地址
//
extern __declspec(dllexport) char* AddWalletImportMnemonic(long int port, char* pwd, char* nickName, char* word);
extern __declspec(dllexport) char* ExportPrivateKey(long int port, char* passwd, char* chain, char* segwitType, long int walletIndex, long int addressIndex);
extern __declspec(dllexport) char* CreateAddrFromPri(char* prk, char* chain, char* segwitType);
extern __declspec(dllexport) char* GetPrivIndex();
extern __declspec(dllexport) char* SignTx(long int port, char* unSignTx, char* to, char* amount, char* coinType, char* fee, long int walletIndex, long int addressIndex, char* passwd, char* chain, char* segwitType, char* maxPriority, char* maxFee, long int gasLimit, long int frozenTime);
extern __declspec(dllexport) char* OfflineSign(long int port, char* unSignTx, long int walletIndex, long int addressIndex, char* passwd, char* chain);

// 使用USDT购买云储存空间之前的授权
//
extern __declspec(dllexport) char* ApproveUsdtForBuySpace(long int port, char* chain, char* passwd, char* amount, char* gas, long int walletIndex, long int addressIndex);

// 使用USDT兑换USR之前的授权
//
extern __declspec(dllexport) char* ApproveUsdtForSwapUsr(long int port, char* chain, char* passwd, char* amount, char* gas, long int walletIndex, long int addressIndex);
extern __declspec(dllexport) char* Deposit(long int port, char* chain, char* passwd, char* amount, char* addr, char* gas, long int walletIndex, long int addressIndex);
extern __declspec(dllexport) char* BuySpace(long int port, char* chain, char* passwd, char* amount, char* gas, char* netId, char* orderId, char* packageId, long int walletIndex, long int addressIndex);
extern __declspec(dllexport) char* FreezeTrx(long int port, char* fromAddr, char* passwd, char* resource, char* amount, long int walletIndex, long int addressIndex);
extern __declspec(dllexport) char* UnfreezeTrx(long int port, char* fromAddr, char* passwd, char* resource, char* amount, long int walletIndex, long int addressIndex);
extern __declspec(dllexport) char* WithdrawExpireUnfreezeTrx(long int port, char* fromAddr, char* passwd, long int walletIndex, long int addressIndex);
extern __declspec(dllexport) char* CreateMultiSignAddr(long int walletIndex, long int gas, long int nonceInt, long int currentHeight, char* pwd, char* comment, char* pukArrays);
extern __declspec(dllexport) char* CreateOfflineTxBuild_MultsignPay(long int walletIndex, long int gas, long int amount, long int frozenHeight, char* multAddressStr, char* addressStr, char* pwd, char* multPukStr, char* otherPub);
extern __declspec(dllexport) char* ExportWalletMnemonic(long int port, long int walletIndex, char* pwd);
extern __declspec(dllexport) char* InitWallet(char* jsonStr);
extern __declspec(dllexport) char* SwitchNetwork(long int network);
extern __declspec(dllexport) void UsdtWithdraw(long int port, long int walletIndex, long int addressIndex, char* passwd, char* chain, char* amount, char* toAddr, char* orderId, char* walletAddr, char* gas);
extern __declspec(dllexport) void WithdrawApprove(long int port, long int walletIndex, long int addressIndex, char* passwd, char* amount, char* walletAddr, char* gas);
extern __declspec(dllexport) void StartWsClient(char* serverServer, char* cloudServer);
extern __declspec(dllexport) char* SendMsgOfWs(char* data);
extern __declspec(dllexport) void ReceiveMsgOfWs();
extern __declspec(dllexport) void InitCallBack(GoInt64 port);
extern __declspec(dllexport) char* StartWalletConn(char* walletServer);
extern __declspec(dllexport) char* StartExchangeConn(char* exchangeServer);
extern __declspec(dllexport) char* CloseWalletConn();
extern __declspec(dllexport) char* CloseCloudConn();
extern __declspec(dllexport) char* CloseExchangeConn();
extern __declspec(dllexport) char* CheckWsConnState();
extern __declspec(dllexport) char* Compile(char* ContractName, char* Env, char* MacPath);
extern __declspec(dllexport) char* CompileInput(char* Abi, char* InputData);
extern __declspec(dllexport) char* Analysis(char* Abi, char* Method, char* Comment);
extern __declspec(dllexport) char* CreateOfflineTx(char* keyStorePath, long int walletIndex, char* srcaddress, char* address, char* pwd, char* comment, char* amount, char* gas, char* frozenHeight, char* nonce, char* currentHeight, char* domain, char* domainType);
extern __declspec(dllexport) char* CreateOfflineTxWithGasPay(char* keyStorePath, long int walletIndex, char* srcaddress, char* address, char* pwd, char* comment, char* amount, char* gas, char* frozenHeight, char* nonce, char* currentHeight, char* domain, char* domainType, char* gasPayAddress);
extern __declspec(dllexport) char* CreateOfflineContractTx(char* keyStorePath, long int walletIndex, char* srcaddress, char* address, char* pwd, char* comment, char* amount, char* gas, char* frozenHeight, char* gasPrice, char* nonce, char* currentHeight, char* domain, char* domainType, char* abi, char* source);
extern __declspec(dllexport) char* CreateOfflineContractTxWithGasPay(char* keyStorePath, long int walletIndex, char* srcaddress, char* address, char* pwd, char* comment, char* amount, char* gas, char* frozenHeight, char* gasPrice, char* nonce, char* currentHeight, char* domain, char* domainType, char* abi, char* source, char* gasPayAddress);
extern __declspec(dllexport) char* GetComment(char* tag, char* jsonData);
extern __declspec(dllexport) char* MultDeal(char* tag, char* jsonData, char* keyStorePath, long int walletIndex, char* srcaddress, char* address, char* pwd, char* comment, long long unsigned int amount, long long unsigned int gas, long long unsigned int frozenHeight, long long unsigned int gasPrice, long long unsigned int nonce, long long unsigned int currentHeight, char* domain, long long unsigned int domainType);

// 针对移动端的构建交易（包含普通交易和合约交易）
//
extern __declspec(dllexport) char* BuildOfflineTx(char* keyStorePath, long int walletIndex, char* pwd, char* nonce, char* currentHeight, char* frozenHeight, char* domainType, char* domain, char* tag, char* jsonData);
extern __declspec(dllexport) char* BuildOfflineTxByPirkIndex(char* keyStorePath, long int prikIndex, char* pwd, char* nonce, char* currentHeight, char* frozenHeight, char* domainType, char* domain, char* tag, char* jsonData);

// 检查钱包地址是否合法
//
extern __declspec(dllexport) char* CheckWalletIsLegality(char* addr);

// 授权 取消授权
//
extern __declspec(dllexport) char* CreateOfflineTxBuildAddressBind(char* keyStorePath, long int walletIndex, char* srcaddress, char* bindaddress, char* bindType, char* gas, char* frozenHeight, char* nonceInt, char* currentHeight, char* pwd, char* domain, char* domainType, char* comment);
extern __declspec(dllexport) char* Offer(char* content);
extern __declspec(dllexport) char* Answer(char* content);
extern __declspec(dllexport) char* Candidate(char* content);
extern __declspec(dllexport) char* CloseCall(char* content);
extern __declspec(dllexport) char* GetCallTime();
extern __declspec(dllexport) char* TurnInfo(char* content);
extern __declspec(dllexport) char* GetRealIpByTurn();
extern __declspec(dllexport) void LkGenerateToken(long long int port, char* param);
extern __declspec(dllexport) void UpdateUserState(char* param);
extern __declspec(dllexport) void LkDeleteRoom(char* param);
extern __declspec(dllexport) void SetLkUrl(char* url);
extern __declspec(dllexport) void InitiateCall(long long int port, char* param);
extern __declspec(dllexport) void InviteToJoin(char* param);
extern __declspec(dllexport) void CancelDialing();
extern __declspec(dllexport) void LkRoomInfo(long long int port, char* param);
extern __declspec(dllexport) void LkRoomParticipants(long long int port, char* param);
extern __declspec(dllexport) void LkLeaveRoom(char* param);
extern __declspec(dllexport) char* RunCloudStoreP2p(char* ip, char* netId, char* confStr, long long int port);
extern __declspec(dllexport) char* CheckCloudP2p();
extern __declspec(dllexport) char* GetStorageConf();
extern __declspec(dllexport) char* SetCloudProxy(char* ip);
extern __declspec(dllexport) void CloudStartRpc();
extern __declspec(dllexport) char* UploadFile(char* path, char* extend, char* thumb, char* password);
extern __declspec(dllexport) char* UploadFileByPlatform(char* path, char* extend, char* thumb, char* password, char* platform);
extern __declspec(dllexport) char* UploadFileByPlatformV2(char* path, char* extend, char* thumb, char* password, char* folderID, char* videoResolution, int platform);
extern __declspec(dllexport) void UploadFileTask(char* path, char* extend, char* thumb, char* pwd, char* taskID);
extern __declspec(dllexport) void UploadFileTaskByPlatform(char* path, char* extend, char* thumb, char* pwd, char* taskID, char* platform);
extern __declspec(dllexport) void UploadFileTaskByPlatformV2(char* path, char* extend, char* thumb, char* pwd, char* taskID, char* folderID, char* videoResolution, int platform);
extern __declspec(dllexport) char* UpdateFileName(char* hash, char* name);
extern __declspec(dllexport) char* AsyncUploadSinFile(char* content);
extern __declspec(dllexport) char* AsyncGetUploadProcess(char* content);
extern __declspec(dllexport) char* DownloadFile(char* hash, char* rePath, char* taskID, char* absPath, char* pwd, long long int port);
extern __declspec(dllexport) void DownloadFileTask(char* hash, char* rePath, char* taskID, char* absPath, char* pwd);
extern __declspec(dllexport) char* DelUploadFile(char* hash);
extern __declspec(dllexport) char* GetUploadProgress(char* hash);
extern __declspec(dllexport) char* GetDownloadProgress(char* taskID);
extern __declspec(dllexport) void GetDownloadProgress2(char* taskID);
extern __declspec(dllexport) char* GetFileList(long long int page, long long int limit, char* category);
extern __declspec(dllexport) char* GetAllFileDetail();
extern __declspec(dllexport) char* GetFileInfo(char* hash, long long int port);
extern __declspec(dllexport) char* GetUploadStatus(char* hash);
extern __declspec(dllexport) char* AsyncGetUploadStatus(char* content);
extern __declspec(dllexport) char* AsyncGetUploadStatusWithPwd(char* content);
extern __declspec(dllexport) char* SetKeyValue(char* key, char* value, long long int port);
extern __declspec(dllexport) char* AsyncSetKeyValue(char* content);
extern __declspec(dllexport) char* FileCollection(char* fileHash, char* oldPwd, char* newPwd);
extern __declspec(dllexport) char* GetFileCollectionInfo(char* fileHash, char* oldPwd, char* newPwd);
extern __declspec(dllexport) char* GetKeyValue(char* key, long long int port);
extern __declspec(dllexport) char* AsyncGetKeyValue(char* content);
extern __declspec(dllexport) char* DeleteKeyValue(char* key);
extern __declspec(dllexport) char* AsyncDeleteKeyValue(char* content);
extern __declspec(dllexport) char* GetValues(char* category);
extern __declspec(dllexport) char* GetValuesNotAddPerm(char* category);
extern __declspec(dllexport) char* DeleteValue(char* category, char* key);
extern __declspec(dllexport) char* AsyncDeleteValue(char* content);
extern __declspec(dllexport) char* SetKeyValueByCategory(char* category, char* key, char* value);
extern __declspec(dllexport) char* AsyncSetKeyValueByCategory(char* content);
extern __declspec(dllexport) char* GetKeyValueByCategory(char* category, char* key, long long int port);
extern __declspec(dllexport) char* AsyncGetKeyValueByCategory(char* content);
extern __declspec(dllexport) char* GetValueNotAddPermissions(char* category, char* key);
extern __declspec(dllexport) char* AsyncGetValueNotAddPermissions(char* content);
extern __declspec(dllexport) char* KeyValueList();
extern __declspec(dllexport) char* KeyValueCount();
extern __declspec(dllexport) char* GetAllUploadProgress();
extern __declspec(dllexport) char* GetAllUploadProgressByPlatform(char* platform);
extern __declspec(dllexport) void GetAllUploadProgressTask(char* taskID);
extern __declspec(dllexport) char* AsyncGetAllUploadProgress(char* content);
extern __declspec(dllexport) char* DownloadFileList();
extern __declspec(dllexport) char* AsyncDownloadFileList(char* content);
extern __declspec(dllexport) void GetAllDownloadProcessTask(char* taskID);
extern __declspec(dllexport) char* UpdateDownloadDir(char* path);
extern __declspec(dllexport) char* GetDownloadDir();
extern __declspec(dllexport) char* AddFileDir(char* category, char* dir);
extern __declspec(dllexport) char* MoveFile(char* oldCategory, char* newCategory, char* key);
extern __declspec(dllexport) char* DelFile(char* category, char* hash);
extern __declspec(dllexport) char* RenameFile(char* category, char* name, char* hash, long long int port);
extern __declspec(dllexport) char* QueryFolderDetail(char* category);
extern __declspec(dllexport) char* CollectFile(char* name, char* hash, char* t, char* source, long long int size);
extern __declspec(dllexport) char* GetFileListOfCollection();
extern __declspec(dllexport) char* DelCollectedFile(char* hash);
extern __declspec(dllexport) char* StopDownloadFile(char* taskID);
extern __declspec(dllexport) char* DelProcess(char* hash);
extern __declspec(dllexport) char* ReUpload(char* hash);
extern __declspec(dllexport) char* StartUpload(char* hash);
extern __declspec(dllexport) char* StopUpload(char* hash);
extern __declspec(dllexport) char* GetSpaceInfo();
extern __declspec(dllexport) char* BatchFileSpace(char* path, long long int num);
extern __declspec(dllexport) char* AddFileSpace(char* path);
extern __declspec(dllexport) char* BatchDelFileSpace(char* nums);
extern __declspec(dllexport) char* DelFileSpace(long long int id);
extern __declspec(dllexport) char* DataBySearch();
extern __declspec(dllexport) char* BatchDownload(char* hashs, char* category, char* path);
extern __declspec(dllexport) char* DownloadImgByUrl(char* content);
extern __declspec(dllexport) char* SetDownloadFileNum(int num);
extern __declspec(dllexport) char* DownloadImgByUrlProcess(char* content);
extern __declspec(dllexport) char* CreateThumbImage(char* path);
extern __declspec(dllexport) char* GetFindThumbnailByHash(char* content);
extern __declspec(dllexport) char* GetThumbnailByHash(char* fileHash, char* pwd);
extern __declspec(dllexport) char* IP2Location(char* ip);
extern __declspec(dllexport) char* DeleteDownloadRecord(char* taskID);
extern __declspec(dllexport) char* DeleteDownloadFile(char* hash);
extern __declspec(dllexport) char* BatchDelProcess(char* hash);
extern __declspec(dllexport) char* DelAllProcess();
extern __declspec(dllexport) char* DepositSpaceOfflineSign(char* param);
extern __declspec(dllexport) char* DepositSpaceOfflineSignV1(char* param);
extern __declspec(dllexport) char* ReleaseDepositSpaceOfflineSign(char* param);
extern __declspec(dllexport) char* ReleaseDepositSpaceOfflineSignV1(char* param);
extern __declspec(dllexport) char* DepositEthOfflineSign(char* param);
extern __declspec(dllexport) char* PayoutsOfflineSign(char* param);
extern __declspec(dllexport) char* WithRawOfflineSign(char* param);
extern __declspec(dllexport) char* UnfrozenOfflineSign(char* param);
extern __declspec(dllexport) char* GetUserSpace();
extern __declspec(dllexport) char* GetUserSpaceV2(long long int port);
extern __declspec(dllexport) char* CollectAdd(char* param);
extern __declspec(dllexport) char* CollectDel(char* param);
extern __declspec(dllexport) char* CollectList(char* param);
extern __declspec(dllexport) char* CollectByScore(char* param);
extern __declspec(dllexport) char* GetFileUploadMaxSize();

/*//export InitCloudCallBack
func InitCloudCallBack(port int64) {
	cloud2.WsSetCallBack(port, SendToPortOfWs)
}
*/
extern __declspec(dllexport) void CancelCloudTask(char* taskID);
extern __declspec(dllexport) void ExitProcess();
extern __declspec(dllexport) GoUint8 CheckCloudReady();
extern __declspec(dllexport) char* GetUserSign(char* fileHash);
extern __declspec(dllexport) char* SwapCoin(long long int index, long long int gas, long long int gaslimit, char* token, char* amount, char* code);
extern __declspec(dllexport) char* SwapEthCoin(long long int index, long long int gas, long long int gaslimit, char* code, char* amount);
extern __declspec(dllexport) char* SendCoin(long long int index, long long int gas, long long int gaslimit, char* token, char* code, char* amount, char* iAddress);
extern __declspec(dllexport) char* SendEthCoin(long long int index, long long int gas, long long int gaslimit, char* code, char* amount, char* iAddress);
extern __declspec(dllexport) char* AfterSendCoin(long long int index, long long int gas, long long int gaslimit, char* iAddress, char* amount);
extern __declspec(dllexport) char* UnfrozenCoin(long long int index, long long int gas, long long int gaslimit);
extern __declspec(dllexport) char* DepositCoin(long long int index, long long int gas, long long int gaslimit);
extern __declspec(dllexport) char* UnDepositCoin(long long int index, long long int gas, long long int gaslimit);
extern __declspec(dllexport) char* ApproveCoin(long long int index, long long int gas, long long int gaslimit, char* amount, char* contractAddress);
extern __declspec(dllexport) char* TransferCoin(long long int index, long long int gas, long long int gaslimit, char* amount, char* to, char* contractAddress);
extern __declspec(dllexport) char* Allowance(long long int index, long long int gas, long long int gaslimit, char* contractAddress);
extern __declspec(dllexport) char* AllowanceV1(char* address, char* contractAddress);
extern __declspec(dllexport) char* CheckCode(long long int index, long long int gas, long long int gaslimit, char* code);
extern __declspec(dllexport) char* SuggestGasCoin(long long int index, char* method, char* data);
extern __declspec(dllexport) char* MockSuggestGasCoin(long long int index, char* method, char* data);
extern __declspec(dllexport) char* DepositMinCoin();
extern __declspec(dllexport) char* ApproveGas();
extern __declspec(dllexport) char* UnDepositTimeCoin();
extern __declspec(dllexport) char* UpdateWalletPwd(char* pwd);
extern __declspec(dllexport) char* GetFrozenBalance(char* address);
extern __declspec(dllexport) char* GetUnFrozenBalance(char* address);
extern __declspec(dllexport) char* SetValueRemoteCallData(char* category, char* key, char* value);
extern __declspec(dllexport) char* DeleteValueRemoteCallData(char* category, char* key);
extern __declspec(dllexport) char* GetValueRemoteCallData(char* category, char* key);
extern __declspec(dllexport) char* GetValuesRemoteCallData(char* category, long long int page, long long int limit);
extern __declspec(dllexport) char* ZAddRemoteCallData(char* category, char* member, char* value, long long int score);
extern __declspec(dllexport) char* ZCardRemoteCallData(char* category);
extern __declspec(dllexport) char* ZClearRemoteCallData(char* category);
extern __declspec(dllexport) char* ZCountRemoteCallData(char* category);
extern __declspec(dllexport) char* ZRangeRemoteCallData(char* category, long long int start, long long int stop);
extern __declspec(dllexport) char* ZRangeByScoreRemoteCallData(char* category, long long int min, long long int max, long long int offset, long long int count);
extern __declspec(dllexport) char* ZRemRemoteCallData(char* category, char* member);
extern __declspec(dllexport) char* ZScanRemoteCallData(char* category);
extern __declspec(dllexport) char* ZScoreRemoteCallData(char* category, char* member);
extern __declspec(dllexport) char* ZGetRemoteCallData(char* category, char* member);
extern __declspec(dllexport) char* CheckFilePwd(char* hash, char* pwd, long long int port);
extern __declspec(dllexport) char* CheckFileOwner(char* hash);
extern __declspec(dllexport) char* FileCollectionV1(char* hash, char* filePwd, char* userPwd, short int platform, char* describe, long long int port);
extern __declspec(dllexport) char* CollectionText(char* hash, short int platform, char* describe);
extern __declspec(dllexport) char* GetTmpUploadFileInfo();
extern __declspec(dllexport) char* GetUploadFileInfo(short int platform, long long int port);
extern __declspec(dllexport) char* IMBackupDeleteFile(char* unique);
extern __declspec(dllexport) char* DelUploadFileV1(char* hash, char* unique, short int platform, long long int port);
extern __declspec(dllexport) char* GetDelFileSign(char* hash, char* unique, short int platform);
extern __declspec(dllexport) char* DelUploadFiles(char* data);
extern __declspec(dllexport) char* AddDownloadProcessHash(char* hash);
extern __declspec(dllexport) char* DelDownloadProcessHash(char* hash);
extern __declspec(dllexport) char* AddUploadProcessHash(char* hash);
extern __declspec(dllexport) char* DelUploadProcessHash(char* hash);
extern __declspec(dllexport) char* SetUploadLimit(char* eventData);
extern __declspec(dllexport) char* IMUploadSize(long long int size);
extern __declspec(dllexport) char* CloudUploadSize(long long int size);
extern __declspec(dllexport) char* AsyncResetFilePassword(char* content);
extern __declspec(dllexport) char* ResetFilePassword(char* hash, char* pwd, long long int port);
extern __declspec(dllexport) char* GetUploadSpeed();
extern __declspec(dllexport) char* GetUploadSpeedByHash(char* taskId);
extern __declspec(dllexport) char* GetUploadStatusWithPwd(char* hash, char* pwd);
extern __declspec(dllexport) char* GetValue(char* category, char* key);
extern __declspec(dllexport) char* SetValue(char* category, char* key, char* value);
extern __declspec(dllexport) char* GenSharingLink(char* content, long long int port);
extern __declspec(dllexport) char* GetSharedInfo(char* link, long long int port);
extern __declspec(dllexport) char* DelSharedInfo(char* link);
extern __declspec(dllexport) char* UpdateSharedInfo(char* link, char* content);
extern __declspec(dllexport) char* GetAllShared();
extern __declspec(dllexport) char* ClearShared();
extern __declspec(dllexport) char* HashSharing(char* content, long long int port);
extern __declspec(dllexport) char* DelHashSharedInfo(char* link);
extern __declspec(dllexport) char* GetAllHashShared();
extern __declspec(dllexport) void SetKeyValueByCloudChannel(char* key, char* value, char* taskId);
extern __declspec(dllexport) void GetKeyValueByCloudChannel(char* key, char* taskId);
extern __declspec(dllexport) void DeleteKeyValueByCloudChannel(char* key, char* taskId);
extern __declspec(dllexport) void GetValueNotAddPermissionsByCloudChannel(char* category, char* key, char* taskId);
extern __declspec(dllexport) void GetValueByCloudChannel(char* category, char* key, char* taskId);
extern __declspec(dllexport) void DeleteValueByCloudChannel(char* category, char* key, char* taskId);
extern __declspec(dllexport) void SetValueByCloudChannel(char* category, char* key, char* value, char* taskId);
extern __declspec(dllexport) void ResetFilePasswordByCloudChannel(char* hash, char* pwd, char* taskId);
extern __declspec(dllexport) void GetUploadStatusWithPwdByCloudChannel(char* hash, char* pwd, char* taskId);
extern __declspec(dllexport) void DelUploadFileV1ByCloudChannel(char* hash, char* unique, short int platform, char* taskId);
extern __declspec(dllexport) void GetUploadFileInfoByCloudChannel(short int platform, char* taskId);
extern __declspec(dllexport) void FileCollectionV1ByCloudChannel(char* hash, char* filePwd, char* userPwd, short int platform, char* describe, char* taskId);
extern __declspec(dllexport) void CollectionTextByCloudChannel(char* hash, short int platform, char* describe, char* taskId);
extern __declspec(dllexport) void UploadSinFileByCloudChannel(char* path, char* thumb, short int isEncrypt, short int isOrigin, short int quality, char* taskId);
extern __declspec(dllexport) void GetThumbnailByCloudChannel(char* hash, char* password, char* absPath, char* taskId);
extern __declspec(dllexport) void GenSharingLinkByCloudChannel(char* content, char* taskId);
extern __declspec(dllexport) void GetSharedInfoByCloudChannel(char* link, char* taskId);
extern __declspec(dllexport) void DelSharedInfoByCloudChannel(char* link, char* taskId);
extern __declspec(dllexport) void UpdateSharedInfoByCloudChannel(char* link, char* content, char* taskId);
extern __declspec(dllexport) void GetAllSharedByCloudChannel(char* taskId);
extern __declspec(dllexport) void ClearSharedByCloudChannel(char* taskId);
extern __declspec(dllexport) void HashSharingByCloudChannel(char* content, char* taskId);
extern __declspec(dllexport) void DelHashSharedInfoByCloudChannel(char* link, char* taskId);
extern __declspec(dllexport) void GetAllHashSharedByCloudChannel(char* taskId);

/*
  GetUploadFilesInfoV2 description of function.
  @Param pathFile *C.char Path to the file to be uploaded
  @Return: *C.char JSON response with operation result
*/
extern __declspec(dllexport) char* GetUploadFilesInfoV2(char** paths, int count);
extern __declspec(dllexport) void DecodeDownloadFile(long long int port, char* domain, char* fileHash, char* fPath, char* outDir, char* uPwd);
extern __declspec(dllexport) void InitHttpUploadWithCallBack(long long int port, char* domain, char* thumbPath, char* fPath, char* outDir, short int isEncrypt, short int platform, char* callBackUrl);
extern __declspec(dllexport) void UploadFileTaskByPlatformV3(char* path, char* extend, char* thumb, char* pwd, char* taskID, short int platform, char* callback);
extern __declspec(dllexport) void InitHttpUploadWithCallBackV1(long long int port, char* domain, char* thumbPath, char* fPath, char* outDir, char* pwd, short int platform, char* callBackUrl, char* extend);
extern __declspec(dllexport) void HttAddFileOwner(long long int port, char* domain, char* fileHash, char* filePwd, char* userPwd, short int platform);
extern __declspec(dllexport) void HttDelFile(long long int port, char* domain, char* fileHash, char* unique, short int platform);
extern __declspec(dllexport) void HttDelFileBySign(long long int port, char* domain, char* sign);
extern __declspec(dllexport) char* GetFileDefaultPassword(char* hash);
extern __declspec(dllexport) void InitHttpSocialfiUpload(long long int port, char* domain, char* thumbPath, char* fPath, char* outDir, char* pwd, short int platform, char* callBackUrl, char* extend, short int isTranscode, char* transcodeCallback);

// 构建"创建新回合"的comment
//
extern __declspec(dllexport) char* CreateNewRound(char* userImAddr, char* title, char* imgUrl, long int totalTickets, char* rewardSetsJsonData);

// 构建"审核"的comment
//
extern __declspec(dllexport) char* Audit(long int roundId, long int pass, char* noPassReason);

// 构建"下注"的comment
//
extern __declspec(dllexport) char* Betting(long int roundId, char* userImAddr, long int payTickets, long int freeTickets, char* inviter);

// 构建"管理员权限转让"的comment
//
extern __declspec(dllexport) char* ManagerOwnership(char* newManager);

// 构建"提现奖励"的comment
//
extern __declspec(dllexport) char* WithdrawReward(long int roundId, long int amount);

// 构建"提现项目方收益"的comment
//
extern __declspec(dllexport) char* WithdrawProjectIncome(long int amount);

// 构建"返还活动创建者押金和分红"的comment
//
extern __declspec(dllexport) char* Refund(long int roundId);
extern __declspec(dllexport) char* UploadOssFile(long long int port, char* localFilePath, char* dir, long int isForever);
extern __declspec(dllexport) char* UploadOssFileV2(long long int port, char* localFilePath, char* dir, long int isForever, char* encryptFileName);
extern __declspec(dllexport) void UploadPreSign(long long int port, char* localFilePath, char* dir, long int isForever, char* encryptFileName);
extern __declspec(dllexport) void DownloadOssFile(long long int port, char* localFile, char* targetFile);
extern __declspec(dllexport) char* ReportData(long long int port, long int messageId, char* data);
extern __declspec(dllexport) void DeCryptFile(long long int port, char* filePath, char* targetPath);
extern __declspec(dllexport) void UploadBigFileBySign(long long int port, char* filePath, char* targetDir, long long int partSize, int isForever);
extern __declspec(dllexport) void MergeUploadFile(long long int port, char* objectname, char* uploadID);

#ifdef __cplusplus
}
#endif
