CLUUIDP.C
资源名称:MSDN_VC98.zip [点击查看]
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:3k
源码类别:
Windows编程
开发平台:
Visual C++
- /****************************************************************************
- Microsoft RPC Version 2.0
- Copyright Microsoft Corp. 1992, 1993, 1994- 1996
- Cluuid Example
- FILE: cluuidp.c
- PURPOSE: Remote procedures that are linked with the server
- side of RPC distributed application
- FUNCTIONS: HelloProc() - prints "hello, world" or other string
- HelloProc2() - prints string backwards
- COMMENTS: This sample 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.
- 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).
- ****************************************************************************/
- #include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
- #include "cluuid.h" // header file generated by MIDL compiler
- void HelloProc(unsigned char * pszString)
- {
- printf("%sn", pszString);
- }
- void HelloProc2(unsigned char * pszString)
- {
- printf("%sn", strrev(pszString));
- }
- void Shutdown(void)
- {
- RPC_STATUS status;
- printf("Calling RpcMgmtStopServerListeningn");
- status = RpcMgmtStopServerListening(NULL);
- printf("RpcMgmtStopServerListening returned: 0x%xn", status);
- if (status) {
- exit(status);
- }
- printf("Calling RpcServerUnregisterIfn");
- status = RpcServerUnregisterIf(NULL, NULL, FALSE);
- printf("RpcServerUnregisterIf returned 0x%xn", status);
- if (status) {
- exit(status);
- }
- }
- /* end of file cluuidp.c */