Annotation of mstools/samples/rpc/cluuid/cluuidp.c, revision 1.1

1.1     ! root        1: /****************************************************************************
        !             2:                     Microsoft RPC Version 1.0
        !             3:                  Copyright Microsoft Corp. 1992
        !             4:                          Cluuid Example
        !             5: 
        !             6:     FILE:       cluuidp.c
        !             7: 
        !             8:     PURPOSE:    Remote procedures that are linked with the server
        !             9:                 side of RPC distributed application
        !            10: 
        !            11:     FUNCTIONS:  HelloProc() - prints "hello, world" or other string
        !            12:                 HelloProc2() - prints string backwards
        !            13: 
        !            14:     COMMENTS:   This sample program demonstrates how to supply
        !            15:                 multiple implementations of the remote procedure
        !            16:                 specified in the interface. It also demonstrates
        !            17:                 how the client selects among the implementations
        !            18:                 by providing a client object uuid.
        !            19: 
        !            20:                 The server calls RpcObjectSetType to associate a
        !            21:                 client object uuid with the object uuid in the
        !            22:                 Object Registry Table. The server initializes a
        !            23:                 manager entry point vector (manager epv) and
        !            24:                 then calls RpcRegisterIf to associate the interface
        !            25:                 uuid and the object uuid with the manager epv in the
        !            26:                 Interface Registry Table.
        !            27: 
        !            28:                 When the client makes a remote procedure call,
        !            29:                 the client object uuid is mapped to the object uuid
        !            30:                 in the Object Registry Table. The resulting
        !            31:                 object uuid and the interface uuid are mapped to
        !            32:                 a manager entry point vector in the Interface
        !            33:                 Registry Table.
        !            34: 
        !            35:                 By default, in this example, the server registers
        !            36:                 two implementations of the "hello, world" function
        !            37:                 HelloProc and HelloProc2.  The HelloProc2
        !            38:                 implementation is associated with the object uuid
        !            39:                 "11111111-1111-1111-1111-111111111111". When
        !            40:                 the client makes a procedure call with a null
        !            41:                 uuid, the client's request is mapped to the
        !            42:                 original HelloProc.  When the client makes a
        !            43:                 procedure call with the client object uuid
        !            44:                 "11111111-1111-1111-1111-11111111111", the
        !            45:                 client's request is mapped to HelloProc2 (which
        !            46:                 prints the string in reverse).
        !            47: 
        !            48: ****************************************************************************/
        !            49: 
        !            50: #include <stdlib.h>
        !            51: #include <stdio.h>
        !            52: #include <string.h>
        !            53: #include "cluuid.h"    // header file generated by MIDL compiler
        !            54: 
        !            55: void HelloProc(unsigned char * pszString)
        !            56: {
        !            57:     printf("%s\n", pszString);
        !            58: }
        !            59: 
        !            60: void HelloProc2(unsigned char * pszString)
        !            61: {
        !            62:     printf("%s\n", strrev(pszString));
        !            63: }
        !            64: 
        !            65: void Shutdown(void)
        !            66: {
        !            67:     RPC_STATUS status;
        !            68: 
        !            69:     printf("Calling RpcMgmtStopServerListening\n");
        !            70:     status = RpcMgmtStopServerListening(NULL);
        !            71:     printf("RpcMgmtStopServerListening returned: 0x%x\n", status);
        !            72:     if (status) {
        !            73:         exit(status);
        !            74:     }
        !            75: 
        !            76:     printf("Calling RpcServerUnregisterIf\n");
        !            77:     status = RpcServerUnregisterIf(NULL, NULL, FALSE);
        !            78:     printf("RpcServerUnregisterIf returned 0x%x\n", status);
        !            79:     if (status) {
        !            80:         exit(status);
        !            81:     }
        !            82: }
        !            83: 
        !            84: /* end of file cluuidp.c */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.