home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 18 REXX
/
18-REXX.zip
/
rexxne.zip
/
REXXNET.TXT
< prev
next >
Wrap
Text File
|
1993-09-13
|
3KB
|
121 lines
REXXNET.DLL
Description
RexxNet.DLL is a DLL that supports the Lan Server APIs from Rexx.
The APIs are replicated to match the standard 'C' call interface
(with a few exceptions, enhancements). It can be used from OS/2
1.3 or OS/2 2.x and Lan Server 3.0.
DLL Usage
The DLL is used by registering and calling the function
NetLoadFuncs. When completed, then functions can be dropped by
calling NetDropFuncs.
/* REXX */
call rxfuncadd 'NetLoadFuncs', 'RexxNet', 'NetLoadFuncs'
call NetLoadFuncs
...
call NetDropFuncs
exit
API Function Usage
All the APIs callable use the standard 'C' call interface with
the following exceptions:
Any 'buflen' parameter is ignored (and should be omitted if other
fields follow) as the REXX interface has no length limit.
The 'entriesread' parameter is returned as 'Buf.Entries' and any
variable passed is ignored.
The 'totalavail' parameter is ignored and never returned, as the
REXX functions always return the total amount (ie totalavail ==
entriesread and Error 234 should never happen)
All 'reserved' parameter are ignored, but leading reserved
parameters must still be passed.
The 'buf' parameter should be a stem variable. The values passed
in and returned as the structure field names (ignoring the
leading structure-level identifing code).
If the function called is an Enum function, then Buf.Entries will
contain how many structures were returned and Buf.0.xxx to
Buf.n.xxx will contain the returned structures
ie the use_info_0 structure is as follows:
struct use_info_0 { REXX
ui0_local[DEVLEN + 1] stem.Local
ui0_pad not returned
ui0_remote stem.Remote
}
/* REXX */
call rxfuncadd 'NetLoadFuncs', 'RexxNet', 'NetLoadFuncs'
call NetLoadFuncs
retc = NetUseGetInfo('', 'H:', 1, 'Buf')
say Buf.Local '-->' Buf.Remote
Buf.Local = 'Z:'
Buf.Remote = '\\Server\Sharename'
Buf.AsgType = 0
Buf.Password = ''
retc = NetUseAdd('', 1, 'Buf')
if retc \= 0 then
say 'Error:' retc NetGetMessage(retc, "NET.MSG")
retc = NetUseEnum('', 0, 'Info')
do i = 0 to Info.Entries - 1
say Info.i.Local '-->' Info.i.Remote
end
Additional Functions Supplied
For each group of Lan Server APIs there is an additional Info
function that returns a stem variable containing all the field
names for the given level of structure.
NetxxxInfo(level, stem)
ie call NetUseInfo(1, 'Info')
would return the following
Info.0 = 7
Info.1 = 'Local'
Info.2 = 'Remote'
Info.3 = 'Password'
Info.4 = 'Status'
Info.5 = 'Asg_Type'
Info.6 = 'RefCount'
Info.7 = 'UseCount'
Also the function:
int NetGetMessage(errcode, Messagefile)
is supplied. This is the DosGetMessage API from OS/2 and will
return the String message associated with the errcode from the
given message file. If no messagefile is given then OSO001.MSG
is used. The Net functions will return an error code >2100 if a
network error occured, and if so 'NET.MSG' can be used as the
messagefile for the standard error message.
Supported APIs
The following is the list of API groups currently supported:
NetUse
NetUser
NetGroup
NetAlias
NetDomain (NetGetDCName and NetLogonEnum)
NetWksta (All except NetWkstaSetUID2)
NetErrorLog
NetAccess
NetShare
NetApp
NetService
upmeulgn and upmeulgn
NetGetMessage