LInet::SendCloseWinCmd

#include " ltwrappr.h "

L_INT LInet::SendCloseWinCmd (plRemoteComp, uCommandID, uWindowID)

LInet * plRemoteComp;

/* instance of a remote computer */

L_UINT uCommandID;

/* command id */

LONG_PTR uWindowID;

/* window id */

Sends a close window command to a remote computer.

Parameter

Description

plRemoteComp

Instance of the remote computer to which the command will be sent.

uCommandID

Command ID. Each command sent by a member of a connection should have a unique ID. Since a member of a connection may send several commands, this ID allows that member to identify when a specific command request has been completed.

uWindowID

The id of the window to close.

Returns

SUCCESS

This function was successful.

< 1

An error occurred. Refer to Return Codes.

Comments

The remote computer should respond by calling LInet::SendCloseWinRsp in its LInet::CommandCallBack function.

The LInet::CommandCallBackfunction will receive the uWindowID information in the pParams parameter. The uWindowID information will be in pParams[0].

To process responses to commands, a class must be derived from LInet and the LInet::ResponseCallBackmember function must be overridden.

Required DLLs and Libraries

LTNET

For a listing of the exact DLLs and Libraries needed, based on the toolkit version, refer to Files To Be Included With Your Application.

See Also

Functions:

LInet::SendCloseWinRsp, LInet::ResponseCallBack, LInet::CommandCallBack, Class Members

Topics:

Sending Commands and Responses

 

A Client Server Diagram: Sending Commands and Responses

Example

//This example sends a message to a remote connection to close a window

//It is assumed that:

//1. m_Inet and m_pInetRemoteServer are an object of the class LInet.

//2. the network as been started (LInet::StartUp())

//3. a connection has been established with a remote server (LInet::m_Inet.Connect())

//4. UpdateStatusbar() is a function that displays a message in the status bar

//6. m_uWindowID is a window id that is received in the LInet::ResponseCallBack() as a result

// of a call to m_Inet.SendCreateWinCmd()

#define MAKE_IMAGE_PATH(pFileName) TEXT("C:\\Users\\Public\\Documents\\LEADTOOLS Images\\")pFileName
enum
{
   CMD_FLIP = CMD_USER_CUSTOM,
   CMD_GET,
   CMD_REVERSE,
   CMD_90,
   CMD_180,
   CMD_SHEAR,
   CMD_RESIZE,
   CMD_POSTERIZE,
   CMD_NOISE,
   CMD_OILIFY,
   CMD_RESOLUTION,
   CMD_INVERT,
   CMD_CONTRAST,
   CMD_SATURATION,
   CMD_GAMMA,
   CMD_LOADPATH
};
class LUserNet : public LInet
{
public:
   L_INT  OnConnect(LInet *plConnection, L_INT nError)
   {
      L_INT   nRet = SUCCESS;
      L_CHAR  *pszHostName;
      L_TCHAR strMsg[L_MAXPATH];
      
      if(nError != SUCCESS)
      {
         wsprintf(strMsg, _T("Error[%d]: OnConnect"), nRet);
         MessageBox(NULL, strMsg, 0 , 0);
         return nError;
      }
      
      // Get the remote computer name   
      if ((pszHostName = plConnection->GetHostName(HOST_NAME_IP)) == NULL)      
         return FAILURE;   
      wsprintf(strMsg, _T("OnConnect: Connected to %hs"), (LPTSTR)pszHostName);
      MessageBox(0, strMsg, 0, 0);
      this->SendLoadCmd(plConnection, CMD_LOAD, MAKE_IMAGE_PATH(TEXT("IMAGE1.CMP")));
      return nRet;
   }
   L_INT CommandCallBack (LInet * plConnection,
                          CMDTYPE     uCommand,
                          L_UINT      uCommandID,
                          L_INT       nError,
                          L_UINT      uParams, 
                          pPARAMETER  pParams, 
                          L_UINT      uExtra,
                          L_CHAR*pExtra);
};
LUserNet m_ClientInet;
L_INT LInet__SendCloseWinCmdExample(LInet *pInetRemoteServer, L_UINT uWindowID)
{
   m_ClientInet.SendCloseWinCmd(
               pInetRemoteServer,
               1000,
               uWindowID
               );
   return SUCCESS;
}
//The CommandCallBack() is processed on the server
//To process the commands sent to the computer, you must:
//1. Derive a class from LInet
//2. Override the CommandCallBack member function
//
//Assume that 
//1. m_Inet is an object of the class CMyNet (derived from LInet).
//2. the network as been started (LInet::StartUp()) 
//3. a connection has been established with a remote client
//4. UpdateStatusbar() displays a message in the status bar
//5. m_BitmapList maintains a list of LBitmapWindow objects
L_INT LUserNet::CommandCallBack (LInet * plConnection,
                              CMDTYPE     uCommand,
                              L_UINT      uCommandID,
                              L_INT       nError,
                              L_UINT      uParams, 
                              pPARAMETER  pParams, 
                              L_UINT      uExtra,
                              L_CHAR*pExtra)
{
   UNREFERENCED_PARAMETER(pExtra);
   UNREFERENCED_PARAMETER(uExtra);
   UNREFERENCED_PARAMETER(uParams);
   UNREFERENCED_PARAMETER(pParams);
   UNREFERENCED_PARAMETER(uCommandID);
   UNREFERENCED_PARAMETER(plConnection);
   L_INT nStatus = ERROR_FEATURE_NOT_SUPPORTED;
   if(nError != SUCCESS)
      nStatus = ERROR_TRANSFER_ABORTED;
   else
      switch(uCommand)
   {
      case CMD_CLOSE_WIN:
         {
            //Add your code here
         } 
         break;
      default: 
         {
            return nStatus; 
         }
   }
   return nStatus;
}