#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <rt.h>
#include <winerror.h>
#include "SampleAPP.h"
#include "CbTask.h"


HRESULT TaskGetvariable(CALLBACK_T strCallback)
{
	PrintTime(FALSE, TRUE);
	PrintLog(LOG_INFO, "info   : TaskGetvariable() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：VARIANT
	// TODO:
	return S_OK;
}

HRESULT TaskGetvariablenames(CALLBACK_T strCallback)
{
	PrintTime(FALSE, TRUE);
	PrintLog(LOG_INFO, "info   : TaskGetvariablenames() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：VARIANT
	// TODO:
	return S_OK;
}

HRESULT TaskExecute(CALLBACK_T strCallback)
{
	PrintTime(FALSE, TRUE);
	PrintLog(LOG_INFO, "info   : TaskExecute() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：VARIANT
	// TODO:
	return S_OK;
}

HRESULT TaskStart(CALLBACK_T strCallback)
{
	PrintTime(FALSE, TRUE);
	PrintLog(LOG_INFO, "info   : TaskStart() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：なし
	return S_OK;
}

HRESULT TaskStop(CALLBACK_T strCallback)
{
	PrintTime(FALSE, TRUE);
	PrintLog(LOG_INFO, "info   : TaskStop() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：なし
	return S_OK;
}

HRESULT TaskDelete(CALLBACK_T strCallback)
{
	PrintTime(FALSE, TRUE);
	PrintLog(LOG_INFO, "info   : TaskDelete() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：なし
	return S_OK;
}

HRESULT TaskGetfilename(CALLBACK_T strCallback)
{
	PrintTime(FALSE, TRUE);
	PrintLog(LOG_INFO, "info   : TaskGetfilename() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：BSTR
	strCallback.pvntOutPara->vt = VT_BSTR;
	strCallback.pvntOutPara->bstrVal = SysAllocString(L"FileName");
	return S_OK;
}

HRESULT TaskGetattribute(CALLBACK_T strCallback)
{
	PrintTime(FALSE, TRUE);
	PrintLog(LOG_INFO, "info   : TaskGetattribute() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：long
	strCallback.pvntOutPara->vt = VT_I4;
	strCallback.pvntOutPara->lVal = 12345;
	return S_OK;
}

HRESULT TaskGethelp(CALLBACK_T strCallback)
{
	PrintTime(FALSE, TRUE);
	PrintLog(LOG_INFO, "info   : TaskGethelp() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：BSTR
	strCallback.pvntOutPara->vt = VT_BSTR;
	strCallback.pvntOutPara->bstrVal = SysAllocString(L"Help");
	return S_OK;
}

HRESULT TaskGetname(CALLBACK_T strCallback)
{
	PrintTime(FALSE, TRUE);
	PrintLog(LOG_INFO, "info   : TaskGetname() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：
	// TODO: 未使用
	return S_OK;
}

HRESULT TaskGettag(CALLBACK_T strCallback)
{
	PrintTime(FALSE, TRUE);
	PrintLog(LOG_INFO, "info   : TaskGettag() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：
	// TODO: 未使用
	return S_OK;
}

HRESULT TaskPuttag(CALLBACK_T strCallback)
{
	PrintTime(FALSE, TRUE);
	PrintLog(LOG_INFO, "info   : TaskPuttag() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：
	// TODO: 未使用
	return S_OK;
}

HRESULT TaskGetid(CALLBACK_T strCallback)
{
	PrintTime(FALSE, TRUE);
	PrintLog(LOG_INFO, "info   : TaskGetid() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：VARIANT
	// TODO:
	return S_OK;
}

HRESULT TaskPutid(CALLBACK_T strCallback)
{
	PrintTime(FALSE, TRUE);
	PrintLog(LOG_INFO, "info   : TaskPutid() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：なし
	return S_OK;
}

HRESULT TaskRelease(CALLBACK_T strCallback)
{
	PrintTime(FALSE, TRUE);
	PrintLog(LOG_INFO, "info   : TaskRelease() \n");
	PrintReceivePacket(strCallback.vntInPara, strCallback.nInParaNum);
	// 応答：なし
	return S_OK;
}
