LInet::SendSetRectCmd
#include " ltwrappr.h "
L_INT LInet::SendSetRectCmd (plRemoteComp, uCommandID, uWindowID, nType, nLeft, nTop, nWidth, nHeight)
/* 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: |
|
|
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;
}