//+-------------------------------------------------------------------------
//
//  Microsoft Windows
//
//  Copyright (C) Microsoft Corporation, 1997 - 1999
//
//  File:       rpcrt4.src
//
//--------------------------------------------------------------------------

;
; In order for the Wx86 rpcrt4 thunks to work properly it is important to
; put each new export name within an appropriate #ifdef #endif pair.
; For example, a new export from the runtime should be placed under EXPORT_RT
; while a new Ndr export that should be emulated be placed under EXPORT_NDR
;
#ifdef EXPORT_NDR
#ifdef EXPORT_RT
LIBRARY RPCRT4
#else
LIBRARY WXNDRDLL
#endif
#else
LIBRARY WXRTDLL
#endif


EXPORTS
#ifdef EXPORT_NDR
    CreateProxyFromTypeInfo    PRIVATE
    CreateStubFromTypeInfo     PRIVATE
    CStdStubBuffer_AddRef
    CStdStubBuffer_Connect
    CStdStubBuffer_CountRefs
    CStdStubBuffer_DebugServerQueryInterface
    CStdStubBuffer_DebugServerRelease
    CStdStubBuffer_Disconnect
    CStdStubBuffer_Invoke
    CStdStubBuffer_IsIIDSupported
    CStdStubBuffer_QueryInterface
    DllGetClassObject          PRIVATE
    DllRegisterServer          PRIVATE
#endif
#ifdef EXPORT_RT
    DceErrorInqTextA
    DceErrorInqTextW
    I_RpcAllocate
    I_RpcAsyncAbortCall
    I_RpcAsyncSetHandle
    I_RpcBCacheAllocate
    I_RpcBCacheFree
    I_RpcBindingCopy
    I_RpcBindingInqConnId
    I_RpcBindingInqDynamicEndpoint = RPCRT4.I_RpcBindingInqDynamicEndpointW
    I_RpcBindingInqDynamicEndpointA
    I_RpcBindingInqDynamicEndpointW
    I_RpcBindingInqTransportType
    I_RpcBindingIsClientLocal
    I_RpcBindingToStaticStringBindingW
    I_RpcClearMutex
#if !defined(_M_IA64)
    I_RpcConnectionSetSockBuffSize
    I_RpcConnectionInqSockBuffSize
#endif
    I_RpcDeleteMutex
    I_RpcEnableWmiTrace
    I_RpcFree
    I_RpcFreeBuffer
    I_RpcFreePipeBuffer
    I_RpcGetBuffer
    I_RpcGetBufferWithObject
    I_RpcGetCurrentCallHandle
    I_RpcGetExtendedError
    I_RpcExceptionFilter
    I_RpcIfInqTransferSyntaxes
    I_RpcBindingInqSecurityContext
    I_RpcTurnOnEEInfoPropagation
    I_RpcBindingInqWireIdForSnego
    I_RpcBindingInqLocalClientPID
    I_RpcBindingHandleToAsyncHandle
    I_RpcServerInqLocalConnAddress
    I_RpcLogEvent
#ifdef _INTERNAL_RPC_BUILD_
    I_RpcltDebugSetPDUFilter
#endif
    I_RpcMapWin32Status
    I_RpcNegotiateTransferSyntax
    I_RpcNsBindingSetEntryName = RPCRT4.I_RpcNsBindingSetEntryNameW
    I_RpcNsBindingSetEntryNameA
    I_RpcNsBindingSetEntryNameW
    I_RpcNsInterfaceExported
    I_RpcNsInterfaceUnexported
    I_RpcParseSecurity
    I_RpcPauseExecution
    I_RpcReallocPipeBuffer
    I_RpcReceive
    I_RpcRequestMutex
    I_RpcSend
    I_RpcSendReceive
    I_RpcServerAllocateIpPort
    I_RpcServerSetAddressChangeFn
    I_RpcServerInqAddressChangeFn
    I_RpcServerInqTransportType
    I_RpcServerRegisterForwardFunction
    I_RpcServerUseProtseq2A
    I_RpcServerUseProtseqEp2A
    I_RpcServerUseProtseq2W
    I_RpcServerUseProtseqEp2W
