#pragma once

#ifdef PCGAME_SDK_EXPORTS
#define PCGAME_SDK_API __declspec(dllexport)
#else
#define PCGAME_SDK_API __declspec(dllimport)
#endif

#include <iostream>

/*
 * @param in_param     utf-8格式 json字符串，包括cpid、游戏id、游戏名称、游戏备案码；
 */
typedef bool(*LGSDKCallBack)(char* in_param);

/**
* @brief LGSDKInit函数
* @param callback     CP的回调函数，用来通知CP登录信息
* @return 返回说明 : false if failed
				    true if succeed 
  使用说明：该接口用来设置回调，调用一次即可
*/
extern "C"	PCGAME_SDK_API bool LGSDKInit(LGSDKCallBack callback);

/**
* @brief LGSDKLogin 函数
* @param in_param     utf-8格式
* @return 返回说明 :0  if success, 
				   10 if LGSDKInit did not be called 
				   20 if loginwindows has already exited
				   30 if params error
	使用说明：该接口用来弹出登录窗口，可多次调用。demo中实现了该接口的异步调用，同步调用等方式；
*/
extern "C"	PCGAME_SDK_API int LGSDKLogin(char* in_param);



/*
设置支付窗口关闭后的回调函数， 如何不设置，则不调用
	回调信息是 utf-8 字符串，{"PayCompleted":"false"}
    PayCompleted ： false-未支付   true-已支付
*/
extern "C" PCGAME_SDK_API bool LGSDKSetPayCallback(LGSDKCallBack callback);

/* 
函数功能：启动支付页面
@param in_param     utf-8格式json， 具体结构参考设计文档
返回说明：0- 成功 ， 30-参数错误
使用说明：用户登录成功后才能调用该接口                                 
*/
extern "C"  PCGAME_SDK_API int LGSDKPay(char* in_param);