#pragma once

#include "GobiApiService.h"

class CFuncList;

class CGobiApiDev : public CGobiApiService
{
public:
	CGobiApiDev(HMODULE hQCDll);
	~CGobiApiDev(void);

	BOOL GetAvailFuncList(CFuncList* pFuncList);
	UINT ExecuteFunctions(CFuncList* pFuncList, UINT &nTotalExec);

	static BOOL FuncStart(CParamList* pParams = NULL);
	static BOOL FuncQCWWAN2kEnumerateDevices(CParamList* pParams = NULL);
	static BOOL FuncQCWWANConnect(CParamList* pParams = NULL);
	static BOOL FuncQCWWAN2kConnect(CParamList* pParams = NULL);
	static BOOL FuncQCWWANDisconnect(CParamList* pParams = NULL);
	static BOOL FuncQCWWANGetConnectedDeviceID(CParamList* pParams = NULL);
	static BOOL FuncQCWWAN2kGetConnectedDeviceID(CParamList* pParams = NULL);
	static BOOL FuncSwiSetDeviceRemovalCallback(CParamList* pParams = NULL);
	static BOOL FuncInvokeApiCrash(CParamList* pParams = NULL);

protected:
	static const TableFuncEntry m_TableFunc[];
	static CParamList m_sQCWWAN2kConnect;
	static CParamList m_sSetDeviceRemovalCallback;
	static CParamList m_sInvokeApiCrash;
};
