home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 18 REXX / 18-REXX.zip / vrxda.zip / vrxda.INF (.txt) < prev    next >
OS/2 Help File  |  1995-08-29  |  130KB  |  1,965 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. VRDistributedConnection Object ΓòÉΓòÉΓòÉ
  3.  
  4. The Distributed Connection Object allows you to create true Client/Server 
  5. applications with VX-REXX version 2.1 or greater. 
  6.  
  7. The Distibuted Connection Object hides the complexity of the supported 
  8. communication protocols. 
  9.  
  10.     Several methods of interprocess and cross-network communication are 
  11.     available for OS/2. However, each has a different programming interface. 
  12.     This means that a programmer must learn different ways to accomplish the 
  13.     same task, depending on the protocol in use. 
  14.  
  15.     The Distibuted Connection Object provides a single, consistent programming 
  16.     interface to any of the three supported communication protocols: OS/2 named 
  17.     pipes, NetBIOS, and APPC by using IBM* Distributed Application/2 services. 
  18.     The programmer must therefore learn only one interface in order to use 
  19.     multiple protocols. 
  20.  
  21.  It allows runtime selection of communication protocol. 
  22.  
  23.     Ordinarily, the programmer must decide when writing an application which 
  24.     communication protocol to use. If it becomes necessary to change protocols, 
  25.     the application must be rewritten. 
  26.  
  27.     Because the Distibuted Connection Object uses the same APIs regardless of 
  28.     the underlying protocol, the selection of protocol need not be made until 
  29.     run time. This means that the protocol can be changed without access to 
  30.     source code and without recompiling. 
  31.  
  32.     It also means that a distributed application can be developed and tested 
  33.     first on a single machine using OS/2 named pipes and later moved to span a 
  34.     network using NetBIOS or APPC without recoding. 
  35.  
  36.  The Distibuted Connection Object supports three communication protocols: 
  37.  
  38.     Named pipes    A form of OS/2 interprocess communication that uses 
  39.                    file-system calls to transfer data between processes running 
  40.                    on the same workstation. Named-pipes connections across a 
  41.                    network are not supported. 
  42.  
  43.     NetBIOS        A communications programming interface that supports 
  44.                    peer-to-peer connections between applications running on a 
  45.                    LAN. 
  46.  
  47.     APPC           Advanced Program-to-Program Communication, an implementation 
  48.                    of the IBM* Systems Network Architecture (SNA) LU 6.2 
  49.                    protocol. APPC allows distribution of applications across an 
  50.                    SNA network. 
  51.  
  52.  
  53. ΓòÉΓòÉΓòÉ 1.1. Setting Up Your System ΓòÉΓòÉΓòÉ
  54.  
  55.  
  56. ΓòÉΓòÉΓòÉ <hidden> SUWin ΓòÉΓòÉΓòÉ
  57.  
  58.  o Named-Pipes 
  59.  
  60.  o NetBIOS protocol 
  61.  
  62.  o APPC Protocol 
  63.  
  64.  
  65. ΓòÉΓòÉΓòÉ <hidden> NetBIOS Protocol ΓòÉΓòÉΓòÉ
  66.  
  67. If you plan to use the NetBIOS protocol: 
  68.  
  69.  o You must have one of the following installed on your computer: 
  70.  
  71.     - The Requester feature of IBM LAN Server, in which case any NetBIOS 
  72.       communication partners must also have an IBM LAN requester installed 
  73.  
  74.     - Novell** NetWare** with the Novell NetBIOS emulator, in which case any 
  75.       NetBIOS communication partners must also have the Novell NetWare 
  76.       requester installed 
  77.  
  78.    Distributed Application/2 supports two NetBIOS interfaces: 
  79.  
  80.     - IBM NetBIOS 3.0, used by the IBM LAN requester 
  81.  
  82.     - IBM LAN Server NetBIOS, also called NetBIOS Submit, used by either the 
  83.       IBM LAN requester or Novell NetWare's NetBIOS emulator. 
  84.  
  85.    If you are running Novell NetWare, you must use the IBM LAN Server NetBIOS 
  86.    interface. To select this interface, enter a value of 0 in the NetBIOS 
  87.    maximum sessions field of the connection profile. With the LAN Server 
  88.    interface, NetBIOS sessions are allocated on a systemwide, rather than 
  89.    per-process, basis. 
  90.  
  91.  o You must select NetBIOS in the Protocol field of the Connection Profile. 
  92.  
  93.  o You might need to modify the LAN Transport Protocol settings for NetBIOS.. 
  94.    Remember that each connection the system opens requires one NetBIOS session. 
  95.  
  96.  o You must install the NetBIOS Daemon on a work-station where connections are 
  97.    accepted. 
  98.  
  99.  
  100. ΓòÉΓòÉΓòÉ <hidden> APPC protocol ΓòÉΓòÉΓòÉ
  101.  
  102. If you plan to use the APPC protocol: 
  103.  
  104.  o You must have Communications Manager/2 or OS/2 Extended Services installed 
  105.    on your computer. 
  106.  
  107.  o You must select APPC in the Protocol field of the Connection Profile. 
  108.  
  109.  o The connection profile must specify: 
  110.  
  111.     - a TP name defined on the server machine 
  112.  
  113.     - a partner type of Distributed Application/2 Native APPC is not guaranteed 
  114.       to work with the Distributed Connection Object. 
  115.  
  116.     - the local LU alias or pool ID and partner LU alias or name, both of which 
  117.       must be defined in the Communications Manager APPC configuration 
  118.  
  119.     - what data conversion to perform (remember that the partner code page is 
  120.       the code page of the server, or of the native APPC partner) 
  121.  
  122.     - a timeout value (in the Millisecond wait for open field) that matches the 
  123.       RECEIVE_ALLOCATE_TIMEOUT and, if applicable, INCOMING_ALLOCATE_TIMEOUT 
  124.       values in the TP definition 
  125.  
  126.  o On each client machine: 
  127.  
  128.     - The connection profile must be in a directory listed on the system's 
  129.       DPATH. 
  130.  
  131.     - The APPC configuration must define any SNA mode names, local LU aliases, 
  132.       and partner LU aliases or names specified in the connection profile. For 
  133.       more information, see the APPC Programming Reference. 
  134.  
  135.  o On each server machine: 
  136.  
  137.     - The connection profile must be in a directory listed on the system's 
  138.       DPATH. 
  139.  
  140.     - The APPC configuration must define any SNA mode names and TP names 
  141.       specified in the connection profile. For more information, see the APPC 
  142.       Programming Reference. 
  143.  
  144.     - If the server program uses Distributed Application/2, the TP definition 
  145.       should specify a SYNC_LEVEL of NONE or EITHER. 
  146.  
  147.  Note:  Several restrictions apply to character data conversion involving DBCS 
  148.  code pages: 
  149.  
  150.  o When conversion is between DBCS code pages, the maximum amount of data that 
  151.    can be sent at one time is 16,000 bytes. Data conversion errors might result 
  152.    if larger blocks of data are sent. 
  153.  
  154.  o To avoid data conversion errors, ensure that any character data being 
  155.    converted to EBCDIC from a PC DBCS code page (such as JISCII) does not end 
  156.    in a DBCS lead byte. 
  157.  
  158.    If a trailing lead byte is detected during translation, Distributed 
  159.    Application/2 will save it and prepend it to the next buffer before 
  160.    translation. In this event, the next buffer must start with the second byte 
  161.    of the character. This capability may be useful for applications that send 
  162.    bulk data in multiple buffers (such as a file transfer program) and do not 
  163.    perform any checking for split DBCS characters. 
  164.  
  165.  o Any EBCDIC data sent by a Distributed Application/2 application or a native 
  166.    APPC partner must be correctly bracketed by SO/SI control characters and be 
  167.    less than 16,000 bytes. Otherwise, data conversion errors will occur. 
  168.  
  169.  
  170. ΓòÉΓòÉΓòÉ <hidden> Named-Pipes Protocol ΓòÉΓòÉΓòÉ
  171.  
  172. If you are using the named pipes protocol, you might not need to use a 
  173. connection profile. If Distributed Application/2 finds no connection profile 
  174. for a symbolic name, it will do the following: 
  175.  
  176.   1. Assume that the destination program is local and that the named pipes 
  177.      protocol should be used 
  178.  
  179.   2. Assume that the symbolic name specified by the calling program is the name 
  180.      of the program to start 
  181.  
  182.   3. Search for a FILENAME.CMD in the current directory, where FILENAME is the 
  183.      specified symbolic name 
  184.  
  185.   4. If no .CMD is found, search for FILENAME.EXE in the current directory 
  186.  
  187.   5. If no .EXE is found, return an error to the calling program 
  188.  
  189.  
  190. ΓòÉΓòÉΓòÉ 1.2. Connection Profiles ΓòÉΓòÉΓòÉ
  191.  
  192. Distributed Connection Objects use Distributed Application/2 services. You can 
  193. modify these services at any time by editing the IBMDABB.CP file using the 
  194. Profile Editor. 
  195.  
  196. Distributed Application/2 keeps runtime connection information in connection 
  197. profiles. These profiles are stored in a file called IBMDABB.CP, which must be 
  198. located in a directory listed on the DPATH of your system. If multiple files 
  199. called IBMDABB.CP exist on the DPATH, all of them will be searched. 
  200.  
  201. When a program opens a connection to another program using Distributed 
  202. Application/2, IBMDABB.CP is checked for that destination's connection profile. 
  203. This provides the Distributed Application/2 with the details of how to open the 
  204. connection. This information includes: 
  205.  
  206.  o The communication protocol to use (named pipes, NetBIOS, or APPC) 
  207.  o The name of the destination program (for named pipes and NetBIOS) or the 
  208.    APPC transaction program (for APPC) 
  209.  o Where to find the destination program (if it's across a network) 
  210.  o Protocol-specific information 
  211.  
  212.  The Distributed Connection Object consults the connection profile at run time, 
  213.  so a profile can be modified at any time to change protocols or other 
  214.  connection details. 
  215.  
  216.  Because the connection profile is checked at run time, a copy of IBMDABB.CP 
  217.  must be accessible from each computer. Each computer can have its own copy, or 
  218.  multiple computers can share a single copy on a LAN. If separate copies are 
  219.  used, the profile for each connection should be the same for both client and 
  220.  server. 
  221.  
  222.  For NetBIOS communications will have to run the NetBIOS Daemon on the server 
  223.  machine and you may also need to modify the LAN Transport Protocol settings. 
  224.  
  225.  
  226. ΓòÉΓòÉΓòÉ 1.2.1. Editing Connection Profiles ΓòÉΓòÉΓòÉ
  227.  
  228.  
  229. ΓòÉΓòÉΓòÉ <hidden> Prof ΓòÉΓòÉΓòÉ
  230.  
  231. When you open the profile editor, you will see a window with one or more 
  232. profiles. To edit one of these, double-click on the icon: this will bring up a 
  233. notebook where you can define the communication profile. The profile editor 
  234. notebook is composed of 4 pages: 
  235.  
  236. Common Page
  237. NetBIOS Configuration
  238. APPC Configuration 1
  239. APPC Configuration 2
  240.  
  241.  
  242. ΓòÉΓòÉΓòÉ <hidden> Profex ΓòÉΓòÉΓòÉ
  243.  
  244.  
  245. ΓòÉΓòÉΓòÉ 1.2.2. Common Page ΓòÉΓòÉΓòÉ
  246.  
  247.  
  248. ΓòÉΓòÉΓòÉ <hidden> page1 ΓòÉΓòÉΓòÉ
  249.  
  250. Here you can choose the protocol that you wish to use and whether you want to 
  251. use User Profile Management to implement security. 
  252.  
  253. Named Pipes 
  254. You can only use named pipes to communicate locally. If you are networked you 
  255. will need to use either NetBIOS or APPC if you have Communications Manager/2. 
  256.  
  257. NetBIOS 
  258. This is the recommended protocol for LAN systems. If you choose this protocol, 
  259. you must fill in the sections on the second page and ensure that you start the 
  260. NetBIOS Daemon on the server work-station. 
  261.  
  262. APPC 
  263. Use of this option requires Communications Manager/2 to be installed. If you 
  264. choose this protocol, you must fill in the sections on the third and fourth 
  265. pages. 
  266.  
  267. Sybolic Name 
  268. Ensure that the Sybolic Name is the same in the profile and for the Client and 
  269. Server Distributed Connection Object ConnectionName property. 
  270.  
  271. Note: 
  272. The Sybolic Name Must be unique for each connection profile and no longer than 
  273. 8 characters long (A-Z and 0-9). 
  274.  
  275.  
  276. ΓòÉΓòÉΓòÉ <hidden> Page1ex ΓòÉΓòÉΓòÉ
  277.  
  278.  
  279. ΓòÉΓòÉΓòÉ 1.2.3. NetBIOS Configuration ΓòÉΓòÉΓòÉ
  280.  
  281.  
  282. ΓòÉΓòÉΓòÉ <hidden> page2 ΓòÉΓòÉΓòÉ
  283.  
  284. NetBIOS Server Machine 
  285. This field MUST contain the same name that is used to start the NetBIOS Daemon 
  286. on the server work-station. This must be a valid UNC name consisting of up to 8 
  287. characters (A-Z and 0-9). 
  288.  
  289. Note: 
  290. The server work-station does not have to be an IBM LAN Server. 
  291.  
  292. NetBIOS maximum sessions 
  293. This field sets the maximum of concurrent clients that can connect to the 
  294. server. If you need more connections, increase this value (see LAN Transport 
  295. Protocol Settings for NetBIOS.). 
  296.  
  297. Note: 
  298. The program MUST be foreground and Queued. 
  299.  
  300.  
  301. ΓòÉΓòÉΓòÉ <hidden> page2ex ΓòÉΓòÉΓòÉ
  302.  
  303.  
  304. ΓòÉΓòÉΓòÉ 1.2.4. APPC Configuration 1 ΓòÉΓòÉΓòÉ
  305.  
  306.  
  307. ΓòÉΓòÉΓòÉ <hidden> page3 ΓòÉΓòÉΓòÉ
  308.  
  309. if you choose this option, you will need to set the following items using 
  310. Communications Manager/2 and match the entries on the APPC pages: 
  311.  
  312.  o On the client machine the following items in the Communications Manager 
  313.    Configuration File must be defined and matched with the entries in the 
  314.    profile: 
  315.  
  316.      1. SNA mode name matching the name defined in SNA mode name: of the 
  317.         connection profile 
  318.      2. Local LU alias matching  the Local LU alias name: field in the 
  319.         connection profile or at least the first 2 characters matching the 
  320.         Local LU pool identifier: field 
  321.      3. Partner LU alias matching the PLU alias name: field if alias is chosen 
  322.         in the PLU identifier: field 
  323.  
  324.  o On the server machine the following items in the Communications Manager 
  325.    Configuration File must be defined and matched: 
  326.  
  327.      1. There should be a Transaction Program (TP) defined with the  name which 
  328.         matched with the SNA mode name: in the connection profile. This would 
  329.         be the full path name of your server program. 
  330.      2. The local LU name should also match the Fully qualified PLU name: in 
  331.         the connection profiles of the clients. 
  332.  
  333.  
  334. ΓòÉΓòÉΓòÉ <hidden> Page3ex ΓòÉΓòÉΓòÉ
  335.  
  336.  
  337. ΓòÉΓòÉΓòÉ 1.2.5. APPC Configuration 2 ΓòÉΓòÉΓòÉ
  338.  
  339.  
  340. ΓòÉΓòÉΓòÉ <hidden> Page4 ΓòÉΓòÉΓòÉ
  341.  
  342. DO NOT CHANGE ANY SETTINGS ON THIS PAGE if both your clients and server 
  343. processes use the Distributed Connection Object. This page only applies if one 
  344. of the partners is a Native APPC program. 
  345.  
  346. For the Distributed Connection Object set up the programs as: 
  347.  
  348.  o Partner type = Application Specific 
  349.  o Data conversion = No character data conversion 
  350.  
  351.  
  352. ΓòÉΓòÉΓòÉ <hidden> Page4ex ΓòÉΓòÉΓòÉ
  353.  
  354.  
  355. ΓòÉΓòÉΓòÉ 1.2.6. NetBIOS Daemon ΓòÉΓòÉΓòÉ
  356.  
  357. If your system needs to be able to accept NetBIOS connections from other 
  358. machines, Distributed Application/2 requires a NetBIOS daemon to be running. 
  359. The daemon identifies the NetBIOS machine name of your server. The following 
  360. statement starts the NetBIOS daemon: 
  361.  
  362. ADDNETBL name [/N] 
  363.  
  364. where name is the NetBIOS machine name you want to assign to your computer. The 
  365. machine name can be up to 8 characters long and can contain characters A-Z and 
  366. 0-9. It must be unique on the network. 
  367.  
  368. Note: 
  369. This name must be same as the Server Machine Name in the Connection Profile. 
  370.  
  371. The /N switch is optional and indicates that the daemon should use the IBM LAN 
  372. Server NetBIOS (NetBIOS Submit) interface. This is required if the server is 
  373. using the Novell NetWare NetBIOS emulator. 
  374.  
  375. You can run the NetBIOS daemon in either of two ways: 
  376.  
  377.  o To run the daemon in the foreground, add the line 
  378.  
  379.    START ADDNETBL name [/N] 
  380.  
  381.    to your STARTUP.CMD file. The next time you reboot your computer, the daemon 
  382.    will start automatically. You can also start the daemon without rebooting by 
  383.    using the START command at an OS/2 command prompt. 
  384.  
  385.  o To run the daemon in the background, add the line 
  386.  
  387.    RUN=ADDNETBL name [/N] 
  388.  
  389.    to your CONFIG.SYS file. The next time you reboot your computer, the daemon 
  390.    will start automatically. You can also start the daemon in the background 
  391.    without rebooting by using the DETACH command at an OS/2 command prompt. 
  392.  
  393.  Warning: If the NetBIOS daemon is running in the background, server processes 
  394.  can only run in the background. Therefore, if your server programs need to 
  395.  display information or accept user input, do not run the NetBIOS daemon in the 
  396.  background. 
  397.  
  398.  If the daemon encounters NetBIOS errors when starting up, it will indicate the 
  399.  return code from NetBIOS with one of the following error messages: 
  400.  
  401.     NETBIOS RESET(nn)             Return code from the NetBIOS RESET command 
  402.                                   was nn. This usually means there are 
  403.                                   insufficient NetBIOS resources available. 
  404.  
  405.     NETBIOS ADDNAME(nn)           Return code from the NetBIOS ADDNAME command 
  406.                                   was nn. This usually means the specified 
  407.                                   NetBIOS machine name is already in use on the 
  408.                                   network. 
  409.  
  410.     NETBIOS LISTEN(nn)            Return code from the NetBIOS LISTEN command 
  411.                                   was nn. 
  412.  
  413.  For more information on NetBIOS return codes, refer to the LAN Technical 
  414.  Reference. 
  415.  
  416.  
  417. ΓòÉΓòÉΓòÉ 1.2.7. LAN Transport Protocol Settings for NetBIOS. ΓòÉΓòÉΓòÉ
  418.  
  419. For NetBIOS connections between the server and the clients you will probably 
  420. have to modify the LAPS configuration for your card to add the resources needed 
  421. by both the client and the server. 
  422.  
  423. Run the LAPS program (or Communications Manager/2 LAN Adapter and Protocol 
  424. Support) and modify the NetBIOS configuration using the following guidelines: 
  425.  
  426.  o For the server machine: 
  427.  
  428.     - Increase maximum sessions by the value of NetBIOS maximum sessions 
  429.  
  430.     - Increase maximum commands by 2 * the value of NetBIOS maximum sessions 
  431.  
  432.     - maximum names by the value of NetBIOS maximum sessions 
  433.  
  434.  o For each client: 
  435.  
  436.     - Increase maximum sessions by the maximum number of connecting processes 
  437.       on the client machine 
  438.  
  439.     - Increase maximum commands by 2 * the maximum number of connecting 
  440.       processes on the client machine 
  441.  
  442.     - maximum names by the maximum number of connecting processes on the client 
  443.       machine 
  444.  
  445.  
  446. ΓòÉΓòÉΓòÉ 1.3. Initiating a connection ΓòÉΓòÉΓòÉ
  447.  
  448. The connection between two processes using Distributed Connection Objects is 
  449. initiated in different ways depending whether the process is a server or 
  450. client. 
  451.  
  452. Servers 
  453. When a Server Distributed Connection Object is initialised by VX-REXX it starts 
  454. a Server Thread which will automatically respond to connections and 
  455. disconnections from client processes. 
  456.  
  457. Clients 
  458. Clients can connect automatically or manually. A Client Object will connect 
  459. automatically when it is initialised by VX-REXX if the AutoConnect property is 
  460. set, otherwise you must initiate the connection with a call to the 
  461. OpenConnection method. 
  462.  
  463. Note: 
  464. If the server process has not started, the connection protocol will start the 
  465. server automatically. 
  466.  
  467.  
  468. ΓòÉΓòÉΓòÉ 1.4. Communicating between processes ΓòÉΓòÉΓòÉ
  469.  
  470. There are two types of communication available between a server and client: 
  471.  
  472.  o Synchronous communication initiated by the Client 
  473.  o Asynchronous communication initiated by the Server 
  474.  
  475.  For asynchronous communication to be used you must start a listen thread on 
  476.  the client by either setting the Listen property at design time or by calling 
  477.  the StartListen method. When a client starts or stops a listen thread, a 
  478.  ClientListen event is posted on the server process. This allows you to track 
  479.  which clients can have conversations initiated from the server end of the 
  480.  connection. 
  481.  
  482.  There is only one method in the Distributed Connection Object for handling 
  483.  communication between clients and servers; SendData, data retrieval is handled 
  484.  by events on the server or client: 
  485.  whenever data is read by either a server or a client a DataReady event is 
  486.  generated where you can retrieve the data and if necessary reply. 
  487.  
  488.  There are two parts to the data transmitted between Distributed Connection 
  489.  Objects which give you the possibility of further refining the inter-process 
  490.  communication and control: 
  491.  
  492.  o Command 
  493.  o Data 
  494.  
  495.  Both these components of a transmission are available in the DataReady event. 
  496.  
  497.  Warning: 
  498.  There are three reserved command strings used to control the listen state of a 
  499.  client and the set the user data for a client on the server: 
  500.  
  501.  o "START_LISTEN" (client -> server) 
  502.  o "STOP_LISTEN" (client <-> server) 
  503.  o "USER_DATA" (client -> server) 
  504.  
  505.  These commands are transmitted between the server and client internally. 
  506.  However, you can send the "STOP_LISTEN" command yourself from a server to a 
  507.  client. 
  508.  
  509.   Communications beween processes
  510.  
  511.   Client                      Server
  512.  
  513.   If a listen thread is active
  514.   Reads Data on <--------------------------- SendData
  515.   Listen Thread
  516.   Post DataReady
  517.     
  518.     
  519.   Process DataReady
  520.     
  521.   Always available
  522.   SendData     -------------------------> Reads Data
  523.   waits for reply               Post DataReady
  524.                          
  525.                          
  526.                         Process DataReady
  527.   Reads Data    <------------------------- SendData (reply)
  528.   Post DataReady
  529.     
  530.     
  531.   Process DataReady
  532.  
  533.  To ensure that conversations are held between the correct processes, unique 
  534.  connection handles are generated for each connection, and all SendData 
  535.  operations from a server MUST use the handle retrieved in the DataReady event 
  536.  if it replies to a client. 
  537.  
  538.  To further ensure that conversations are about the same "subject", you can 
  539.  also specify a Response ID which can also be retrieved in the DataReady event. 
  540.  The response id is generated internally by the initiator of the the 
  541.  conversation in the SendData call. 
  542.  
  543.  
  544. ΓòÉΓòÉΓòÉ 1.5. Error codes ΓòÉΓòÉΓòÉ
  545.  
  546.  
  547. ΓòÉΓòÉΓòÉ <hidden> Error Codes - General ΓòÉΓòÉΓòÉ
  548.  
  549. The following error codes are retuned in the MsgNum Info item from a CSError 
  550. event. The name of the error constant is that of a predefined variable that is 
  551. added to the REXX Variable pool when the LoadVars method is called. 
  552.  
  553.  
  554. ΓòÉΓòÉΓòÉ <hidden> Error code list ΓòÉΓòÉΓòÉ
  555.  
  556. General
  557. 9020 VRXDA_INVALID_HANDLE
  558. 9024 VRXDA_ERROR_NAME
  559. 1411 VRXDA_ALREADY_IDENTIFIED
  560. 1418 VRXDA_OPEN_TIMED_OUT
  561. 1421 VRXDA_STATE_CHECK
  562. 2023 VRXDA_MOD_LOAD_FAILED
  563. 2024 VRXDA_ERR_ENTRY_POINT
  564. 2025 VRXDA_ERR_START_PARTNER
  565. 2027 VRXDA_PARTNER_CLOSED
  566. 2028 VRXDA_INVALID_PARTNER
  567. 2029 VRXDA_ERR_CP_PAIRING
  568. 2030 VRXDA_ERR_CHAR_TABLE
  569. 2031 VRXDA_ERR_CHAR_CONVERT
  570. 2032 VRXDA_PROFILE_MISMATCH
  571. 2100 VRXDA_ERR_APPC
  572. 2200 VRXDA_ERR_NP
  573. 2300 VRXDA_ERR_NETBIOS
  574. 2301 VRXDA_SHORT_ON_NB_RESOURCES
  575. 3001 VRXDA_INVALID_FILE_OK
  576. 3002 VRXDA_INVALID_FILE
  577. 3003 VRXDA_NO_ENTRY
  578. 3004 VRXDA_ERR_MEMORY
  579. 3005 VRXDA_ERR_WRITE
  580. 3006 VRXDA_ERR_READ
  581. 3007 VRXDA_BAD_SYMBOLIC_NAME
  582. 3100 VRXDA_ERR_SERVER_THREAD
  583. 3101 VRXDA_ERR_CLIENT_THREAD
  584. 3102 VRXDA_ALREADY_CONNECTED
  585.  
  586.  
  587. ΓòÉΓòÉΓòÉ <hidden> 9020 VRXDA_INVALID_HANDLE ΓòÉΓòÉΓòÉ
  588.  
  589. A read or write operation was attempted using a connection that is not valid. 
  590.  
  591. Open the connection before using the SendData method. 
  592.  
  593.  
  594. ΓòÉΓòÉΓòÉ <hidden> 9024 VRXDA_ERROR_NAME ΓòÉΓòÉΓòÉ
  595.  
  596. The name specified in a server object is invalid. This error will occur only in 
  597. servers at startup. 
  598.  
  599.  
  600. ΓòÉΓòÉΓòÉ <hidden> 1411 VRXDA_ALREADY_IDENTIFIED ΓòÉΓòÉΓòÉ
  601.  
  602. You have two server objects with the same connection name that are trying to 
  603. run at the same time. 
  604.  
  605. Remove one of the objects or change its connection name. If this is not the 
  606. case, please contact ADD Consulting. 
  607.  
  608.  
  609. ΓòÉΓòÉΓòÉ <hidden> 1418 VRXDA_OPEN_TIMED_OUT ΓòÉΓòÉΓòÉ
  610.  
  611. The client connection to the server timed out waiting for a response. 
  612.  
  613. Either increase the number of ConnRetries or increase the Wait for connection 
  614. time in the Connection Profile. 
  615.  
  616.  
  617. ΓòÉΓòÉΓòÉ <hidden> 1421 VRXDA_STATE_CHECK ΓòÉΓòÉΓòÉ
  618.  
  619. You called a method that is not valid in the current APPC state. 
  620.  
  621. Note: 
  622. This message applies only when the partner is a native APPC application. 
  623.  
  624.  
  625. ΓòÉΓòÉΓòÉ <hidden> 2023 VRXDA_MOD_LOAD_FAILED ΓòÉΓòÉΓòÉ
  626.  
  627. Cannot load the DLL for the specified communication protocol. 
  628.  
  629. ErrorStem.3 will contain the system return code (see GetErrorData). 
  630.  
  631.  
  632. ΓòÉΓòÉΓòÉ <hidden> 2024 VRXDA_ERR_ENTRY_POINT ΓòÉΓòÉΓòÉ
  633.  
  634. Cannot access an entry point in the DLL for the specified communication 
  635. protocol. 
  636.  
  637. ErrorStem.3 will contain the system return code (see GetErrorData). 
  638.  
  639.  
  640. ΓòÉΓòÉΓòÉ <hidden> 2025 VRXDA_ERR_START_PARTNER ΓòÉΓòÉΓòÉ
  641.  
  642. Could not start the partner. 
  643.  
  644. Confirm that a valid connection profile file exists on the DPATH and that it 
  645. contains a correct profile for the destination, or that a .CMD or .EXE file 
  646. with the specified name exists in the current directory. ErrorStem.3 contains 
  647. the return code from DosExecPgm or DosStartSession (see GetErrorData). 
  648.  
  649. Note: 
  650. If the connection uses the NetBIOS protocol and the server needs to run in the 
  651. foreground, make sure the NetBIOS Daemon on the server machine is not running 
  652. in the background. A value of 418 in ErrorStem.3 may indicate that this is the 
  653. case. 
  654.  
  655.  
  656. ΓòÉΓòÉΓòÉ <hidden> 2027 VRXDA_PARTNER_CLOSED ΓòÉΓòÉΓòÉ
  657.  
  658. The partner program has ended. 
  659.  
  660. Note: 
  661. This message only applies to NetBIOS or Named Pipe connections. 
  662.  
  663.  
  664. ΓòÉΓòÉΓòÉ <hidden> 2028 VRXDA_INVALID_PARTNER ΓòÉΓòÉΓòÉ
  665.  
  666. The partner program type is incorrectly defined in the Connection Profile 
  667.  
  668.  
  669. ΓòÉΓòÉΓòÉ <hidden> 2029 VRXDA_ERR_CP_PAIRING ΓòÉΓòÉΓòÉ
  670.  
  671. The local code page and the partner code page specified in the connection 
  672. profile are not compatible. 
  673.  
  674. Note: 
  675. This message only applies to APPC connections. 
  676.  
  677.  
  678. ΓòÉΓòÉΓòÉ <hidden> 2030 VRXDA_ERR_CHAR_TABLE ΓòÉΓòÉΓòÉ
  679.  
  680. Could not access the translation tables for the specified partner code page and 
  681. the local code page. 
  682.  
  683. Note: 
  684. This message only applies to APPC connections. 
  685.  
  686.  
  687. ΓòÉΓòÉΓòÉ <hidden> 2031 VRXDA_ERR_CHAR_CONVERT ΓòÉΓòÉΓòÉ
  688.  
  689. Could not convert data between the local code page and the specified partner 
  690. code page. 
  691.  
  692. Note: 
  693. This message only applies to APPC connections. 
  694.  
  695.  
  696. ΓòÉΓòÉΓòÉ <hidden> 2032 VRXDA_PROFILE_MISMATCH ΓòÉΓòÉΓòÉ
  697.  
  698. There is a discrepancy between the Connection Profiles of the client 
  699. application and the server application. 
  700.  
  701. Make sure the Program type fields of the connection profiles match. If you are 
  702. using NetBIOS, also make sure the NetBIOS server machine fields match. 
  703.  
  704.  
  705. ΓòÉΓòÉΓòÉ <hidden> 2100 VRXDA_ERR_APPC ΓòÉΓòÉΓòÉ
  706.  
  707. An APPC error has occurred. 
  708.  
  709. The APPC primary and secondary return codes are returned in ErrorStem.3  and 
  710. ErrorStem.4. The APPC operation code is returned in  ErrorStem.5 (see 
  711. GetErrorData). 
  712.  
  713. Note: 
  714. This message only applies to APPC connections. 
  715.  
  716.  
  717. ΓòÉΓòÉΓòÉ <hidden> 2200 VRXDA_ERR_NP ΓòÉΓòÉΓòÉ
  718.  
  719. An OS/2 Named Pipes error has occurred. 
  720.  
  721. ErrorStem.3 contains the system return code (see GetErrorData). 
  722.  
  723. Note: 
  724. This message only applies to Named Pipes connections. 
  725.  
  726.  
  727. ΓòÉΓòÉΓòÉ <hidden> 2300 VRXDA_ERR_NETBIOS ΓòÉΓòÉΓòÉ
  728.  
  729. A NetBIOS error has occurred. 
  730.  
  731. ErrorStem.3 contains the system return code (see GetErrorData). 
  732.  
  733. Note: 
  734. This message only applies to NetBIOS connections. 
  735.  
  736.  
  737. ΓòÉΓòÉΓòÉ <hidden> 2301 VRXDA_SHORT_ON_NB_RESOURCES ΓòÉΓòÉΓòÉ
  738.  
  739. Could not obtain the requested NetBIOS resources (sessions, names, or 
  740. commands). 
  741.  
  742. ErrorStem.3 contains the number of available sessions. ErrorStem.4 contains the 
  743. number of available commands. ErrorStem.5 contains the number of available 
  744. names (see GetErrorData). 
  745.  
  746. To reduce the NetBIOS resource requirements, decrease the value in the NetBIOS 
  747. maximum sessions field in the connection profile. 
  748.  
  749. For information on increasing available NetBIOS resources see LAN Transport 
  750. Protocol settings for NetBIOS. 
  751.  
  752. Note: 
  753. This message only applies to NetBIOS connections. 
  754.  
  755.  
  756. ΓòÉΓòÉΓòÉ <hidden> 3001 VRXDA_INVALID_FILE_OK ΓòÉΓòÉΓòÉ
  757.  
  758. An invalid Connection Profile was found but the specified destination name was 
  759. found in another profile file. 
  760.  
  761.  
  762. ΓòÉΓòÉΓòÉ <hidden> 3002 VRXDA_INVALID_FILE ΓòÉΓòÉΓòÉ
  763.  
  764. The program encountered an invalid Connection Profile file and was not able to 
  765. find the specified destination name. However, it will attempt to start the 
  766. program without a connection profile by using the destination name and a named 
  767. pipes connection. 
  768.  
  769.  
  770. ΓòÉΓòÉΓòÉ <hidden> 3003 VRXDA_NO_ENTRY ΓòÉΓòÉΓòÉ
  771.  
  772. All connection profile files encountered were valid, but the specified 
  773. destination name was not found. 
  774.  
  775. However, an attempt to start the program without a connection profile by using 
  776. the destination name and a named pipes connection will be made. 
  777.  
  778.  
  779. ΓòÉΓòÉΓòÉ <hidden> 3004 VRXDA_ERR_MEMORY ΓòÉΓòÉΓòÉ
  780.  
  781. There is insufficient system memory for the Distributed Connection Object to 
  782. obtain necessary resources. 
  783.  
  784.  
  785. ΓòÉΓòÉΓòÉ <hidden> 3005 VRXDA_ERR_WRITE ΓòÉΓòÉΓòÉ
  786.  
  787. An error was detected by the communications protocol code while attempting to 
  788. send data. 
  789.  
  790. The error may be detected by APPC or NetBIOS. The protocol specific error 
  791. information is returned in ErrorStem.3 (see GetErrorData). 
  792.  
  793. Note: 
  794. This message only applies to NetBIOS or APPC connections. 
  795.  
  796.  
  797. ΓòÉΓòÉΓòÉ <hidden> 3006 VRXDA_ERR_READ ΓòÉΓòÉΓòÉ
  798.  
  799. An error was detected by the communications protocol code while attempting to 
  800. receive data. 
  801.  
  802. The error may be detected by APPC or NetBIOS. The protocol specific error 
  803. information is returned in ErrorStem.3 (see GetErrorData). 
  804.  
  805. Note: 
  806. This message only applies to NetBIOS or APPC connections. 
  807.  
  808.  
  809. ΓòÉΓòÉΓòÉ <hidden> 3007 VRXDA_BAD_SYMBOLIC_NAME ΓòÉΓòÉΓòÉ
  810.  
  811. The specified connection name contains invalid characters. 
  812.  
  813. Valid characters are A-Z and 0-9 (see ConnectionName). 
  814.  
  815.  
  816. ΓòÉΓòÉΓòÉ <hidden> 3100 VRXDA_ERR_SERVER_THREAD ΓòÉΓòÉΓòÉ
  817.  
  818. Either the server thread failed to start. 
  819.  
  820. Note: 
  821. This is a fatal error. 
  822.  
  823.  
  824. ΓòÉΓòÉΓòÉ <hidden> 3101 VRXDA_ERR_CLIENT_THREAD ΓòÉΓòÉΓòÉ
  825.  
  826. Either the listen or the Wait for answer thread failed to start. 
  827.  
  828.  
  829. ΓòÉΓòÉΓòÉ <hidden> 3102 VRXDA_ALREADY_CONNECTED ΓòÉΓòÉΓòÉ
  830.  
  831. The client object is already connected. This will be posted from the 
  832. OpenConnection method if the connection is already active. 
  833.  
  834.  
  835. ΓòÉΓòÉΓòÉ 1.6. Run-time files ΓòÉΓòÉΓòÉ
  836.  
  837. If you write commercial programs that use the Distributed Connection Object you 
  838. will have to distribute the following DLLs along with your product: 
  839.  
  840.  o VRXDA.DLL (The VX-REXX object DLL) 
  841.  o VDAAPPC.DLL (APPC protocol DLL) 
  842.  o VDANETB.DLL (NetBIOS protocol DLL) 
  843.  o VDANETBL.EXE (NetBIOS Daemon) 
  844.  o VDANP.DLL (Named Pipes protocol DLL) 
  845.  o VDAOCRW.DLL (Interface DLL) 
  846.  o VDAPROF.DLL (DLL for profile editor) 
  847.  o VDAPROF.EXE (Profile editor) 
  848.  o VDAPROF.HLP (Help for the profile editor) 
  849.  o IBMDABB.CP (A default profile for your program) 
  850.  
  851.  
  852. ΓòÉΓòÉΓòÉ 1.7. Shareware Software ΓòÉΓòÉΓòÉ
  853.  
  854. DEFINITION OF SHAREWARE SOFTWARE 
  855.  
  856. Shareware Software distribution gives users a chance to try software before 
  857. buying it. If you try a Shareware software program and continue using it, you 
  858. are expected to register. Individual programs differ on details -- some request 
  859. registration while others require it, some specify a maximum trial period. 
  860. With registration, you  get anything from the simple right to continue using 
  861. the software to an updated program with printed manual. 
  862.  
  863. Copyright laws apply to both Shareware and commercial software, and the 
  864. copyright holder retains all rights, with a few specific exceptions as stated 
  865. below. Shareware software authors are accomplished programmers, just like 
  866. commercial authors, and the programs are of comparable quality. (In both cases, 
  867. there are good programs and bad ones!)  The main difference is in the method of 
  868. distribution. The author specifically grants the right to copy and distribute 
  869. the software, either to all and sundry or to a specific group. For example, 
  870. some authors require written permission before a commercial disk vendor may 
  871. copy their Shareware software. 
  872.  
  873. Shareware software is a distribution method, not a type of software. You should 
  874. find software that suits your needs and pocketbook, whether it's commercial or 
  875. Shareware software. The Shareware software system makes fitting your needs 
  876. easier, because you can try before you buy. And because the overhead is low, 
  877. prices are low also. Shareware software has the ultimate money-back guarantee 
  878. -- if you don't use the product, you don't pay for it. 
  879.  
  880. When you register the VRDistributedConnection object you will be sent a 
  881. registered version of the DLL by e-mail. This version has the "nag" popup 
  882. removed and you have the right to freely distribute software that includes the 
  883. DLLs. 
  884.  
  885. If you are satisfied with the VRDistributedConnection object we ask you to 
  886. freely distribute the shareware version to your freinds and colleagues. 
  887.  
  888. If you have any suggestions for enhancements or find any bugs in the software 
  889. please contact us at one of our Contact Addresses 
  890.  
  891.  
  892. ΓòÉΓòÉΓòÉ 1.8. Registering your license ΓòÉΓòÉΓòÉ
  893.  
  894. VRDistributedConnection is a "Shareware software program" and is provided at no 
  895. charge to the user for evaluation. Feel free to share it with your friends, but 
  896. please do not give it away altered or as part of another system. The essence of 
  897. "user-supported" software is to provide personal computer users with quality 
  898. software without high prices, and yet to provide incentive for programmers to 
  899. continue to develop new products. If you find this program useful and find that 
  900. you are using VRDistributedConnection and continue to use 
  901. VRDistributedConnection after a reasonable trial period of 30  days, you must 
  902. make a registration payment of $75.00 to ADD Consulting (CH). 
  903.  
  904. You can register through the CompuServe Shareware Registration facility: 
  905.  
  906.      GO SWREG registration Number 7276 
  907.  
  908.  The registration fee will license one copy for use on any one computer at any 
  909.  one time. You must treat this software just like a book. An example is that 
  910.  this software may be used by any number of people and may be freely moved from 
  911.  one computer location to another, so long as there is no possibility of it 
  912.  being used at one location while it's being used at another. Just as a book 
  913.  cannot be read by two different persons at the same time. 
  914.  
  915.  Payment of the registration fee gives you the right to distribute programs 
  916.  that include the object and the DLL without paying any other "run-time" 
  917.  licenses. 
  918.  
  919.  Site-License arrangements may be made by contacting ADD Consulting (CH). 
  920.  
  921.  
  922. ΓòÉΓòÉΓòÉ 1.9. Distributing the VRDistributedConnection object ΓòÉΓòÉΓòÉ
  923.  
  924. Anyone distributing the VRDistributedConnection object for any kind of 
  925. remuneration must first contact ADD Consulting (CH) at our address below for 
  926. authorization. This authorization will be automatically granted to distributors 
  927. recognized by the (ASP) as adhering to its guidelines for shareware 
  928. distributors, and such distributors may begin offering VRDistributedConnection 
  929. immediately, however ADD Consulting (CH) should still be advised so that the 
  930. distributor can be kept up-to-date with the latest version of 
  931. VRDistributedConnection. 
  932.  
  933. Registered users are free to distribute programs that use the the 
  934. VRDistributedConnection object with no additional run-time fees. 
  935.  
  936.  
  937. ΓòÉΓòÉΓòÉ 1.10. Contact Address ΓòÉΓòÉΓòÉ
  938.  
  939. You can contact ADD Consulting at the addresses below or on the OS/2 Other 
  940. Vendors on CompuServe (GO OS2AVEN) where all our products are supported. 
  941.  
  942.           ADD Consulting (CH)
  943.           Mr. Peter Kanis
  944.           Via Suro 9
  945.           CH-7403 Rh╨öz╨æns
  946.           Switzerland
  947.  
  948.           Tel: +41 (0)81 630 2011
  949.           Fax: +41 (0)81 630 2015
  950.           CompuServe: 100275,350 (Peter Kanis)
  951.           INTERNET: kanis@ibm.net
  952.  
  953.           ADD Consulting (RUS)
  954.           Mr. Michael V. Schelkin
  955.           18-29 Molodezhnaya Street
  956.           Jukovsky
  957.           140160 Moscow Region
  958.           Russia
  959.  
  960.           Tel: +7 095 556 8533
  961.           INTERNET: michael@schelkin.msk.ru
  962.  
  963.  
  964. ΓòÉΓòÉΓòÉ 1.11. Rights And Limitations ΓòÉΓòÉΓòÉ
  965.  
  966. ADD Consulting makes no warranties as to the information in this guide. 
  967. Additionally, ADD Consulting is not responsible or liable for any loss or 
  968. damage of any kind resulting from use of this product. 
  969.  
  970. The Software is protected by international copyright laws. All rights reserved. 
  971. No part of the computer program, documentation or related files may be 
  972. reproduced photocopied, stored on a retrieval system, or transmitted except as 
  973. provided by copyright law or by express permission of the copyright owner. 
  974.  
  975. DISCLAIMER - AGREEMENT 
  976.  
  977. Users of VRDistributedConnection shall accept this disclaimer of warranty: 
  978.  
  979. ADD CONSULTING SUPPLIES THIS PRODUCT AS IS WITHOUT WARANTY OF ANY KIND, EITHER 
  980. EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARANTIES OF 
  981. MERCANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. ADD CONSULTING ASSUMES NO 
  982. LIABILITY FOR DAMAGES, DIRECT OR CONSEQUENTIAL, WHICH MAY RESULT FROM THE USE 
  983. OF THE PRODUCT. 
  984.  
  985. Some jurisdictions do not allow the exclusion or limitations for consequential 
  986. or incidental damages, so the above may not apply to you. 
  987.  
  988.  
  989. ΓòÉΓòÉΓòÉ 2. VRDistributedConnection properties ΓòÉΓòÉΓòÉ
  990.  
  991. The Distributed Connection Object exports the following properties: 
  992.  
  993.  o AutoConnect 
  994.  o Connected 
  995.  o ConnectionName 
  996.  o ConnHandle 
  997.  o ConnRetries 
  998.  o Listen 
  999.  o ProcessType 
  1000.  
  1001.  inherits the following properties from the VX-REXX Descriptive Text Object: 
  1002.  
  1003.  o Caption 
  1004.  o ClassName 
  1005.  o ClipSiblings 
  1006.  o Enabled 
  1007.  o FirstChild 
  1008.  o Font 
  1009.  o ForeColor 
  1010.  o Height 
  1011.  o HelpTag 
  1012.  o HelpText 
  1013.  o HintText 
  1014.  o HWnd 
  1015.  o Left 
  1016.  o Name 
  1017.  o Painting 
  1018.  o Parent 
  1019.  o Query 
  1020.  o QueryColumns 
  1021.  o Self 
  1022.  o Sibling 
  1023.  o SiblingOrder 
  1024.  o Top 
  1025.  o UserData 
  1026.  o Visible 
  1027.  o Width 
  1028.  
  1029.  
  1030. ΓòÉΓòÉΓòÉ 2.1. AutoConnect ΓòÉΓòÉΓòÉ
  1031.  
  1032.  
  1033. ΓòÉΓòÉΓòÉ <hidden> Autoconnect - List ΓòÉΓòÉΓòÉ
  1034.  
  1035. Applies to 
  1036.  
  1037.  Clients 
  1038.  
  1039.  Data Type 
  1040.  
  1041.  Boolean 
  1042.  
  1043.  Possible Values 
  1044.  
  1045.  1 (true) 
  1046.  0 (false) 
  1047.  
  1048.  See Also 
  1049.  
  1050.  o Connected 
  1051.  o ConnRetries 
  1052.  o ConnectionName 
  1053.  o ProcessType 
  1054.  o Connect 
  1055.  o OpenConnection 
  1056.  
  1057.  
  1058. ΓòÉΓòÉΓòÉ <hidden> AutoConnect - Description ΓòÉΓòÉΓòÉ
  1059.  
  1060. This property can only be set from the design environment. If set to 1 (TRUE), 
  1061. the object will connect to the server process when it is created, i.e. when the 
  1062. client process starts. 
  1063.  
  1064. Note: 
  1065. This property is read-only and cannot be set with VRSet. 
  1066.  
  1067.  
  1068. ΓòÉΓòÉΓòÉ 2.2. Connected ΓòÉΓòÉΓòÉ
  1069.  
  1070.  
  1071. ΓòÉΓòÉΓòÉ <hidden> Connected - List ΓòÉΓòÉΓòÉ
  1072.  
  1073. Applies to 
  1074.  
  1075.  Clients 
  1076.  
  1077.  Data Type 
  1078.  
  1079.  Boolean 
  1080.  
  1081.  Possible Values 
  1082.  
  1083.  1 (true) 
  1084.  0 (false) 
  1085.  
  1086.  See Also 
  1087.  
  1088.  o AutoConnect 
  1089.  o ConnRetries 
  1090.  o Connect 
  1091.  o OpenConnection 
  1092.  
  1093.  
  1094. ΓòÉΓòÉΓòÉ <hidden> Connected - Description ΓòÉΓòÉΓòÉ
  1095.  
  1096. This is a boolean property that indicates the connection status for a client 
  1097. object. if the object is connected to a server, the property is set to 1 
  1098. (TRUE). 
  1099.  
  1100. Note: 
  1101. This property is read-only and cannot be set with VRSet. 
  1102.  
  1103.  
  1104. ΓòÉΓòÉΓòÉ 2.3. ConnectionName ΓòÉΓòÉΓòÉ
  1105.  
  1106.  
  1107. ΓòÉΓòÉΓòÉ <hidden> ConnectionName - List ΓòÉΓòÉΓòÉ
  1108.  
  1109. Applies to 
  1110.  
  1111.  Servers 
  1112.  Clients 
  1113.  
  1114.  Data Type 
  1115.  
  1116.  String 
  1117.  
  1118.  Possible Values 
  1119.  
  1120.  String of up to 8 characters (A-Z and 0-9) 
  1121.  
  1122.  See Also 
  1123.  
  1124.  o AutoConnect 
  1125.  o Connected 
  1126.  o ConnRetries 
  1127.  o ProcessType 
  1128.  o Connect 
  1129.  o OpenConnection 
  1130.  
  1131.  
  1132. ΓòÉΓòÉΓòÉ <hidden> ConnectionName - Description ΓòÉΓòÉΓòÉ
  1133.  
  1134. This property MUST be set. It contains the sybolic connection name and must be 
  1135. same for the Client, the Server and in the Connection Profile. 
  1136.  
  1137. Note: 
  1138. The Sybolic Name Must be unique for each connection profile and no longer than 
  1139. 8 characters long (A-Z and 0-9). 
  1140.  
  1141. Warning: 
  1142. if you set the AutoConnect property to 1 you MUST set the ConnectionName at 
  1143. design time. 
  1144.  
  1145.  
  1146. ΓòÉΓòÉΓòÉ 2.4. ConnHandle ΓòÉΓòÉΓòÉ
  1147.  
  1148.  
  1149. ΓòÉΓòÉΓòÉ <hidden> ConnHandle - List ΓòÉΓòÉΓòÉ
  1150.  
  1151. Applies to 
  1152.  
  1153.  Clients 
  1154.  
  1155.  Data Type 
  1156.  
  1157.  Numeric 
  1158.  
  1159.  Possible Values 
  1160.  
  1161.  Any whole number 
  1162.  
  1163.  See Also 
  1164.  
  1165.  o AutoConnect 
  1166.  o Connected 
  1167.  o ConnRetries 
  1168.  o ProcessType 
  1169.  o Connect 
  1170.  o DataReady 
  1171.  o OpenConnection 
  1172.  
  1173.  
  1174. ΓòÉΓòÉΓòÉ <hidden> ConnHandle - Description ΓòÉΓòÉΓòÉ
  1175.  
  1176. This is a numeric property that contains the unique connection handle for the 
  1177. client. It is only valid after connecting to a server. 
  1178.  
  1179. Note: 
  1180. This property is read-only and cannot be set with VRSet. 
  1181.  
  1182.  
  1183. ΓòÉΓòÉΓòÉ 2.5. ConnRetries ΓòÉΓòÉΓòÉ
  1184.  
  1185.  
  1186. ΓòÉΓòÉΓòÉ <hidden> ConnRetries - List ΓòÉΓòÉΓòÉ
  1187.  
  1188. Applies to 
  1189.  
  1190.  Clients 
  1191.  
  1192.  Data Type 
  1193.  
  1194.  Numeric 
  1195.  
  1196.  Possible Values 
  1197.  
  1198.  Any whole number 
  1199.  
  1200.  See Also 
  1201.  
  1202.  o AutoConnect 
  1203.  o Connected 
  1204.  o ProcessType 
  1205.  o Connect 
  1206.  o DataReady 
  1207.  o OpenConnection 
  1208.  
  1209.  
  1210. ΓòÉΓòÉΓòÉ <hidden> ConnRetries - Description ΓòÉΓòÉΓòÉ
  1211.  
  1212. When connecting through the NetBIOS protocol to a server that has not started, 
  1213. the delay to start the server process can be quite long, especially with a 
  1214. VX-REXX application, and exceed the Wait for Open setting in the Connection 
  1215. Profile. This property tells the client object how many times to retry before 
  1216. returning an error; The default value is 2. 
  1217.  
  1218.  
  1219. ΓòÉΓòÉΓòÉ 2.6. Listen ΓòÉΓòÉΓòÉ
  1220.  
  1221.  
  1222. ΓòÉΓòÉΓòÉ <hidden> Listen - List ΓòÉΓòÉΓòÉ
  1223.  
  1224. Applies to 
  1225.  
  1226.  Clients 
  1227.  
  1228.  Data Type 
  1229.  
  1230.  Boolean 
  1231.  
  1232.  Possible Values 
  1233.  
  1234.  1 (true) 
  1235.  0 (false) 
  1236.  
  1237.  See Also 
  1238.  
  1239.  o AutoConnect 
  1240.  o OpenConnection 
  1241.  o StartListen 
  1242.  o StopListen 
  1243.  
  1244.  
  1245. ΓòÉΓòÉΓòÉ <hidden> Listen - Description ΓòÉΓòÉΓòÉ
  1246.  
  1247. This property is set at design time and cannot be changed. If the property is 
  1248. set, a thread is started that will listen for messages from the server. Use 
  1249. this property if you want to have the server send asynchronous messages to its 
  1250. clients. 
  1251.  
  1252. Note: 
  1253. This property is read-only and cannot be set with VRSet. 
  1254.  
  1255.  
  1256. ΓòÉΓòÉΓòÉ 2.7. ProcessType ΓòÉΓòÉΓòÉ
  1257.  
  1258.  
  1259. ΓòÉΓòÉΓòÉ <hidden> ProcessType - List ΓòÉΓòÉΓòÉ
  1260.  
  1261. Applies to 
  1262.  
  1263.  Clients 
  1264.  
  1265.  Data Type 
  1266.  
  1267.  String 
  1268.  
  1269.  Possible Values 
  1270.  
  1271.  Server 
  1272.  Client 
  1273.  
  1274.  See Also 
  1275.  
  1276.  o AutoConnect 
  1277.  o Connected 
  1278.  o ConnRetries 
  1279.  o Connect 
  1280.  o OpenConnection 
  1281.  
  1282.  
  1283. ΓòÉΓòÉΓòÉ <hidden> ProcessType - Description ΓòÉΓòÉΓòÉ
  1284.  
  1285. This property is set at design time and cannot be changed. It defines the 
  1286. behaviour of the Distributed Connection Object as either a Client or a Server. 
  1287.  
  1288. Note: 
  1289. This property is read-only and cannot be set with VRSet. 
  1290.  
  1291.  
  1292. ΓòÉΓòÉΓòÉ 3. VRDistributedConnection events ΓòÉΓòÉΓòÉ
  1293.  
  1294. The Distributed Connection Object inherits all the events of the VX-REXX 
  1295. Descriptive Text Object and also exports the following events: 
  1296.  
  1297.  o ClientListen 
  1298.  o Connect 
  1299.  o CSError 
  1300.  o DataReady 
  1301.  o Disconnect 
  1302.  
  1303.  
  1304. ΓòÉΓòÉΓòÉ 3.1. Connect ΓòÉΓòÉΓòÉ
  1305.  
  1306.  
  1307. ΓòÉΓòÉΓòÉ <hidden> Connect - List ΓòÉΓòÉΓòÉ
  1308.  
  1309. Topics 
  1310.  
  1311.  o Description 
  1312.  o VRInfo Items 
  1313.  
  1314.  Applies to 
  1315.  
  1316.  Servers 
  1317.  
  1318.  See Also 
  1319.  
  1320.  o Connected 
  1321.  o OpenConnection 
  1322.  
  1323.  
  1324. ΓòÉΓòÉΓòÉ <hidden> Connect - Description ΓòÉΓòÉΓòÉ
  1325.  
  1326. This event is generated by a server object whenever a client connects. The 
  1327. connection protocol is handled internally and will already be active when this 
  1328. event is posted by the object. 
  1329.  
  1330.  
  1331. ΓòÉΓòÉΓòÉ <hidden> Connect - VRInfo Items ΓòÉΓòÉΓòÉ
  1332.  
  1333.  DAHandle            The connection handle for the client which has made the 
  1334.                      connection. 
  1335.  
  1336.  
  1337. ΓòÉΓòÉΓòÉ 3.2. ClientListen ΓòÉΓòÉΓòÉ
  1338.  
  1339.  
  1340. ΓòÉΓòÉΓòÉ <hidden> ClientListen - List ΓòÉΓòÉΓòÉ
  1341.  
  1342. Topics 
  1343.  
  1344.  o Description 
  1345.  o VRinfo Items 
  1346.  
  1347.  Applies to 
  1348.  
  1349.  Clients 
  1350.  Servers 
  1351.  
  1352.  See also 
  1353.  
  1354.  o Listen 
  1355.  o DataReady 
  1356.  
  1357.  
  1358. ΓòÉΓòÉΓòÉ <hidden> ClientListen - Description ΓòÉΓòÉΓòÉ
  1359.  
  1360. This event is posted on a server whenever a client starts or stops listening 
  1361. for messages from the server. It is also posted on a client when the server 
  1362. sends a STOP_LISTEN command, either independently or as a response to the 
  1363. client having sent a STOP_LISTEN command. 
  1364.  
  1365.  
  1366. ΓòÉΓòÉΓòÉ <hidden> ClientListen - VRinfo Items ΓòÉΓòÉΓòÉ
  1367.  
  1368.  DAHandle            The handle to the connection that generated the error. If 
  1369.                      the object is a client this will be the same as the handle 
  1370.                      in the ConnHandle 
  1371.  
  1372.  Start               Flag indicating that the client has entered listen mode 
  1373.                      (1) or has stopped listening (0) 
  1374.  
  1375.  
  1376. ΓòÉΓòÉΓòÉ 3.3. CSError ΓòÉΓòÉΓòÉ
  1377.  
  1378.  
  1379. ΓòÉΓòÉΓòÉ <hidden> CSError - List ΓòÉΓòÉΓòÉ
  1380.  
  1381. Topics 
  1382.  
  1383.  o Description 
  1384.  o VRinfo Items 
  1385.  
  1386.  Applies to 
  1387.  
  1388.  Servers 
  1389.  Clients 
  1390.  
  1391.  See also 
  1392.  
  1393.  o GetErrorData 
  1394.  o ErrorMessage 
  1395.  
  1396.  
  1397. ΓòÉΓòÉΓòÉ <hidden> CSError - Description ΓòÉΓòÉΓòÉ
  1398.  
  1399. This event is posted whenever an error is generated by a connection. If a 
  1400. Distributed Connection Object method returns 0, this event will be generated. 
  1401. For APPC connections this event can be posted with a severity of 0, in which 
  1402. case it indicates a state change. 
  1403.  
  1404.  
  1405. ΓòÉΓòÉΓòÉ <hidden> CSError - VRinfo Items ΓòÉΓòÉΓòÉ
  1406.  
  1407.  DAHandle            The handle to the connection that generated the error. If 
  1408.                      the object is a client this will be the same as the handle 
  1409.                      in the ConnHandle 
  1410.  
  1411.  ErrNum              The error return code (see Error codes). 
  1412.  
  1413.  ErrSev              Severity of error: 
  1414.                      0 = No error, 
  1415.                      1 = Warning, 
  1416.                      2 = Recoverable error, 
  1417.                      3 = Severe error. 
  1418.  
  1419.  ErrMsg              A message explaining the error. 
  1420.  
  1421.  
  1422. ΓòÉΓòÉΓòÉ 3.4. DataReady ΓòÉΓòÉΓòÉ
  1423.  
  1424.  
  1425. ΓòÉΓòÉΓòÉ <hidden> DataReady - List ΓòÉΓòÉΓòÉ
  1426.  
  1427. Topics 
  1428.  
  1429.  o Description 
  1430.  o VRInfo Items 
  1431.  
  1432.  Applies to 
  1433.  
  1434.  Servers 
  1435.  Clients 
  1436.  
  1437.  See also 
  1438.  
  1439.  o SendData 
  1440.  o Communicating between processes 
  1441.  
  1442.  
  1443. ΓòÉΓòÉΓòÉ <hidden> DatReady - Description ΓòÉΓòÉΓòÉ
  1444.  
  1445. This event is generated whenever a Distributed Conection Object performs a read 
  1446. operation. It allows you to recover the data sent from a partner and to 
  1447. identify the sender and whether the receiver should reply. 
  1448.  
  1449.  
  1450. ΓòÉΓòÉΓòÉ <hidden> DataReady - VRInfo Items ΓòÉΓòÉΓòÉ
  1451.  
  1452.  DAHandle            The connection handle of the sender. 
  1453.  
  1454.  CmdID               The user defined Command identifier (see SendData) 
  1455.  
  1456.  RespID              The response identifier, if any, that was specified in 
  1457.                      SendData by the sender. 
  1458.  
  1459.  Data                The actual data that was sent. 
  1460.  
  1461.  
  1462. ΓòÉΓòÉΓòÉ 3.5. Disconnect ΓòÉΓòÉΓòÉ
  1463.  
  1464.  
  1465. ΓòÉΓòÉΓòÉ <hidden> Disconnect - List ΓòÉΓòÉΓòÉ
  1466.  
  1467. Topics 
  1468.  
  1469.  o Description 
  1470.  o VRInfo Items 
  1471.  
  1472.  Applies to 
  1473.  
  1474.  Servers 
  1475.  
  1476.  See also 
  1477.  
  1478.  o CloseConnection 
  1479.  o Connected 
  1480.  o ConnHandle 
  1481.  
  1482.  
  1483. ΓòÉΓòÉΓòÉ <hidden> Disconnect - Description ΓòÉΓòÉΓòÉ
  1484.  
  1485. This event is generated whenever a client disconnects from a server. 
  1486.  
  1487.  
  1488. ΓòÉΓòÉΓòÉ <hidden> Disconnect - VRInfo Items ΓòÉΓòÉΓòÉ
  1489.  
  1490.  DAHandle            The connection handle for the client that has 
  1491.                      disconnected. 
  1492.  
  1493.  
  1494. ΓòÉΓòÉΓòÉ 4. VRDistributedConnection methods ΓòÉΓòÉΓòÉ
  1495.  
  1496. The Distributed Connection Object inherits all the methods of the VX-REXX 
  1497. Descriptive Text Object and also exports the following methods: 
  1498.  
  1499.  o CloseConnection 
  1500.  o ErrorMessage 
  1501.  o GetClientData 
  1502.  o GetErrorData 
  1503.  o LoadVars 
  1504.  o OpenConnection 
  1505.  o SendData 
  1506.  o SetClientData 
  1507.  o StartListen 
  1508.  o StopListen 
  1509.  
  1510.  
  1511. ΓòÉΓòÉΓòÉ 4.1. CloseConnection ΓòÉΓòÉΓòÉ
  1512.  
  1513.  
  1514. ΓòÉΓòÉΓòÉ <hidden> CloseConnection - List ΓòÉΓòÉΓòÉ
  1515.  
  1516. Topics 
  1517.  
  1518.  o Description 
  1519.  o Parameters 
  1520.  
  1521.  Applies to 
  1522.  
  1523.  Clients 
  1524.  Servers 
  1525.  
  1526.  See also 
  1527.  
  1528.  o OpenConnection 
  1529.  o Disconnect 
  1530.  o Connected 
  1531.  o ConnectionName 
  1532.  
  1533.  
  1534. ΓòÉΓòÉΓòÉ <hidden> CloseConnection - Description ΓòÉΓòÉΓòÉ
  1535.  
  1536. ok = VRMethod( object, "CloseConnection", hConn);
  1537.  
  1538. Closes the connection between a Server and a client. The connection may be 
  1539. closed from either side, if the Server closes the connection then the 
  1540. connection handle must be passed as a parameter. 
  1541.  
  1542. Returns 
  1543. The method returns 1 (TRUE) if successful else 0 (FALSE ). 
  1544.  
  1545.  
  1546. ΓòÉΓòÉΓòÉ <hidden> CloseConnection - Parameters ΓòÉΓòÉΓòÉ
  1547.  
  1548.  hConn               The handle to the connection which you want to close. This 
  1549.                      parameter is only used when a Server closes a connection 
  1550.                      with a client. 
  1551.  
  1552.  
  1553. ΓòÉΓòÉΓòÉ 4.2. ErrorMessage ΓòÉΓòÉΓòÉ
  1554.  
  1555.  
  1556. ΓòÉΓòÉΓòÉ <hidden> ErrorMessage - List ΓòÉΓòÉΓòÉ
  1557.  
  1558. Topics 
  1559.  
  1560.  o Description 
  1561.  
  1562.  Applies to 
  1563.  
  1564.  Servers 
  1565.  Clients 
  1566.  
  1567.  See also 
  1568.  
  1569.  o GetErrorData 
  1570.  o CSError 
  1571.  
  1572.  
  1573. ΓòÉΓòÉΓòÉ <hidden> ErrorMessage - Description ΓòÉΓòÉΓòÉ
  1574.  
  1575. ok = VRMethod( object, "ErrorMessage");
  1576.  
  1577. Pops up a message box with details of the last connection error. If you receive 
  1578. persistent errors with same codes, note then down and contact ADD Consulting. 
  1579.  
  1580. Returns 
  1581. The method returns 1 (TRUE) if successful else 0 (FALSE ). 
  1582.  
  1583.  
  1584. ΓòÉΓòÉΓòÉ 4.3. GetClientData ΓòÉΓòÉΓòÉ
  1585.  
  1586.  
  1587. ΓòÉΓòÉΓòÉ <hidden> GetClientData - List ΓòÉΓòÉΓòÉ
  1588.  
  1589. Topics 
  1590.  
  1591.  o Description 
  1592.  o Parameters 
  1593.  
  1594.  Applies to 
  1595.  
  1596.  Servers 
  1597.  
  1598.  See also 
  1599.  
  1600.  o SetClientData 
  1601.  o StartListen 
  1602.  o StopListen 
  1603.  o Listen 
  1604.  
  1605.  
  1606. ΓòÉΓòÉΓòÉ <hidden> GetClientData - Description ΓòÉΓòÉΓòÉ
  1607.  
  1608. ok = VRMethod( object, "GetClientData", hConn, "Data.");
  1609.  
  1610. Collect full information about a connected client process. This includes the 
  1611. connection handle, the listen state and any user data that has been set by 
  1612. client with SetClientData. 
  1613.  
  1614. Returns 
  1615. The method returns 1 (TRUE) if successful else 0 (FALSE ). 
  1616.  
  1617.  
  1618. ΓòÉΓòÉΓòÉ <hidden> GetClientData - Parameters ΓòÉΓòÉΓòÉ
  1619.  
  1620.  hConn               The handle to the connection for which data is sought. 
  1621.  
  1622.  "Data."             Quoted name of a stem variable to receive the client data. 
  1623.  
  1624.     Data.0         Always 3 
  1625.  
  1626.     data.1         The connection handle. This should be the same as the hConn 
  1627.                    parameter passed to the method. 
  1628.  
  1629.     Data.2         Flag indicating whether the client is in listen mode. 
  1630.                    1 = Client is listening 
  1631.                    0 = Client is not listening 
  1632.  
  1633.     Data.3         Any user data associated with the client connection. 
  1634.  
  1635.  
  1636. ΓòÉΓòÉΓòÉ 4.4. GetErrorData ΓòÉΓòÉΓòÉ
  1637.  
  1638.  
  1639. ΓòÉΓòÉΓòÉ <hidden> GetErrorData - List ΓòÉΓòÉΓòÉ
  1640.  
  1641. Topics 
  1642.  
  1643.  o Description 
  1644.  o Parameters 
  1645.  
  1646.  Applies to 
  1647.  
  1648.  Servers 
  1649.  Clients 
  1650.  
  1651.  See also 
  1652.  
  1653.  o ErrorMessage 
  1654.  o CSError 
  1655.  
  1656.  
  1657. ΓòÉΓòÉΓòÉ <hidden> GetErrorData - Description ΓòÉΓòÉΓòÉ
  1658.  
  1659. ok = VRMethod( object, "GetErrorData", "ErrorStem.");
  1660.  
  1661. Collect full information about a connection error. This information should be 
  1662. noted and sent to ADD Consulting if you have a persistent error. 
  1663.  
  1664. Returns 
  1665. The method returns 1 (TRUE) if successful else 0 (FALSE ). 
  1666.  
  1667.  
  1668. ΓòÉΓòÉΓòÉ <hidden> GetErrorData - Parameters ΓòÉΓòÉΓòÉ
  1669.  
  1670.  "ErrorStem."        Quoted name of a stem variable to receive the error data. 
  1671.  
  1672.     ErrorStem.0    Always 6 
  1673.  
  1674.     ErrorStem.1    Return code from the operation (see Error codes). 
  1675.  
  1676.     ErrorStem.2    Severity of error: 
  1677.                    RETURN_CODE_OK (0) = No error 
  1678.                    RETURN_CODE_WARNING (1) = Warning 
  1679.                    RETURN_CODE_ERROR_OK (2) = Error that was recovered 
  1680.                    internally 
  1681.                    RETURN_CODE_ERROR (3) = Error 
  1682.  
  1683.     ErrorStem.3    Return code from OS/2, NetBIOS or APPC 
  1684.  
  1685.     ErrorStem.4    Return code from OS/2, NetBIOS or APPC 
  1686.  
  1687.     ErrorStem.5    Return code from OS/2, NetBIOS or APPC 
  1688.  
  1689.     ErrorStem.6    Error message (English) 
  1690.  
  1691.  
  1692. ΓòÉΓòÉΓòÉ 4.5. LoadVars ΓòÉΓòÉΓòÉ
  1693.  
  1694.  
  1695. ΓòÉΓòÉΓòÉ <hidden> LoadVars - List ΓòÉΓòÉΓòÉ
  1696.  
  1697. Topics 
  1698.  
  1699.  o Description 
  1700.  
  1701.  Applies to 
  1702.  
  1703.  Servers 
  1704.  Clients 
  1705.  
  1706.  See also 
  1707.  
  1708.  o ErrorMessage 
  1709.  o GetErrorData 
  1710.  o Error codes 
  1711.  
  1712.  
  1713. ΓòÉΓòÉΓòÉ <hidden> LoadVars - Description ΓòÉΓòÉΓòÉ
  1714.  
  1715. ok = VRMethod( object, "LoadVars");
  1716.  
  1717. This loads the REXX variables that define error codes and severity codes used 
  1718. to allow easy comparison of the values returned by GetErrorData and available 
  1719. in the CSError event. Apart from the variables defined in Error codes, the 
  1720. following severity code variables are loaded: 
  1721.  
  1722.  o RETURN_CODE_OK = 0 
  1723.  o RETURN_CODE_WARNING = 1 
  1724.  o RETURN_CODE_ERROR_OK = 2 
  1725.  o RETURN_CODE_ERROR = 3 
  1726.  
  1727.  Returns 
  1728.  The method returns 1 (TRUE) if successful else 0 (FALSE ). 
  1729.  
  1730.  
  1731. ΓòÉΓòÉΓòÉ 4.6. OpenConnection ΓòÉΓòÉΓòÉ
  1732.  
  1733.  
  1734. ΓòÉΓòÉΓòÉ <hidden> OpenConn List ΓòÉΓòÉΓòÉ
  1735.  
  1736. Topics 
  1737.  
  1738.  o Description 
  1739.  o Parameters 
  1740.  
  1741.  Applies to 
  1742.  
  1743.  Clients 
  1744.  
  1745.  See also 
  1746.  
  1747.  o CloseConnection 
  1748.  o AutoConnect 
  1749.  o ConnHandle 
  1750.  o Connect 
  1751.  o Connected 
  1752.  o ConnRetries 
  1753.  o ProcessType 
  1754.  
  1755.  
  1756. ΓòÉΓòÉΓòÉ <hidden> OpenConnection - Description ΓòÉΓòÉΓòÉ
  1757.  
  1758. ok = VRMethod( object, "OpenConnection", Retries);
  1759.  
  1760. Opens the connection to the Server. 
  1761.  
  1762. Warning: This method only applies to Client processes 
  1763.  
  1764. Returns 
  1765. The method returns 1 (TRUE) if successful else 0 (FALSE ). 
  1766.  
  1767.  
  1768. ΓòÉΓòÉΓòÉ <hidden> OpenConnection - Parameters ΓòÉΓòÉΓòÉ
  1769.  
  1770.  Retries             If specified this parameter overrides the setting of 
  1771.                      ConnRetries but does not change it. 
  1772.  
  1773.  
  1774. ΓòÉΓòÉΓòÉ 4.7. SendData ΓòÉΓòÉΓòÉ
  1775.  
  1776.  
  1777. ΓòÉΓòÉΓòÉ <hidden> SendData List ΓòÉΓòÉΓòÉ
  1778.  
  1779. Topics 
  1780.  
  1781.  o Description 
  1782.  o Parameters 
  1783.  
  1784.  Applies to 
  1785.  
  1786.  Servers 
  1787.  Clients 
  1788.  
  1789.  See Also 
  1790.  
  1791.  o DataReady 
  1792.  o CSError 
  1793.  
  1794.  
  1795. ΓòÉΓòÉΓòÉ <hidden> SendData - Description ΓòÉΓòÉΓòÉ
  1796.  
  1797. ok = VRMethod( object, "SendData", CmdId,
  1798.                                    Data,
  1799.                                    RespId,
  1800.                                    HConn,
  1801.                                    ExpectAnswer,
  1802.                                    WaitForAnswer);
  1803.  
  1804. Send a block of data with a command to the connection partner. 
  1805.  
  1806. Returns 
  1807. The method returns 1 (TRUE) if successful else 0 (FALSE ). 
  1808.  
  1809. Warning: There are three reserved command strings used to control the listen 
  1810. state of a client and to set the user data for a client on the server: 
  1811.  
  1812.  o "START_LISTEN" (client -> server) 
  1813.  o "STOP_LISTEN" (client <-> server) 
  1814.  o "USER_DATA" (client -> server) 
  1815.  
  1816.  
  1817. ΓòÉΓòÉΓòÉ <hidden> SendData - Parameters ΓòÉΓòÉΓòÉ
  1818.  
  1819.  CmdId               user defined command Identifier. This is sent with the 
  1820.                      data to the server process. This parameter MUST be 
  1821.                      present. 
  1822.  
  1823.  Data                The actual data you want to send. This parameter MUST be 
  1824.                      present. 
  1825.  
  1826.  RespId              If you are sending from a Client this parameter should be 
  1827.                      0. It will be changed to a unique number by the system if 
  1828.                      you want an answer from the server. If you are replying 
  1829.                      from a server you MUST use the RespID info from the 
  1830.                      DataReady event. This parameter MUST be present. 
  1831.  
  1832.  HConn               The handle to the connection. When sending from a client 
  1833.                      this parameter can be set to 0. When replying from a 
  1834.                      server this MUST be the DAHandle info item from the 
  1835.                      DataReady event. The parameter MUST be present when called 
  1836.                      on a server. 
  1837.  
  1838.  ExpectAnswer        Boolean parameter which if set to 1 indicates that you 
  1839.                      wish to get a reply from the server. 
  1840.  
  1841.  WaitForAnswer       Boolean parameter that when set to 1 indicates that the 
  1842.                      call to SendData will not return until the server has 
  1843.                      replied. If you set this parameter to 0, a thread is 
  1844.                      started to wait asynchronously for the server reply. In 
  1845.                      both cases the data received will be available through the 
  1846.                      DataReady event. 
  1847.  
  1848.  
  1849. ΓòÉΓòÉΓòÉ 4.8. SetClientData ΓòÉΓòÉΓòÉ
  1850.  
  1851.  
  1852. ΓòÉΓòÉΓòÉ <hidden> SetClientData List ΓòÉΓòÉΓòÉ
  1853.  
  1854. Topics 
  1855.  
  1856.  o Description 
  1857.  o Parameters 
  1858.  
  1859.  Applies to 
  1860.  
  1861.  Clients 
  1862.  
  1863.  See Also 
  1864.  
  1865.  o GetClientData 
  1866.  
  1867.  
  1868. ΓòÉΓòÉΓòÉ <hidden> SetClientData - Description ΓòÉΓòÉΓòÉ
  1869.  
  1870. ok = VRMethod( object, "SetClientData", data);
  1871.  
  1872. Sets the user data associated with the client on the server. This data is NOT 
  1873. stored locally on the client, it is sent to the server. 
  1874.  
  1875. Returns 
  1876. The method returns 1 (TRUE) if successful else 0 (FALSE ). 
  1877.  
  1878.  
  1879. ΓòÉΓòÉΓòÉ <hidden> SetClientData - Parameters ΓòÉΓòÉΓòÉ
  1880.  
  1881.  Data                String representation of the data you want to send. This 
  1882.                      parameter MUST be present. 
  1883.  
  1884.  
  1885. ΓòÉΓòÉΓòÉ 4.9. StartListen ΓòÉΓòÉΓòÉ
  1886.  
  1887.  
  1888. ΓòÉΓòÉΓòÉ <hidden> StartListen List ΓòÉΓòÉΓòÉ
  1889.  
  1890. Topics 
  1891.  
  1892.  o Description 
  1893.  o Parameters 
  1894.  
  1895.  Applies to 
  1896.  
  1897.  Clients 
  1898.  
  1899.  See Also 
  1900.  
  1901.  o DataReady 
  1902.  o CSError 
  1903.  o Listen 
  1904.  o StopListen 
  1905.  
  1906.  
  1907. ΓòÉΓòÉΓòÉ <hidden> StartListen - Description ΓòÉΓòÉΓòÉ
  1908.  
  1909. ok = VRMethod( object, "StartListen");
  1910.  
  1911. Starts the listen thread for a client to receive asynchronous messages from the 
  1912. server. Any messages arriving on this thread will cause a DataReady event to be 
  1913. generated. While the thread is running the Listen property will be set to 1. 
  1914.  
  1915. Returns 
  1916. The method returns 1 (TRUE) if successful else 0 (FALSE ). 
  1917.  
  1918.  
  1919. ΓòÉΓòÉΓòÉ <hidden> StartListen - Parameters ΓòÉΓòÉΓòÉ
  1920.  
  1921. None 
  1922.  
  1923.  
  1924. ΓòÉΓòÉΓòÉ 4.10. StopListen ΓòÉΓòÉΓòÉ
  1925.  
  1926.  
  1927. ΓòÉΓòÉΓòÉ <hidden> StopListen List ΓòÉΓòÉΓòÉ
  1928.  
  1929. Topics 
  1930.  
  1931.  o Description 
  1932.  o Parameters 
  1933.  
  1934.  Applies to 
  1935.  
  1936.  Servers 
  1937.  Clients 
  1938.  
  1939.  See Also 
  1940.  
  1941.  o DataReady 
  1942.  o CSError 
  1943.  o Listen 
  1944.  o StartListen 
  1945.  
  1946.  
  1947. ΓòÉΓòÉΓòÉ <hidden> StopListen - Description ΓòÉΓòÉΓòÉ
  1948.  
  1949. ok = VRMethod( object, "StopListen", hConn);
  1950.  
  1951. Stops the listen thread where a client receives asynchronous messages from the 
  1952. server. The Listen property will be set to 0. This method can be called from a 
  1953. server to stop the listen thread on a client; in this case the connection 
  1954. handle parameter must be present. 
  1955.  
  1956. Returns 
  1957. The method returns 1 (TRUE) if successful else 0 (FALSE ). 
  1958.  
  1959.  
  1960. ΓòÉΓòÉΓòÉ <hidden> StopListen - Parameters ΓòÉΓòÉΓòÉ
  1961.  
  1962.  hConn               The handle to the connection. When sending from a client 
  1963.                      this parameter can be absent. The parameter MUST be 
  1964.                      present when called from a server. 
  1965.