#ifdef RPC_ENABLE_TEST_HOOKS
    I_RpcSetTestHook
#endif
    I_RpcSystemFunction001
    I_RpcSsDontSerializeContext
    I_RpcTransConnectionAllocatePacket
    I_RpcTransConnectionFreePacket
    I_RpcTransConnectionReallocPacket
    I_RpcTransDatagramAllocate
    I_RpcTransDatagramAllocate2
    I_RpcTransDatagramFree
    I_RpcTransGetThreadEvent
    I_RpcTransIoCancelled
#ifdef RPC_OLD_IO_PROTECTION
    I_RpcTransProtectThread
    I_RpcTransUnprotectThread
#endif
    I_RpcTransServerNewConnection
    I_UuidCreate
    I_RpcProxyNewConnection

#ifdef EXPORT_NDR
    IUnknown_AddRef_Proxy
    IUnknown_QueryInterface_Proxy
    IUnknown_Release_Proxy
#endif
#if !defined(_WIN64)
    MIDL_wchar_strcpy PRIVATE
    MIDL_wchar_strlen PRIVATE
#endif
#endif
#ifdef EXPORT_NDR
    MesBufferHandleReset
    MesDecodeBufferHandleCreate
    MesDecodeIncrementalHandleCreate
    MesEncodeDynBufferHandleCreate
    MesEncodeFixedBufferHandleCreate
    MesEncodeIncrementalHandleCreate
    MesHandleFree
    MesIncrementalHandleReset
    MesInqProcEncodingId
#endif
#ifdef EXPORT_RT
    NDRCContextBinding
    NDRCContextMarshall
    NDRCContextUnmarshall
    NDRSContextMarshall
    NDRSContextUnmarshall
    NDRSContextMarshallEx
    NDRSContextUnmarshallEx
    NDRSContextMarshall2
    NDRSContextUnmarshall2
    RpcSsContextLockExclusive
    RpcSsContextLockShared
   #if !defined(_WIN64)
     NDRcopy PRIVATE
   #endif
#endif
#ifdef EXPORT_NDR
    NdrAllocate
    NdrAsyncClientCall
    NdrAsyncServerCall
#ifdef EXPORT_NDR64
    Ndr64AsyncClientCall
    Ndr64AsyncServerCallAll
    Ndr64AsyncServerCall64
#endif
    NdrByteCountPointerBufferSize
    NdrByteCountPointerFree
    NdrByteCountPointerMarshall
    NdrByteCountPointerUnmarshall
    NdrClearOutParameters
  #if !defined(_WIN64)
    NdrClientCall
  #endif
    NdrCreateServerInterfaceFromStub
    NdrClientCall2
#ifdef EXPORT_NDR64
    NdrClientCall3
#endif
    NdrClientContextMarshall
    NdrClientContextUnmarshall
    NdrClientInitialize
    NdrClientInitializeNew
    NdrComplexArrayBufferSize
    NdrComplexArrayFree
    NdrComplexArrayMarshall
    NdrComplexArrayMemorySize
    NdrComplexArrayUnmarshall
    NdrComplexStructBufferSize
    NdrComplexStructFree
    NdrComplexStructMarshall
    NdrComplexStructMemorySize
    NdrComplexStructUnmarshall
    NdrConformantArrayBufferSize
    NdrConformantArrayFree
    NdrConformantArrayMarshall
    NdrConformantArrayMemorySize
    NdrConformantArrayUnmarshall
    NdrConformantStringBufferSize
    NdrConformantStringMarshall
    NdrConformantStringMemorySize
    NdrConformantStringUnmarshall
    NdrConformantStructBufferSize
    NdrConformantStructFree
    NdrConformantStructMarshall
    NdrConformantStructMemorySize
    NdrConformantStructUnmarshall
    NdrConformantVaryingArrayBufferSize
    NdrConformantVaryingArrayFree
    NdrConformantVaryingArrayMarshall
    NdrConformantVaryingArrayMemorySize
    NdrConformantVaryingArrayUnmarshall
    NdrConformantVaryingStructBufferSize
    NdrConformantVaryingStructFree
    NdrConformantVaryingStructMarshall
    NdrConformantVaryingStructMemorySize
    NdrConformantVaryingStructUnmarshall
    NdrContextHandleInitialize
    NdrContextHandleSize
    NdrConvert
    NdrConvert2
    NdrCorrelationFree
    NdrCorrelationInitialize
    NdrCorrelationPass
    NdrCStdStubBuffer_Release
    NdrCStdStubBuffer2_Release
    NdrDcomAsyncClientCall
    NdrDcomAsyncStubCall
