#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <rt.h>
#include <winerror.h>
#include "SampleAPP.h"
#include "CbCommand.h"


HRESULT CommandExecute(CALLBACK_T strCallback)
{
	PTime(FALSE, TRUE);
	PLog(LOG_INFO, "info   : CommandExecute() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：VARIANT
	strCallback.pvntOutPara->vt = VT_BSTR;
	strCallback.pvntOutPara->bstrVal = SysAllocStr(L"OK");
	return S_OK;
}

HRESULT CommandCancel(CALLBACK_T strCallback)
{
	PTime(FALSE, TRUE);
	PLog(LOG_INFO, "info   : CommandCancel() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：なし
	return S_OK;
}

HRESULT CommandGettimeout(CALLBACK_T strCallback)
{
	PTime(FALSE, TRUE);
	PLog(LOG_INFO, "info   : CommandGettimeout() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：long
	strCallback.pvntOutPara->vt = VT_I4;
	strCallback.pvntOutPara->lVal = 12345;
	return S_OK;
}

HRESULT CommandPuttimeout(CALLBACK_T strCallback)
{
	PTime(FALSE, TRUE);
	PLog(LOG_INFO, "info   : CommandPuttimeout() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：なし
	return S_OK;
}

HRESULT CommandGetstate(CALLBACK_T strCallback)
{
	PTime(FALSE, TRUE);
	PLog(LOG_INFO, "info   : CommandGetstate() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：long
	strCallback.pvntOutPara->vt = VT_I4;
	strCallback.pvntOutPara->lVal = 12345;
	return S_OK;
}

HRESULT CommandGetparameters(CALLBACK_T strCallback)
{
	PTime(FALSE, TRUE);
	PLog(LOG_INFO, "info   : CommandGetparameters() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：VARIANT
	strCallback.pvntOutPara->vt = VT_BSTR;
	strCallback.pvntOutPara->bstrVal = SysAllocStr(L"Parameter");
	return S_OK;
}

HRESULT CommandPutparameters(CALLBACK_T strCallback)
{
	PTime(FALSE, TRUE);
	PLog(LOG_INFO, "info   : CommandPutparameters() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：なし
	return S_OK;
}

HRESULT CommandGetresult(CALLBACK_T strCallback)
{
	PTime(FALSE, TRUE);
	PLog(LOG_INFO, "info   : CommandGetresult() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：VARIANT
	strCallback.pvntOutPara->vt = VT_I4;
	strCallback.pvntOutPara->lVal = 12345;
	return S_OK;
}

HRESULT CommandGetattribute(CALLBACK_T strCallback)
{
	PTime(FALSE, TRUE);
	PLog(LOG_INFO, "info   : CommandGetattribute() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：long
	strCallback.pvntOutPara->vt = VT_I4;
	strCallback.pvntOutPara->lVal = 12345;
	return S_OK;
}

HRESULT CommandGethelp(CALLBACK_T strCallback)
{
	PTime(FALSE, TRUE);
	PLog(LOG_INFO, "info   : CommandGethelp() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：BSTR
	strCallback.pvntOutPara->vt = VT_BSTR;
	strCallback.pvntOutPara->bstrVal = SysAllocStr(L"Help");
	return S_OK;
}

HRESULT CommandGetname(CALLBACK_T strCallback)
{
	PTime(FALSE, TRUE);
	PLog(LOG_INFO, "info   : CommandGetname() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：
	// TODO: 未使用
	return S_OK;
}

HRESULT CommandGettag(CALLBACK_T strCallback)
{
	PTime(FALSE, TRUE);
	PLog(LOG_INFO, "info   : CommandGettag() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：
	// TODO: 未使用
	return S_OK;
}

HRESULT CommandPuttag(CALLBACK_T strCallback)
{
	PTime(FALSE, TRUE);
	PLog(LOG_INFO, "info   : CommandPuttag() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：
	// TODO: 未使用
	return S_OK;
}

HRESULT CommandGetid(CALLBACK_T strCallback)
{
	PTime(FALSE, TRUE);
	PLog(LOG_INFO, "info   : CommandGetid() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：VARIANT
	// TODO:
	return S_OK;
}

HRESULT CommandPutid(CALLBACK_T strCallback)
{
	PTime(FALSE, TRUE);
	PLog(LOG_INFO, "info   : CommandPutid() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：なし
	return S_OK;
}

HRESULT CommandRelease(CALLBACK_T strCallback)
{
	PTime(FALSE, TRUE);
	PLog(LOG_INFO, "info   : CommandRelease() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：なし
	return S_OK;
}
