InetReceiveCmd Example for C++ 5.0 and later
Note: |
This is not a complete example for handling events, some steps have been omitted. For a complete example of how to handle events, refer to the example Initializing a Computer as a Server and Accepting Connections. |
// my user defined commands
#define INETCMD_FLIP INETCMD_USER_CUSTOM
void CRasterInetSink::OnInetReceiveCmd(short
iComputer, short InetCommand, long nCommandID, short nError, struct ILEADRasterInetPacket
* Params, long nExtraDataSize, ILEADRasterVariant * ExtraData)
{
short nStatus;
CString szOut;
CString szTmp;
ILEADRasterInetPacket *Packet = Params;
short nRet;
nStatus = ERROR_FEATURE_NOT_SUPPORTED;
szOut.Format(TEXT("Command %d id=%d, nError=%d nParams=%d
received"),
InetCommand, nCommandID, nError, Packet->GetParamCount());
if(nExtraDataSize > 0)
{
szTmp.Format(TEXT(", nExtraDataSize=%d"),
nExtraDataSize);
szOut = szOut + szTmp;
}
OutputDebugString(szOut);
OutputDebugString(TEXT("\n"));
if(nError != 0)
nStatus = ERROR_TRANSFER_ABORTED;
else
{
switch(InetCommand)
{
case INETCMD_LOAD:
//
check the validity of the parameters
if((Packet->GetParamCount()
== 4) && (Packet->GetParamType(0) == PARAM_TYPE_STRING) &&
(Packet->GetParamType(1) == PARAM_TYPE_INT32) && (Packet->GetParamType(2)
== PARAM_TYPE_INT32) &&
(Packet->GetParamType(3) == PARAM_TYPE_UINT32))
{
//NOTE:
this is a function you must create
nStatus
= ProcessLoadCommand(Packet->GetParamValue(0)->StringValue, (short)Packet->GetParamValue(1)->LongValue
);
if(nStatus
!= 0)
nStatus
= ERROR_INV_PARAMETER; // invalid parameters
m_pDlg->m_pRasterInet->InetSendLoadRsp(nCommandID,
0, 0, NULL, nStatus);
return;
}
break;
case INETCMD_CREATE_WIN:
//
check the validity of the parameters
if((Packet->GetParamCount()
== 8) && (Packet->GetParamType(0) == PARAM_TYPE_STRING) &&
(Packet->GetParamType(1) == PARAM_TYPE_STRING) && (Packet->GetParamType(2)
== PARAM_TYPE_UINT32) &&
(Packet->GetParamType(3) == PARAM_TYPE_INT32) && (Packet->GetParamType(4)
== PARAM_TYPE_INT32) &&
(Packet->GetParamType(5) == PARAM_TYPE_INT32) && (Packet->GetParamType(6)
== PARAM_TYPE_INT32) &&
(Packet->GetParamType(7) == PARAM_TYPE_UINT32))
{
long
nWindowID;
//NOTE:
this is a function you must create
nWindowID
= ProcessCreateWinCommand(Packet->GetParamValue(1)->StringValue,
Packet->GetParamValue(3)->LongValue ,
Packet->GetParamValue(4)->LongValue ,
Packet->GetParamValue(5)->LongValue ,
Packet->GetParamValue(6)->LongValue );
nRet
= m_pDlg->m_pRasterInet->InetSendCreateWinRsp(nCommandID,
nWindowID, 0, NULL, 0);
return;
}
break;
case INETCMD_ATTACH_BITMAP:
if((Packet->GetParamCount()
== 2) && (Packet->GetParamType(0) == PARAM_TYPE_UINT32) &&
(Packet->GetParamType(1) == PARAM_TYPE_UINT32))
{
//NOTE:
this is a function you must create
nStatus
= ProcessAttachBitmapCommand(Packet->GetParamValue(0)->DoubleValue
,
Packet->GetParamValue(1)->DoubleValue);
nRet
= m_pDlg->m_pRasterInet->InetSendAttachBitmapRsp(nCommandID, 0,
NULL, nStatus);
return;
}
break;
case INETCMD_SAVE:
if((Packet->GetParamCount()
== 6) && (Packet->GetParamType(0) == PARAM_TYPE_STRING) &&
(Packet->GetParamType(1) == PARAM_TYPE_UINT32) && (Packet->GetParamType(2)
== PARAM_TYPE_INT32) &&
(Packet->GetParamType(3) == PARAM_TYPE_INT32) && (Packet->GetParamType(4)
== PARAM_TYPE_INT32) &&
(Packet->GetParamType(5) == PARAM_TYPE_UINT32))
{
//NOTE:
this is a function you must create
nStatus
= ProcessSaveCommand(Packet->GetParamValue(0)->StringValue,
Packet->GetParamValue(1)->DoubleValue,
Packet->GetParamValue(2)->LongValue,
Packet->GetParamValue(3)->LongValue,
Packet->GetParamValue(4)->LongValue,
Packet->GetParamValue(5)->DoubleValue);
nRet
= m_pDlg->m_pRasterInet->InetSendSaveRsp(nCommandID,
0, NULL, nStatus);
return;
}
else
nStatus
= ERROR_INV_PARAMETER;
break;
case INETCMD_FLIP:
if((Packet->GetParamCount()
== 1) && (Packet->GetParamType(0) == PARAM_TYPE_UINT32))
//NOTE:
this is a function you must create
nStatus
= ProcessFlipCommand(Packet->GetParamValue(0)->DoubleValue );
else
nStatus
= ERROR_INV_PARAMETER;
break;
}
}
//return an error response
m_pDlg->m_pRasterInet->InetSendRsp((InetCmdType)InetCommand,
nCommandID, NULL, 0, NULL, nStatus);
}