#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <rt.h>
#include <winerror.h>
#include "SampleAPP.h"
#include "CbMessage.h"


HRESULT MessageReply(CALLBACK_T strCallback)
{
	PTime(FALSE, TRUE);
	PLog(LOG_INFO, "info   : MessageReply() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：なし
	return S_OK;
}

HRESULT MessageClear(CALLBACK_T strCallback)
{
	PTime(FALSE, TRUE);
	PLog(LOG_INFO, "info   : MessageClear() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：なし
	return S_OK;
}

HRESULT MessageGetdatetime(CALLBACK_T strCallback)
{
	PTime(FALSE, TRUE);
	PLog(LOG_INFO, "info   : MessageGetdatetime() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：VARIANT
	strCallback.pvntOutPara->vt = VT_DATE;
	strCallback.pvntOutPara->date = time(NULL);
	return S_OK;
}

HRESULT MessageGetdescription(CALLBACK_T strCallback)
{
	PTime(FALSE, TRUE);
	PLog(LOG_INFO, "info   : MessageGetdescription() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：BSTR
	strCallback.pvntOutPara->vt = VT_BSTR;
	strCallback.pvntOutPara->bstrVal = SysAllocStr(L"Description");
	return S_OK;
}

HRESULT MessageGetdestination(CALLBACK_T strCallback)
{
	PTime(FALSE, TRUE);
	PLog(LOG_INFO, "info   : MessageGetdestination() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：BSTR
	strCallback.pvntOutPara->vt = VT_BSTR;
	strCallback.pvntOutPara->bstrVal = SysAllocStr(L"Destination");
	return S_OK;
}

HRESULT MessageGetnumber(CALLBACK_T strCallback)
{
	PTime(FALSE, TRUE);
	PLog(LOG_INFO, "info   : MessageGetnumber() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：long
	strCallback.pvntOutPara->vt = VT_I4;
	strCallback.pvntOutPara->lVal = 12345;
	return S_OK;
}

HRESULT MessageGetserialnumber(CALLBACK_T strCallback)
{
	PTime(FALSE, TRUE);
	PLog(LOG_INFO, "info   : MessageGetserialnumber() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：
	// TODO: 未使用
	return S_OK;
}

HRESULT MessageGetsource(CALLBACK_T strCallback)
{
	PTime(FALSE, TRUE);
	PLog(LOG_INFO, "info   : MessageGetsource() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：BSTR
	strCallback.pvntOutPara->vt = VT_BSTR;
	strCallback.pvntOutPara->bstrVal = SysAllocStr(L"Source");
	return S_OK;
}

HRESULT MessageGetvalue(CALLBACK_T strCallback)
{
	PTime(FALSE, TRUE);
	PLog(LOG_INFO, "info   : MessageGetvalue() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：VARIANT
	// TODO:
	return S_OK;
}

HRESULT MessageRelease(CALLBACK_T strCallback)
{
	PTime(FALSE, TRUE);
	PLog(LOG_INFO, "info   : MessageRelease() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：なし
	return S_OK;
}