#ifdef EXPORT_NDR64
    Ndr64DcomAsyncClientCall
    Ndr64DcomAsyncStubCall
#endif
    NdrDllCanUnloadNow
    NdrDllGetClassObject
    NdrDllRegisterProxy
    NdrDllUnregisterProxy
    NdrEncapsulatedUnionBufferSize
    NdrEncapsulatedUnionFree
    NdrEncapsulatedUnionMarshall
    NdrEncapsulatedUnionMemorySize
    NdrEncapsulatedUnionUnmarshall
    NdrFixedArrayBufferSize
    NdrFixedArrayFree
    NdrFixedArrayMarshall
    NdrFixedArrayMemorySize
    NdrFixedArrayUnmarshall
    NdrFreeBuffer
    NdrFullPointerFree
    NdrFullPointerInsertRefId
    NdrFullPointerQueryPointer
    NdrFullPointerQueryRefId
    NdrFullPointerXlatFree
    NdrFullPointerXlatInit
    NdrGetBuffer
    NdrGetDcomProtocolVersion
    NdrGetUserMarshalInfo
    NdrInterfacePointerBufferSize
    NdrInterfacePointerFree
    NdrInterfacePointerMarshall
    NdrInterfacePointerMemorySize
    NdrInterfacePointerUnmarshall
    NdrMapCommAndFaultStatus
    NdrMesProcEncodeDecode2
#ifdef EXPORT_NDR64
    NdrMesProcEncodeDecode3
#endif
    NdrMesProcEncodeDecode
    NdrMesSimpleTypeAlignSize
    NdrMesSimpleTypeDecode
    NdrMesSimpleTypeEncode
#ifdef EXPORT_NDR64
    NdrMesSimpleTypeAlignSizeAll
    NdrMesSimpleTypeDecodeAll
    NdrMesSimpleTypeEncodeAll
#endif
    NdrMesTypeAlignSize
    NdrMesTypeDecode
    NdrMesTypeEncode
    NdrMesTypeAlignSize2
    NdrMesTypeDecode2
    NdrMesTypeEncode2
    NdrMesTypeFree2
#ifdef EXPORT_NDR64
    NdrMesTypeAlignSize3
    NdrMesTypeDecode3
    NdrMesTypeEncode3
    NdrMesTypeFree3
#endif
    NdrNonConformantStringBufferSize
    NdrNonConformantStringMarshall
    NdrNonConformantStringMemorySize
    NdrNonConformantStringUnmarshall
    NdrNonEncapsulatedUnionBufferSize
    NdrNonEncapsulatedUnionFree
    NdrNonEncapsulatedUnionMarshall
    NdrNonEncapsulatedUnionMemorySize
    NdrNonEncapsulatedUnionUnmarshall
    NdrNsGetBuffer
    NdrNsSendReceive
    NdrOleAllocate
    NdrOleFree
    NdrPartialIgnoreClientBufferSize
    NdrPartialIgnoreClientMarshall
    NdrPartialIgnoreServerInitialize
    NdrPartialIgnoreServerUnmarshall
    NdrPointerBufferSize
    NdrPointerFree
    NdrPointerMarshall
    NdrPointerMemorySize
    NdrPointerUnmarshall
    NdrProxyErrorHandler
    NdrProxyFreeBuffer
    NdrProxyGetBuffer
    NdrProxyInitialize
    NdrProxySendReceive
    NdrRangeUnmarshall
