REPASP.C
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:3k
源码类别:

Windows编程

开发平台:

Visual C++

  1. /****************************************************************************
  2.                    Microsoft RPC Version 2.0
  3.            Copyright Microsoft Corp. 1992, 1993, 1994- 1996
  4.                          repas Example
  5.     FILE:       repasp.c
  6.     PURPOSE:    Remote procedures that are linked with the server
  7.                 side of RPC distributed application
  8.     FUNCTIONS:  ModifyListProc() - changes the doubly-linked list
  9.                 Shutdown() - shuts down the server side
  10.     COMMENTS:   Related to repass.c
  11. ****************************************************************************/
  12. #include <stdlib.h>
  13. #include <stdio.h>
  14. #include "repass.h"    // header file generated by MIDL compiler
  15. /****************************************************************************
  16. Function:   ModifyMyWString
  17. Parameters: pStr : Pointer to pointer to UNICODE string
  18. Returns:    none
  19. Purpose:    Display the string passed in, modify it, and return
  20. Comments:   This sample is meant to demonstrate a typical use of the
  21.             represent_as attribute:  The client and server have different
  22.             local views of the data, although the IDL file describes the
  23.             wire contract.
  24. ****************************************************************************/
  25. void ModifyMyWString(WCHAR_STRING * pStr)
  26. {
  27.     wprintf(L"nModifyMyWString: received UNICODE string:n%snn", *pStr );
  28.     wcscpy(*pStr, L"This string comes back on the wire as UNICODE");
  29.     wprintf(L"ModifyMyWString: sending UNICODE string:n%snn", *pStr );
  30. }
  31. /****************************************************************************
  32. Function:   ModifyMyString
  33. Parameters: pStr : Pointer to pointer to UNICODE string
  34. Returns:    none
  35. Purpose:    Display the string passed in, modify it, and return
  36. Comments:   This sample is meant to demonstrate a typical use of the
  37.             represent_as attribute:  The client and server have different
  38.             local views of the data, although the IDL file describes the
  39.             wire contract.
  40. ****************************************************************************/
  41. void ModifyMyString(WCHAR_STRING * pStr)
  42. {
  43.     wprintf(L"nModifyMyString: received UNICODE string:n%snn", *pStr );
  44.     wcscpy(*pStr, L"This UNICODE string comes back on the wire as ASCII");
  45.     wprintf(L"ModifyMyString: sending UNICODE string:n%snn", *pStr );
  46. }
  47. /****************************************************************************
  48. Function:   Shutdown
  49. Parameters: none
  50. Returns:    none
  51. Purpose:    Make the server stop listening for client applications.
  52. Comments:   The two NULL parameters passed to RpcServerUnregisterIf are
  53.             a show of brute force:  they tell the function to turn
  54.             off all registered interfaces.  See the RPC API function
  55.             reference for more information about these functions.
  56. ****************************************************************************/
  57. void Shutdown(void)
  58. {
  59.     RPC_STATUS status;
  60.     printf("Calling RpcMgmtStopServerListeningn");
  61.     status = RpcMgmtStopServerListening(NULL);
  62.     printf("RpcMgmtStopServerListening returned: 0x%xn", status);
  63.     if (status) {
  64.         exit(status);
  65.     }
  66.     printf("Calling RpcServerUnregisterIfn");
  67.     status = RpcServerUnregisterIf(NULL, NULL, FALSE);
  68.     printf("RpcServerUnregisterIf returned 0x%xn", status);
  69.     if (status) {
  70.         exit(status);
  71.     }
  72. }
  73. /* end file repasp.c */