REPASP.C

/**************************************************************************** 
Microsoft RPC Version 2.0
Copyright Microsoft Corp. 1992, 1993, 1994- 1996
repas Example

FILE: repasp.c

PURPOSE: Remote procedures that are linked with the server
side of RPC distributed application

FUNCTIONS: ModifyListProc() - changes the doubly-linked list
Shutdown() - shuts down the server side

COMMENTS: Related to repass.c

****************************************************************************/

#include <stdlib.h>
#include <stdio.h>
#include "repass.h" // header file generated by MIDL compiler


/****************************************************************************

Function: ModifyMyWString

Parameters: pStr : Pointer to pointer to UNICODE string

Returns: none

Purpose: Display the string passed in, modify it, and return

Comments: This sample is meant to demonstrate a typical use of the
represent_as attribute: The client and server have different
local views of the data, although the IDL file describes the
wire contract.

****************************************************************************/
void ModifyMyWString(WCHAR_STRING * pStr)
{
wprintf(L"\nModifyMyWString: received UNICODE string:\n%s\n\n", *pStr );
wcscpy(*pStr, L"This string comes back on the wire as UNICODE");
wprintf(L"ModifyMyWString: sending UNICODE string:\n%s\n\n", *pStr );

}

/****************************************************************************

Function: ModifyMyString

Parameters: pStr : Pointer to pointer to UNICODE string

Returns: none

Purpose: Display the string passed in, modify it, and return

Comments: This sample is meant to demonstrate a typical use of the
represent_as attribute: The client and server have different
local views of the data, although the IDL file describes the
wire contract.

****************************************************************************/
void ModifyMyString(WCHAR_STRING * pStr)
{
wprintf(L"\nModifyMyString: received UNICODE string:\n%s\n\n", *pStr );
wcscpy(*pStr, L"This UNICODE string comes back on the wire as ASCII");
wprintf(L"ModifyMyString: sending UNICODE string:\n%s\n\n", *pStr );

}


/****************************************************************************

Function: Shutdown

Parameters: none

Returns: none

Purpose: Make the server stop listening for client applications.

Comments: The two NULL parameters passed to RpcServerUnregisterIf are
a show of brute force: they tell the function to turn
off all registered interfaces. See the RPC API function
reference for more information about these functions.

****************************************************************************/

void Shutdown(void)
{
RPC_STATUS status;

printf("Calling RpcMgmtStopServerListening\n");
status = RpcMgmtStopServerListening(NULL);
printf("RpcMgmtStopServerListening returned: 0x%x\n", status);
if (status) {
exit(status);
}

printf("Calling RpcServerUnregisterIf\n");
status = RpcServerUnregisterIf(NULL, NULL, FALSE);
printf("RpcServerUnregisterIf returned 0x%x\n", status);
if (status) {
exit(status);
}
}

/* end file repasp.c */