#endif
#ifdef EXPORT_RT
    NdrRpcSmClientAllocate
    NdrRpcSmClientFree
    NdrRpcSsDefaultAllocate
    NdrRpcSsDefaultFree
    NdrRpcSmSetClientToOsf
    NdrRpcSsDisableAllocate
    NdrRpcSsEnableAllocate
#endif
#ifdef EXPORT_NDR
    NdrSendReceive
  #if !defined(_WIN64)
    NdrServerCall
  #endif
    NdrServerCall2
#ifdef EXPORT_NDR64
    NdrServerCallAll
    NdrServerCallNdr64
#endif
    NdrServerContextMarshall
    NdrServerContextUnmarshall
    NdrServerContextNewMarshall
    NdrServerContextNewUnmarshall
    NdrServerInitialize
    NdrServerInitializeMarshall
    NdrServerInitializeNew
    NdrServerInitializePartial
    NdrServerInitializeUnmarshall
  #if !defined(_WIN64)
    NdrServerMarshall
    NdrServerUnmarshall
  #endif
    NdrSimpleStructBufferSize
    NdrSimpleStructFree
    NdrSimpleStructMarshall
    NdrSimpleStructMemorySize
    NdrSimpleStructUnmarshall
    NdrSimpleTypeMarshall
    NdrSimpleTypeUnmarshall
  #if !defined(_WIN64)
    NdrStubCall
  #endif
    NdrStubCall2
#ifdef EXPORT_NDR64
    NdrStubCall3
#endif
    NdrStubForwardingFunction
    NdrStubGetBuffer
    NdrStubInitialize
    NdrStubInitializeMarshall
    NdrVaryingArrayBufferSize
    NdrVaryingArrayFree
    NdrVaryingArrayMarshall
    NdrVaryingArrayMemorySize
    NdrVaryingArrayUnmarshall
    NdrXmitOrRepAsBufferSize
    NdrXmitOrRepAsFree
    NdrXmitOrRepAsMarshall
    NdrXmitOrRepAsMemorySize
    NdrXmitOrRepAsUnmarshall
    NdrUserMarshalSimpleTypeConvert
    NdrUserMarshalBufferSize
    NdrUserMarshalFree
    NdrUserMarshalMarshall
    NdrUserMarshalMemorySize
    NdrUserMarshalUnmarshall
