README.TXT
CLUUID 
 
 
The CLUUID program demonstrates how to supply multiple implementations of 
the remote procedure specified in the interface. It also demonstrates 
how the client selects among the implementations by providing a client  
object uuid. 
 
SUMMARY 
======= 
 
The server calls RpcObjectSetType to associate a client object uuid with  
the object uuid in the Object Registry Table. The server initializes a  
manager entry point vector (manager epv) and then calls RpcRegisterIf to  
associate the interface uuid and the object uuid with the manager epv in  
the Interface Registry Table. 
 
When the client makes a remote procedure call, the client object uuid is  
mapped to the object uuid in the Object Registry Table. The resulting 
object uuid and the interface uuid are mapped to a manager entry point  
vector in the Interface Registry Table. 
 
By default, in this example, the server registers two implementations of  
the "hello, world" function HelloProc and HelloProc2. The HelloProc2 
implementation is associated with the object uuid 
"11111111-1111-1111-1111-111111111111". When the client makes a procedure  
call with a null uuid, the client's request is mapped to the original  
HelloProc. When the client makes a procedure call with the client object  
uuid "11111111-1111-1111-1111-11111111111", the client's request is mapped  
to HelloProc2 (which prints the string in reverse). 
 
FILES 
===== 
 
The directory samples\rpc\cluuid contains the following files for 
building the sample distributed application CLUUID: 
 
File          Description 
 
README.TXT    Readme file for the cluuid sample 
CLUUID.IDL    Interface definition language file 
CLUUID.ACF    Attribute configuration file 
CLUUIDC.C     Client main program 
CLUUIDS.C     Server main program 
CLUUIDP.C     Remote procedures 
MAKEFILE      Nmake file to build for Windows NT or Windows 95 
MAKEFILE.DOS  Nmake file to build for MS-DOS 
 
------------------------------------------- 
BUILDING CLIENT AND SERVER APPLICATIONS FOR 
MICROSOFT WINDOWS NT OR WINDOWS 95 
------------------------------------------- 
 
The following environment variables should be already set for you: 
 
  set CPU=i386 
  set INCLUDE=%SDKROOT%\h 
  set LIB=%SDKROOT%\lib 
  set PATH=%SDKROOT%\system32;%SDKROOT%\bin 
 
where %SDKROOT% is the root directory for the 32-bit Windows SDK. 
 
For mips, set CPU=mips 
For alpha, set CPU=alpha 
 
Build the sample distributed application: 
 
  nmake cleanall 
  nmake 
 
This builds the executable programs cluuidc.exe(client) and  
cluuids.exe (server). 
 
----------------------------------------------------------------------- 
BUILDING THE CLIENT APPLICATION FOR MS-DOS 
----------------------------------------------------------------------- 
 
After installing the Microsoft Visual C/C++ version 1.50 development 
environment and the 16-bit RPC SDK on a Windows NT or Windows 95 
computer, you can build the sample client application from Windows NT 
or Windows 95: 
 
  nmake -f makefile.dos cleanall 
  nmake -f makefile.dos 
 
This builds the client application cluuidc.exe. 
 
You may also execute the Microsoft Visual C/C++ compiler under MS-DOS. 
This requires a two-step build process. 
 
  Step One: Compile the .IDL files under Windows NT or Windows 95 
     nmake -a -f makefile.dos cluuid.h 
 
  Step Two: Compile the C sources (stub and application) under MS-DOS 
     nmake -f makefile.dos 
 
------------------------------------------ 
RUNNING THE CLIENT AND SERVER APPLICATIONS 
------------------------------------------ 
 
On the server, enter: 
 
  cluuids 
 
On the client, enter: 
 
  net start workstation 
  cluuidc 
 
To call the second implementation of the function, 
on the client, enter: 
 
  cluuidc -u "11111111-1111-1111-1111-111111111111" 
 
Note: The client and server applications can run on the same Microsoft  
Windows NT computer when you use different screen groups. 
 
Several command line switches are available to change settings for this  
program. For a listing of the switches available from the client program,  
enter: 
 
  cluuidc -? 
 
For a listing of switches available from the server program, enter: 
 
  cluuids -? 
 
--------------------- 
RUNNING ON WINDOWS 95 
--------------------- 
 
If you wish to run the server on Windows 95, you will need to use 
the LRPC protocol. 
 
To start the server, enter: 
 
 cluuids -p ncalrpc 
 
To start the client (from the same machine), enter: 
 
 cluuidc -p ncalrpc