LInet::SendSizeWinCmd
#include " ltwrappr.h "
L_INT LInet::SendSizeWinCmd (plRemoteComp, uCommandID, uWindowID, nLeft, nTop, nWidth, nHeight)
| /* instance of a remote computer */ | |
| L_UINT uCommandID; | /* command id */ | 
| L_UINT uWindowID; | /* window id */ | 
| L_INT nLeft; | /* horizontal position */ | 
| L_INT nTop; | /* vertical position */ | 
| L_INT nWidth; | /* window width */ | 
| L_INT nHeight; | /* window height */ | 
Sends a size window 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 size. This id should be unique for each window. | 
| nLeft | X coordinate of the new origin of the window. | 
| nTop | Y coordinate of the new origin of the window. | 
| nWidth | New width of window. | 
| nHeight | New height of window. | 
Returns
| SUCCESS | This function was successful. | 
| < 1 | An error occurred. Refer to Return Codes. | 
Comments
The remote computer should respond by calling LInet::SendSizeWinRspin its LInet::CommandCallBackfunction.
With this command, the local computer will signal the remote computer to size a window using the specified parameters.
To process responses to commands, a class must be derived from LInet and the LInet::ResponseCallBackmember function must be overridden.
The LInet::CommandCallBackfunction will receive the uWindowID, nLeft, nTop, nWidth and nHeight information in the pParams parameter. The uWindowID information will be in pParams[0]. The nLeft information will be in pParams[1], and so forth.
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::SendSizeWinRsp, LInet::ResponseCallBack, LInet::CommandCallBack, Class Members | 
| Topics: | |
| 
 | 
Example
//This example sends a message to a remote connection to resize the window
//m_uWindowID to be at (30,50) with width = 600 and height = 400.
//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::OnRemoteSendsizewincmd () 
{
   L_INT nRet = SUCCESS;
   
   nRet = m_Inet.SendSizeWinCmd(
      m_pInetRemoteServer,
      GetNextCommandID(),
      m_uWindowID, 
      30,  //left
      50,  //top,
      600, //width
      400  //height
      );
   
   if(nRet != SUCCESS && nRet != ERROR_DATA_QUEUED)
      UpdateStatusbar(TEXT("Error[%d] OnRemoteSendsizewincmd"), 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::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_SIZE_WIN: 
         {
            L_INT  nStatus = SUCCESS; 
            L_INT  nRet; 
            HWND   uWindowID = (HWND)pParams[0].uiValue; 
            L_UINT uLeft   = pParams[1].uiValue; 
            L_UINT uTop    = pParams[2].uiValue; 
            L_UINT uWidth  = pParams[3].uiValue; 
            L_UINT uHeight = pParams[4].uiValue; 
            
            if (IsWndValid((HWND)uWindowID)) 
            {
               nRet = ::SetWindowPos(
                  ::GetParent((HWND)uWindowID), 
                  NULL, 
                  uLeft, 
                  uTop, 
                  uWidth, 
                  uHeight, 
                  SWP_NOOWNERZORDER 
                  ); 
               if (nRet == 0) 
                  nStatus = FAILURE; 
            }
            else
            {
               nStatus = ERROR_INV_PARAMETER; 
            }
            return pMain->m_Inet.SendSizeWinRsp(
                      plConnection, 
                      uCommandID, 
                      0, 
                      NULL, 
                     nStatus); 
         }
         break; 
         
      default: 
         {
            return nStatus; 
         }
      }
   return nStatus; 
}