#endif
#ifdef EXPORT_RT
    RpcAsyncAbortCall
    RpcAsyncCancelCall
    RpcAsyncCompleteCall
    RpcAsyncGetCallStatus
    RpcAsyncInitializeHandle
    RpcAsyncRegisterInfo
    RpcBindingCopy
    RpcBindingFree
    RpcBindingFromStringBindingA
    RpcBindingFromStringBindingW
    RpcBindingInqAuthClientA
    RpcBindingInqAuthClientW
    RpcBindingInqAuthClientExA
    RpcBindingInqAuthClientExW
    RpcBindingInqAuthInfoA
    RpcBindingInqAuthInfoExA
    RpcBindingInqAuthInfoExW
    RpcBindingInqAuthInfoW
    RpcBindingInqObject
    RpcBindingReset
    RpcBindingServerFromClient
    RpcBindingSetAuthInfoA
    RpcBindingSetAuthInfoExA
    RpcBindingSetAuthInfoExW
    RpcBindingSetAuthInfoW
    RpcBindingSetObject
    RpcBindingSetOption
    RpcBindingInqOption
    RpcBindingToStringBindingA
    RpcBindingToStringBindingW
    RpcBindingVectorFree
    RpcGetAuthorizationContextForClient
    RpcFreeAuthorizationContext
    RpcCancelThread
    RpcCancelThreadEx
    RpcCertGeneratePrincipalNameA
    RpcCertGeneratePrincipalNameW
    RpcEpRegisterA
    RpcEpRegisterNoReplaceA
    RpcEpRegisterNoReplaceW
    RpcEpRegisterW
    RpcEpResolveBinding
    RpcEpUnregister
    RpcErrorStartEnumeration
    RpcErrorGetNextRecord
    RpcErrorEndEnumeration
    RpcErrorResetEnumeration
    RpcErrorGetNumberOfRecords
    RpcErrorSaveErrorInfo
    RpcErrorLoadErrorInfo
    RpcErrorAddRecord
    RpcErrorClearInformation
    RpcIfIdVectorFree
    RpcIfInqId
    RpcImpersonateClient
    RpcServerInqCallAttributesA
    RpcServerInqCallAttributesW
    RpcMgmtEnableIdleCleanup
    RpcMgmtEpEltInqBegin
    RpcMgmtEpEltInqDone
    RpcMgmtEpEltInqNextA
    RpcMgmtEpEltInqNextW
    RpcMgmtEpUnregister
    RpcMgmtInqComTimeout
    RpcMgmtInqDefaultProtectLevel
    RpcMgmtInqIfIds
    RpcMgmtInqServerPrincNameA
    RpcMgmtInqServerPrincNameW
    RpcMgmtInqStats
    RpcMgmtIsServerListening
    RpcMgmtSetAuthorizationFn
    RpcMgmtSetCancelTimeout
    RpcMgmtSetComTimeout
    RpcMgmtSetServerStackSize
    RpcMgmtStatsVectorFree
    RpcMgmtStopServerListening
    RpcMgmtWaitServerListen
    RpcNetworkInqProtseqsA
    RpcNetworkInqProtseqsW
    RpcNetworkIsProtseqValidA
    RpcNetworkIsProtseqValidW
    RpcNsBindingInqEntryNameA
    RpcNsBindingInqEntryNameW
    RpcObjectInqType
    RpcObjectSetInqFn
    RpcObjectSetType
    RpcProtseqVectorFreeA
    RpcProtseqVectorFreeW
    RpcRaiseException
    RpcRevertToSelf
    RpcRevertToSelfEx
    RpcServerInqBindings
    RpcServerInqDefaultPrincNameA
    RpcServerInqDefaultPrincNameW
    RpcServerInqIf
    RpcServerListen
    RpcServerRegisterAuthInfoA
    RpcServerRegisterAuthInfoW
    RpcServerRegisterIf
    RpcServerRegisterIf2
    RpcServerRegisterIfEx
    RpcServerTestCancel
    RpcServerUnregisterIf
    RpcServerUnregisterIfEx
    RpcServerUseAllProtseqs
    RpcServerUseAllProtseqsEx
    RpcServerUseAllProtseqsIf
    RpcServerUseAllProtseqsIfEx
    RpcServerUseProtseqA
    RpcServerUseProtseqExA
    RpcServerUseProtseqEpA
    RpcServerUseProtseqEpExA
    RpcServerUseProtseqEpW
    RpcServerUseProtseqEpExW
    RpcServerUseProtseqIfA
    RpcServerUseProtseqIfExA
    RpcServerUseProtseqIfW
    RpcServerUseProtseqIfExW
    RpcServerUseProtseqW
    RpcServerUseProtseqExW
    RpcServerYield
    RpcSmAllocate
    RpcSmClientFree
    RpcSmDestroyClientContext
    RpcSmDisableAllocate
    RpcSmEnableAllocate
    RpcSmFree
    RpcSmGetThreadHandle
    RpcSmSetClientAllocFree
    RpcSmSetThreadHandle
    RpcSmSwapClientAllocFree
    RpcSsAllocate
    RpcSsDestroyClientContext
    RpcSsDisableAllocate
    RpcSsDontSerializeContext = RPCRT4.I_RpcSsDontSerializeContext
    RpcSsEnableAllocate
    RpcSsFree
    RpcSsGetContextBinding
    RpcSsGetThreadHandle
    RpcSsSetClientAllocFree
    RpcSsSetThreadHandle
    RpcSsSwapClientAllocFree
    RpcStringBindingComposeA
    RpcStringBindingComposeW
    RpcStringBindingParseA
    RpcStringBindingParseW
    RpcStringFreeA
    RpcStringFreeW
    RpcTestCancel
    RpcUserFree
    TowerConstruct
    TowerExplode
    UuidCompare
    UuidCreate
    UuidCreateNil
    UuidCreateSequential
    UuidEqual
    UuidFromStringA
    UuidFromStringW
    UuidHash
    UuidIsNil
    UuidToStringA
    UuidToStringW

