LInet::SendSetRectCmd

#include " ltwrappr.h "

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

LInet L_FAR * plRemoteComp;

/* instance of a remote computer */

L_UINT uCommandID;

/* command id */

L_UINT 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. This function is only available in the Internet toolkit.

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 zoom to the rectangle (30,30,80,80)
//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.  GetNextCommandID() is a function that returns a unique command identifier
//5.  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()
void CMainFrame::OnRemoteSendsetrectcmd () 
{
   L_INT nRet = SUCCESS;
   
   nRet = m_Inet.SendSetRectCmdLInet::SendSetRectCmd (
      m_pInetRemoteServer,
      GetNextCommandID(),
      m_uWindowID,
      RECT_SRCALL,
      30,              //left
      30,              //top
      80,              //width
      80               //height
      );
   
   if(nRet != SUCCESS && nRet != ERROR_DATA_QUEUED)
      UpdateStatusbar(TEXT("Error[%d] OnRemoteSendsetrectcmd"), nRet);
}


//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 CMyNet::CommandCallBackLInet::CommandCallBack (LInet L_FAR * plConnection,
                              CMDTYPE     uCommand,
                              L_UINT      uCommandID,
                              L_INT       nError,
                              L_UINT      uParams, 
                              pPARAMETER  pParams, 
                              L_UINT      uExtra,
                              L_CHAR L_FAR*pExtra)
{
   L_INT nStatus = ERROR_FEATURE_NOT_SUPPORTED;
   L_UINT          uBitmapID = (L_UINT)-1;
      
   CMainFrame *pMain;
   pMain = GETMAINFRAME;
   
   if(nError != SUCCESS)
      nStatus = ERROR_TRANSFER_ABORTED;
   else
      switch(uCommand)
      {         
      case CMD_SET_RECT:
         {
            L_INT nStatus = FAILURE;
            uBitmapID = pParams->uiValue;
            
            CNetDoc *pNetDoc = (CNetDoc*)GetDocFromHWnd((HWND)pParams[0].uiValue));
            
            if (pNetDoc != NULL)
            {
               RECT rcRect;
               rcRect.left   = pParams[2].iValue;
               rcRect.top    = pParams[3].iValue;
               rcRect.right  = rcRect.left + pParams[4].iValue;
               rcRect.bottom = rcRect.top + pParams[5].iValue;
               pNetDoc->m_pBitmapWindow->EnableCallBack(TRUE);
               nStatus = pNetDoc->m_pBitmapWindow->ZoomToRect(rcRect);
            }
            return pMain->m_Inet.SendSetRectRspLInet::SendSetRectRsp (plConnection, uCommandID,0,0,nStatus);
         }
      default: 
         {
            return nStatus; 
         }
      }
   return nStatus;
}