Interop: OSF DCE RPC and MS RPC Interoperability

This sample demonstrates portability between OSF DCE RPC and Microsoft RPC. This program sends simple messages (strings) from the client to the server. The most important part of INTEROP is the header file Dceport.h. This header file maps OSF DCE RPC APIs and data structures to the Microsoft RPC equivalents.

Main Files

File Description
Readme.txt Readme file for the INTEROP sample
Msg.idl Interface definition language file
Msg.acf Attribute configuration file
Dceport.h Maps OSF APIs and structures to Microsoft RPC equivalents
Client.c Client main program
Server.c Server main program
Midluser.c Memory management routines for Microsoft RPC
Manager.c Client-side utility routines
Makefile Nmake file to build for Windows NT or Windows 95
Makefile.dos Nmake file to build for MS-DOS
Makefile.dos Makefile to build for DCE platform

Building SDK Samples

This sample uses the following keywords:

clientmessage; defined; exit; free; interop_clientmessage; interop_shutdownserver; malloc; midl_user_allocate; midl_user_free; ndrclientinitializenew; ndrconformantstringbuffersize; ndrconformantstringmarshall; ndrconformantstringunmarshall; ndrconvert; ndrfcshort; ndrfreebuffer; ndrgetbuffer; ndrsendreceive; ndrserverinitializenew; printf; raise; rpc_binding_copy; rpc_binding_free; rpc_binding_from_string_binding; rpc_binding_inq_auth_client; rpc_binding_inq_auth_info; rpc_binding_inq_object; rpc_binding_reset; rpc_binding_server_from_client; rpc_binding_set_auth_info; rpc_binding_set_object; rpc_binding_to_string_binding; rpc_binding_vector_free; rpc_ep_register; rpc_ep_register_no_replace; rpc_ep_resolve_binding; rpc_ep_unregister; rpc_if_id_vector_free; rpc_if_inq_id; rpc_if_register_auth_info; rpc_mgmt_ep_elt_inq_begin; rpc_mgmt_ep_elt_inq_done; rpc_mgmt_ep_elt_inq_next; rpc_mgmt_ep_unregister; rpc_mgmt_inq_com_timeout; rpc_mgmt_inq_dflt_protect_level; rpc_mgmt_inq_if_ids; rpc_mgmt_inq_server_princ_name; rpc_mgmt_inq_stats; rpc_mgmt_is_server_listening; rpc_mgmt_set_authorization_fn; rpc_mgmt_set_cancel_timeout; rpc_mgmt_set_com_timeout; rpc_mgmt_set_server_stack_size; rpc_mgmt_stats_vector_free; rpc_mgmt_stop_server_listening; rpc_network_inq_protseqs; rpc_network_is_protseq_valid; rpc_ns_binding_export; rpc_ns_binding_import_begin; rpc_ns_binding_import_done; rpc_ns_binding_import_next; rpc_ns_binding_inq_entry_name; rpc_ns_binding_lookup_begin; rpc_ns_binding_lookup_done; rpc_ns_binding_lookup_next; rpc_ns_binding_select; rpc_ns_binding_unexport; rpc_ns_entry_expand_name; rpc_ns_entry_object_inq_begin; rpc_ns_entry_object_inq_done; rpc_ns_entry_object_inq_next; rpc_ns_group_delete; rpc_ns_group_mbr_add; rpc_ns_group_mbr_inq_begin; rpc_ns_group_mbr_inq_done; rpc_ns_group_mbr_inq_next; rpc_ns_group_mbr_remove; rpc_ns_mgmt_binding_unexport; rpc_ns_mgmt_entry_create; rpc_ns_mgmt_entry_delete; rpc_ns_mgmt_entry_inq_if_ids; rpc_ns_mgmt_handle_set_exp_age; rpc_ns_mgmt_inq_exp_age; rpc_ns_mgmt_set_exp_age; rpc_ns_profile_delete; rpc_ns_profile_elt_add; rpc_ns_profile_elt_inq_begin; rpc_ns_profile_elt_inq_done; rpc_ns_profile_elt_inq_next; rpc_ns_profile_elt_remove; rpc_object_inq_type; rpc_object_set_inq_fn; rpc_object_set_type; rpc_protseq_vector_free; rpc_server_inq_bindings; rpc_server_inq_if; rpc_server_listen; rpc_server_register_auth_info; rpc_server_register_if; rpc_server_unregister_if; rpc_server_use_all_protseqs; rpc_server_use_all_protseqs_if; rpc_server_use_protseq; rpc_server_use_protseq_ep; rpc_server_use_protseq_if; rpc_sm_alloce; rpc_sm_client_free; rpc_sm_destroy_client_context; rpc_sm_disable_allocate; rpc_sm_enable_allocate; rpc_sm_free; rpc_sm_get_thread_handle; rpc_sm_set_client_alloc_free; rpc_sm_set_thread_handle; rpc_sm_swap_client_alloc_free; rpc_string_binding_compose; rpc_string_binding_parse; rpc_string_free; rpcbindingcopy; rpcbindingfree; rpcbindingfromstringbinding; rpcbindinginqauthclient; rpcbindinginqauthinfo; rpcbindinginqobject; rpcbindingreset; rpcbindingserverfromclient; rpcbindingsetauthinfo; rpcbindingsetobject; rpcbindingtostringbinding; rpcbindingvectorfree; rpcepregister; rpcepregisternoreplace; rpcepresolvebinding; rpcepunregister; rpcexceptioncode; rpcifidvectorfree; rpcifinqid; rpcifregisterauthinfo; rpcleaveexception; rpcmgmtepeltinqbegin; rpcmgmtepeltinqdone; rpcmgmtepeltinqnext; rpcmgmtepunregister; rpcmgmtinqcomtimeout; rpcmgmtinqdefaultprotectlevel; rpcmgmtinqifids; rpcmgmtinqserverprincname; rpcmgmtinqstats; rpcmgmtisserverlistening; rpcmgmtsetauthorizathionfn; rpcmgmtsetcanceltimeout; rpcmgmtsetcomtimeout; rpcmgmtsetserverstacksize; rpcmgmtstatsvectorfree; rpcmgmtstopserverlistening; rpcnetworkinqprotseqs; rpcnetworkisprotseqvalid; rpcnsbindingexport; rpcnsbindingimportbegin; rpcnsbindingimportdone; rpcnsbindingimportnext; rpcnsbindinginqentryname; rpcnsbindinglookupbegin; rpcnsbindinglookupdone; rpcnsbindinglookupnext; rpcnsbindingselect; rpcnsbindingunexport; rpcnsentryexpandname; rpcnsentryobjectinqbegin; rpcnsentryobjectinqdone; rpcnsentryobjectinqnext; rpcnsgroupdelete; rpcnsgroupmbradd; rpcnsgroupmbrinqbegin; rpcnsgroupmbrinqdone; rpcnsgroupmbrinqnext; rpcnsgroupmbrremove; rpcnsmgmtbindingunexport; rpcnsmgmtentrycreate; rpcnsmgmtentrydelete; rpcnsmgmtentryinqifids; rpcnsmgmthandlesetexpage; rpcnsmgmtinqexpage; rpcnsmgmtsetexpage; rpcnsprofiledelete; rpcnsprofileeltadd; rpcnsprofileeltinqbegin; rpcnsprofileeltinqdone; rpcnsprofileeltinqnext; rpcnsprofileeltremove; rpcobjectinqtype; rpcobjectsetinqfn; rpcobjectsettype; rpcprotseqvectorfree; rpcraiseexception; rpcserverinqbindings; rpcserverinqif; rpcserverlisten; rpcserverregisterauthinfo; rpcserverregisterif; rpcserverunregisterif; rpcserveruseallprotseqs; rpcserveruseallprotseqsif; rpcserveruseprotseq; rpcserveruseprotseqep; rpcserveruseprotseqif; rpcsetexception; rpcsmallocate; rpcsmclientfree; rpcsmdestroyclientcontext; rpcsmdisableallocate; rpcsmenableallocate; rpcsmfree; rpcsmgetthreadhandle; rpcsmsetclientallocfree; rpcsmsetthreadhandle; rpcsmswapclientallocfree; rpcstringbindingcompose; rpcstringbindingparse; rpcstringfree; shutdownserver; tolower; usage; uuid_compare; uuid_create; uuid_create_nil; uuid_equal; uuid_from_string; uuid_hash; uuid_is_nil; uuid_to_string; uuidcompare; uuidcreate; uuidcreatenil; uuidequal; uuidfromstring; uuidhash; uuidisnil; uuidtostring