#if !defined(_WIN64)

;
;   MIDL 1.0 entry points
;

    char_array_from_ndr PRIVATE
    char_from_ndr PRIVATE
    data_from_ndr PRIVATE
    data_into_ndr PRIVATE
    data_size_ndr PRIVATE
    double_array_from_ndr PRIVATE
    double_from_ndr PRIVATE
    enum_from_ndr PRIVATE
    float_array_from_ndr PRIVATE
    float_from_ndr PRIVATE
    long_array_from_ndr PRIVATE
    long_from_ndr PRIVATE
    long_from_ndr_temp PRIVATE
    short_array_from_ndr PRIVATE
    short_from_ndr PRIVATE
    short_from_ndr_temp PRIVATE
    tree_into_ndr PRIVATE
    tree_peek_ndr PRIVATE
    tree_size_ndr PRIVATE

#endif

;
;   just for the time being
;
    RpcInitializeAsyncHandle = RPCRT4.RpcAsyncInitializeHandle
    RpcRegisterAsyncInfo = RPCRT4.RpcAsyncRegisterInfo
    RpcGetAsyncCallStatus = RPCRT4.RpcAsyncGetCallStatus
    RpcCompleteAsyncCall = RPCRT4.RpcAsyncCompleteCall
    RpcAbortAsyncCall = RPCRT4.RpcAsyncAbortCall
    RpcCancelAsyncCall = RPCRT4.RpcAsyncCancelCall
    I_RpcSetAsyncHandle = RPCRT4.I_RpcAsyncSetHandle
    I_RpcAbortAsyncCall = RPCRT4.I_RpcAsyncAbortCall
#endif
#ifdef EXPORT_RT
;
; For Wx86 thunks
    GlobalMutexRequestExternal
    GlobalMutexClearExternal
    NdrpSetRpcSsDefaults
#endif

#ifdef EXPORT_NDR
;
; Wrapper functions for TxfAux
;
    NdrGetSimpleTypeBufferSize
    NdrGetSimpleTypeBufferAlignment
    NdrGetSimpleTypeMemorySize
    NdrGetTypeFlags
    NdrTypeUnmarshall
    NdrTypeMarshall
    NdrTypeSize
	NdrTypeFree
;
; Misc RPC functions for TxfAux
;
    NdrOutInit
    NdrUnmarshallBasetypeInline
    NdrpMemoryIncrement
    NdrpCreateProxy
    NdrpCreateStub
;
; Typegen functions for TxfAux
;
    NdrpReleaseTypeFormatString
    NdrpReleaseTypeGenCookie
    NdrpVarVtOfTypeDesc
    NdrpGetTypeFormatString
    NdrpGetProcFormatString
    NdrpGetTypeGenCookie
;
; To be removed by Lab07 when the transition is complete
;
    SimpleTypeBufferSize
    SimpleTypeAlignment
    SimpleTypeMemorySize
    NdrTypeFlags
    pfnUnmarshallRoutines
    pfnMarshallRoutines
    pfnSizeRoutines	
    pfnFreeRoutines

#endif