LInet::SendSetRectCmd

#include " ltwrappr.h "

L_INT LInet::SendSetRectCmd (plRemoteComp, uCommandID, uWindowID, nType, nLeft, nTop, nWidth, nHeight)

LInet * plRemoteComp;

/* instance of a remote computer */

L_UINT uCommandID;

/* command id */

LONG_PTR uWindowID;

/* window id */

RECTTYPE nType;

/* rectangle type */

L_INT nLeft;

/* horizontal position */

L_INT nTop;

/* vertical position */

L_INT nWidth;

/* vertical position */

L_INT nHeight;

/* height */

Sends a set rectangle 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 receive the command.

nType

Type of rectangle to set. For possible values, refer to RECTTYPE.

nLeft

X coordinate of the origin of the display rectangle.

nTop

Y coordinate of the origin of the display rectangle.

nWidth

Width of the display rectangle.

nHeight

Height of the display rectangle.

Returns

SUCCESS

This function was successful.

< 1

An error occurred. Refer to Return Codes.

Comments

The remote computer should respond by calling LInet::SendSetRectRspin its LInet::CommandCallBackfunction.

The LInet::CommandCallBackfunction will receive the uWindowID, nType, nLeft, nTop, nWidth and nHeight information in the pParams parameter. The uWindowID information will be in pParams[0]. The nType information will be in pParams[1], and so forth.

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

This command is only beneficial to windows that have a bitmap associated with them.

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::SendSetRectRsp, 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 create a window.
//It is assumed that:
//1.  the network as been started (LInet::StartUp()) 
//2.  a connection has been established with a remote server (LInet::m_Inet.Connect())
class LUserNet6 : 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, TEXT("E:\\Program Files\\LEAD Technologies\\LEADTOOLS 16\\Images\\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);
};
LUserNet6 m_ClientInet;
L_INT LInet__SendSetRectCmdExample(LInet * pInetRemoteServer, L_UINT uWindowID)
{
   L_INT nRet = SUCCESS;
   nRet = m_ClientInet.SendSetRectCmd(
      pInetRemoteServer,
      0,
      uWindowID, 
      RECT_SRCALL,
      30,              //left
      30,              //top
      80,              //width
      80               //height
      );
   if(nRet != SUCCESS && nRet != ERROR_DATA_QUEUED)
      return nRet;
   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
L_INT LUserNet6::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_SET_RECT:
         {
            //Add your code for zooming
         } 
         break;
         default: 
         {
            return nStatus; 
         }
      }
   }
   return nStatus;
}