#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <rt.h>
#include <winerror.h>
#include "SampleAPP.h"
#include "CbVariable.h"


HRESULT VariableGetdatetime(CALLBACK_T strCallback)
{
	PTime(FALSE, TRUE);
	PLog(LOG_INFO, "info   : VariableGetdatetime() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：VARIANT
	// TODO:
	return S_OK;
}

HRESULT VariableGetvalue(CALLBACK_T strCallback)
{
	PTime(FALSE, TRUE);
	PLog(LOG_INFO, "info   : VariableGetvalue() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：VARIANT
	strCallback.pvntOutPara->vt = VT_R8;
	strCallback.pvntOutPara->dblVal = 3.1415;
	return S_OK;
}

HRESULT VariablePutvalue(CALLBACK_T strCallback)
{
	PTime(FALSE, TRUE);
	PLog(LOG_INFO, "info   : VariablePutvalue() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：なし
	return S_OK;
}

HRESULT VariableGetattribute(CALLBACK_T strCallback)
{
	PTime(FALSE, TRUE);
	PLog(LOG_INFO, "info   : VariableGetattribute() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：long
	strCallback.pvntOutPara->vt = VT_I4;
	strCallback.pvntOutPara->lVal = 12345;
	return S_OK;
}

HRESULT VariableGethelp(CALLBACK_T strCallback)
{
	PTime(FALSE, TRUE);
	PLog(LOG_INFO, "info   : VariableGethelp() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：BSTR
	strCallback.pvntOutPara->vt = VT_BSTR;
	strCallback.pvntOutPara->bstrVal = SysAllocStr(L"Help");
	return S_OK;
}

HRESULT VariableGetname(CALLBACK_T strCallback)
{
	PTime(FALSE, TRUE);
	PLog(LOG_INFO, "info   : VariableGetname() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：
	// TODO: 未使用
	return S_OK;
}

HRESULT VariableGettag(CALLBACK_T strCallback)
{
	PTime(FALSE, TRUE);
	PLog(LOG_INFO, "info   : VariableGettag() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：
	// TODO: 未使用
	return S_OK;
}

HRESULT VariablePuttag(CALLBACK_T strCallback)
{
	PTime(FALSE, TRUE);
	PLog(LOG_INFO, "info   : VariablePuttag() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：
	// TODO: 未使用
	return S_OK;
}

HRESULT VariableGetid(CALLBACK_T strCallback)
{
	PTime(FALSE, TRUE);
	PLog(LOG_INFO, "info   : VariableGetid() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：VARIANT(VT_I4)
	strCallback.pvntOutPara->vt = VT_I4;
	strCallback.pvntOutPara->lVal = 12345;
	return S_OK;
}

HRESULT VariablePutid(CALLBACK_T strCallback)
{
	PTime(FALSE, TRUE);
	PLog(LOG_INFO, "info   : VariablePutid() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：なし
	return S_OK;
}

HRESULT VariableGetmicrosecond(CALLBACK_T strCallback)
{
	PTime(FALSE, TRUE);
	PLog(LOG_INFO, "info   : VariableGetmicrosecond() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：long
	strCallback.pvntOutPara->vt = VT_I4;
	strCallback.pvntOutPara->lVal = 12345;
	return S_OK;
}

HRESULT VariableRelease(CALLBACK_T strCallback)
{
	PTime(FALSE, TRUE);
	PLog(LOG_INFO, "info   : VariableRelease() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：なし
	return S_OK;
}
