diff options
Diffstat (limited to 'public/sdk/rpc16/win/inc')
-rw-r--r-- | public/sdk/rpc16/win/inc/midles.h | 218 | ||||
-rw-r--r-- | public/sdk/rpc16/win/inc/rpc.h | 69 | ||||
-rw-r--r-- | public/sdk/rpc16/win/inc/rpcdce.h | 1618 | ||||
-rw-r--r-- | public/sdk/rpc16/win/inc/rpcdcep.h | 415 | ||||
-rw-r--r-- | public/sdk/rpc16/win/inc/rpcerr.h | 188 | ||||
-rw-r--r-- | public/sdk/rpc16/win/inc/rpcndr.h | 2630 | ||||
-rw-r--r-- | public/sdk/rpc16/win/inc/rpcnsi.h | 509 | ||||
-rw-r--r-- | public/sdk/rpc16/win/inc/rpcnsip.h | 72 | ||||
-rw-r--r-- | public/sdk/rpc16/win/inc/rpcx86.h | 74 |
9 files changed, 5793 insertions, 0 deletions
diff --git a/public/sdk/rpc16/win/inc/midles.h b/public/sdk/rpc16/win/inc/midles.h new file mode 100644 index 000000000..b64e4fe61 --- /dev/null +++ b/public/sdk/rpc16/win/inc/midles.h @@ -0,0 +1,218 @@ +/*++ + +Copyright (c) 1991-1996 Microsoft Corporation + +Module Name: + + midles.h + +Abstract: + + This module contains definitions needed for encoding/decoding + support (serializing/deserializing a.k.a. pickling). + +--*/ + +#ifndef __MIDLES_H__ +#define __MIDLES_H__ + +#include <rpcndr.h> + +// +// Set the packing level for RPC structures for Dos and Windows. +// + +#if defined(__RPC_DOS__) || defined(__RPC_WIN16__) +#pragma pack(2) +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Pickling support + */ +typedef enum +{ + MES_ENCODE, + MES_DECODE, +} MIDL_ES_CODE; + +typedef enum +{ + MES_INCREMENTAL_HANDLE, + MES_FIXED_BUFFER_HANDLE, + MES_DYNAMIC_BUFFER_HANDLE +} MIDL_ES_HANDLE_STYLE; + + +typedef void (__RPC_USER * MIDL_ES_ALLOC ) + ( IN OUT void __RPC_FAR * state, + OUT char __RPC_FAR * __RPC_FAR * pbuffer, + IN OUT unsigned int __RPC_FAR * psize ); + +typedef void (__RPC_USER * MIDL_ES_WRITE) + ( IN OUT void __RPC_FAR * state, + IN char __RPC_FAR * buffer, + IN unsigned int size ); + +typedef void (__RPC_USER * MIDL_ES_READ) + ( IN OUT void __RPC_FAR * state, + OUT char __RPC_FAR * __RPC_FAR * pbuffer, + IN OUT unsigned int __RPC_FAR * psize ); + +typedef struct _MIDL_ES_MESSAGE +{ + MIDL_STUB_MESSAGE StubMsg; + MIDL_ES_CODE Operation; + void __RPC_FAR * UserState; + unsigned long MesVersion:8; + unsigned long HandleStyle:8; + unsigned long HandleFlags:8; + unsigned long Reserve:8; + MIDL_ES_ALLOC Alloc; + MIDL_ES_WRITE Write; + MIDL_ES_READ Read; + unsigned char __RPC_FAR * Buffer; + unsigned long BufferSize; + unsigned char __RPC_FAR * __RPC_FAR * pDynBuffer; + unsigned long __RPC_FAR * pEncodedSize; + RPC_SYNTAX_IDENTIFIER InterfaceId; + unsigned long ProcNumber; + unsigned long AlienDataRep; + unsigned long IncrDataSize; + unsigned long ByteCount; +} MIDL_ES_MESSAGE, __RPC_FAR * PMIDL_ES_MESSAGE; + +typedef PMIDL_ES_MESSAGE MIDL_ES_HANDLE; + +RPC_STATUS RPC_ENTRY +MesEncodeIncrementalHandleCreate( + void __RPC_FAR * UserState, + MIDL_ES_ALLOC AllocFn, + MIDL_ES_WRITE WriteFn, + handle_t __RPC_FAR * pHandle ); + +RPC_STATUS RPC_ENTRY +MesDecodeIncrementalHandleCreate( + void __RPC_FAR * UserState, + MIDL_ES_READ ReadFn, + handle_t __RPC_FAR * pHandle ); + + +RPC_STATUS RPC_ENTRY +MesIncrementalHandleReset( + handle_t Handle, + void __RPC_FAR * UserState, + MIDL_ES_ALLOC AllocFn, + MIDL_ES_WRITE WriteFn, + MIDL_ES_READ ReadFn, + MIDL_ES_CODE Operation ); + + +RPC_STATUS RPC_ENTRY +MesEncodeFixedBufferHandleCreate( + char __RPC_FAR * pBuffer, + unsigned long BufferSize, + unsigned long __RPC_FAR * pEncodedSize, + handle_t __RPC_FAR * pHandle ); + +RPC_STATUS RPC_ENTRY +MesEncodeDynBufferHandleCreate( + char __RPC_FAR * __RPC_FAR * pBuffer, + unsigned long __RPC_FAR * pEncodedSize, + handle_t __RPC_FAR * pHandle ); + +RPC_STATUS RPC_ENTRY +MesDecodeBufferHandleCreate( + char __RPC_FAR * pBuffer, + unsigned long BufferSize, + handle_t __RPC_FAR * pHandle ); + + +RPC_STATUS RPC_ENTRY +MesBufferHandleReset( + handle_t Handle, + unsigned long HandleStyle, + MIDL_ES_CODE Operation, + char __RPC_FAR * __RPC_FAR * pBuffer, + unsigned long BufferSize, + unsigned long __RPC_FAR * pEncodedSize ); + + +RPC_STATUS RPC_ENTRY +MesHandleFree( handle_t Handle ); + +RPC_STATUS RPC_ENTRY +MesInqProcEncodingId( + handle_t Handle, + PRPC_SYNTAX_IDENTIFIER pInterfaceId, + unsigned long __RPC_FAR * pProcNum ); + + +#if defined(_MIPS_) || defined(_ALPHA_) || defined(_PPC_) +#define __RPC_UNALIGNED __unaligned +#else +#define __RPC_UNALIGNED +#endif + +void RPC_ENTRY I_NdrMesMessageInit( PMIDL_STUB_MESSAGE ); + +size_t RPC_ENTRY +NdrMesSimpleTypeAlignSize ( handle_t ); + +void RPC_ENTRY +NdrMesSimpleTypeDecode( + handle_t Handle, + void __RPC_FAR * pObject, + short Size ); + +void RPC_ENTRY +NdrMesSimpleTypeEncode( + handle_t Handle, + PMIDL_STUB_DESC pStubDesc, + void __RPC_FAR * pObject, + short Size ); + + +size_t RPC_ENTRY +NdrMesTypeAlignSize( + handle_t Handle, + PMIDL_STUB_DESC pStubDesc, + PFORMAT_STRING pFormatString, + void __RPC_FAR * pObject ); + +void RPC_ENTRY +NdrMesTypeEncode( + handle_t Handle, + PMIDL_STUB_DESC pStubDesc, + PFORMAT_STRING pFormatString, + void __RPC_FAR * pObject ); + +void RPC_ENTRY +NdrMesTypeDecode( + handle_t Handle, + PMIDL_STUB_DESC pStubDesc, + PFORMAT_STRING pFormatString, + void __RPC_FAR * pObject ); + +void RPC_VAR_ENTRY +NdrMesProcEncodeDecode( + handle_t Handle, + PMIDL_STUB_DESC pStubDesc, + PFORMAT_STRING pFormatString, + ... ); + + +#ifdef __cplusplus +} +#endif + +// Reset the packing level for DOS and Windows. + +#if defined(__RPC_DOS__) || defined(__RPC_WIN16__) +#pragma pack() +#endif + +#endif /* __MIDLES_H__ */ diff --git a/public/sdk/rpc16/win/inc/rpc.h b/public/sdk/rpc16/win/inc/rpc.h new file mode 100644 index 000000000..11ac876f5 --- /dev/null +++ b/public/sdk/rpc16/win/inc/rpc.h @@ -0,0 +1,69 @@ + +/*++ + +Copyright (c) 1991-1993 Microsoft Corporation + +Module Name: + + rpc.h + +Abstract: + + Master include file for RPC applications. + +--*/ + +#ifndef __RPC_H__ +#define __RPC_H__ + +// Set the packing level for RPC structures. + +#pragma warning(disable:4103) +#pragma pack(2) + +#ifdef __cplusplus +extern "C" { +#endif + +#define __RPC_WIN16__ + +#ifndef __MIDL_USER_DEFINED +#define midl_user_allocate MIDL_user_allocate +#define midl_user_free MIDL_user_free +#define __MIDL_USER_DEFINED +#endif + +typedef unsigned short RPC_STATUS; + +#define RPCXCWORD 7 + +#define __RPC_FAR __far +#define __RPC_API __far __pascal +#define __RPC_USER __far __pascal __export +#define __RPC_STUB __far __pascal __export +#define RPC_ENTRY __pascal __export __far + +typedef void _near * I_RPC_HANDLE; + +#include "rpcdce.h" +#include "rpcnsi.h" +#include "rpcerr.h" +#include "rpcx86.h" + +#ifdef PASCAL +extern RPC_STATUS RPC_ENTRY RpcWinSetYieldInfo(HWND, BOOL, WORD, DWORD); +extern RPC_STATUS RPC_ENTRY RpcWinSetYieldTimeout(unsigned int); +extern RPC_STATUS RPC_ENTRY I_RpcWinSetTaskYielding(unsigned); +#endif + +#ifdef __cplusplus +} +#endif + +// Reset the packing level. + +#pragma pack() +#pragma warning(default:4103) + +#endif // __RPC_H__ + diff --git a/public/sdk/rpc16/win/inc/rpcdce.h b/public/sdk/rpc16/win/inc/rpcdce.h new file mode 100644 index 000000000..099457ea4 --- /dev/null +++ b/public/sdk/rpc16/win/inc/rpcdce.h @@ -0,0 +1,1618 @@ +/*++ + +Copyright (c) 1991-1996 Microsoft Corporation + +Module Name: + + rpcdce.h + +Abstract: + + This module contains the DCE RPC runtime APIs. + +--*/ + +#ifndef __RPCDCE_H__ +#define __RPCDCE_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#define IN +#define OUT +#define OPTIONAL + +/*typedef char small;*/ +/*typedef unsigned char byte;*/ +/*typedef unsigned char boolean;*/ + +typedef I_RPC_HANDLE RPC_BINDING_HANDLE; +typedef RPC_BINDING_HANDLE handle_t; +#define rpc_binding_handle_t RPC_BINDING_HANDLE + +#ifndef GUID_DEFINED +#define GUID_DEFINED +typedef struct _GUID +{ + unsigned long Data1; + unsigned short Data2; + unsigned short Data3; + unsigned char Data4[8]; +} GUID; +#endif /* GUID_DEFINED */ + +#ifndef UUID_DEFINED +#define UUID_DEFINED +typedef GUID UUID; +#ifndef uuid_t +#define uuid_t UUID +#endif +#endif + +typedef struct _RPC_BINDING_VECTOR +{ + unsigned long Count; + RPC_BINDING_HANDLE BindingH[1]; +} RPC_BINDING_VECTOR; +#ifndef rpc_binding_vector_t +#define rpc_binding_vector_t RPC_BINDING_VECTOR +#endif + +typedef struct _UUID_VECTOR +{ + unsigned long Count; + UUID *Uuid[1]; +} UUID_VECTOR; +#ifndef uuid_vector_t +#define uuid_vector_t UUID_VECTOR +#endif + +typedef void __RPC_FAR * RPC_IF_HANDLE; + +#ifndef IFID_DEFINED +#define IFID_DEFINED +typedef struct _RPC_IF_ID +{ + UUID Uuid; + unsigned short VersMajor; + unsigned short VersMinor; +} RPC_IF_ID; +#endif + +#define RPC_C_BINDING_INFINITE_TIMEOUT 10 +#define RPC_C_BINDING_MIN_TIMEOUT 0 +#define RPC_C_BINDING_DEFAULT_TIMEOUT 5 +#define RPC_C_BINDING_MAX_TIMEOUT 9 + +#define RPC_C_CANCEL_INFINITE_TIMEOUT -1 + +#define RPC_C_LISTEN_MAX_CALLS_DEFAULT 1234 +#define RPC_C_PROTSEQ_MAX_REQS_DEFAULT 10 + +#define RPC_C_BIND_TO_ALL_NICS 1 +#define RPC_C_USE_INTERNET_PORT 1 +#define RPC_C_USE_INTRANET_PORT 2 + +#ifdef RPC_UNICODE_SUPPORTED +typedef struct _RPC_PROTSEQ_VECTORA +{ + unsigned int Count; + unsigned char __RPC_FAR * Protseq[1]; +} RPC_PROTSEQ_VECTORA; + +typedef struct _RPC_PROTSEQ_VECTORW +{ + unsigned int Count; + unsigned short __RPC_FAR * Protseq[1]; +} RPC_PROTSEQ_VECTORW; + +#ifdef UNICODE +#define RPC_PROTSEQ_VECTOR RPC_PROTSEQ_VECTORW +#else /* UNICODE */ +#define RPC_PROTSEQ_VECTOR RPC_PROTSEQ_VECTORA +#endif /* UNICODE */ + +#else /* RPC_UNICODE_SUPPORTED */ + +typedef struct _RPC_PROTSEQ_VECTOR +{ + unsigned int Count; + unsigned char __RPC_FAR * Protseq[1]; +} RPC_PROTSEQ_VECTOR; + +#endif /* RPC_UNICODE_SUPPORTED */ +typedef struct _RPC_POLICY { + unsigned int Length ; + unsigned long EndpointFlags ; + unsigned long NICFlags ; + } RPC_POLICY, __RPC_FAR *PRPC_POLICY ; + +typedef void __RPC_USER +RPC_OBJECT_INQ_FN ( + IN UUID __RPC_FAR * ObjectUuid, + OUT UUID __RPC_FAR * TypeUuid, + OUT RPC_STATUS __RPC_FAR * Status + ); + +typedef RPC_STATUS +RPC_IF_CALLBACK_FN ( + IN RPC_IF_HANDLE InterfaceUuid, + IN void *Context + ) ; + +#define RPC_MGR_EPV void + +typedef struct +{ + unsigned int Count; + unsigned long Stats[1]; +} RPC_STATS_VECTOR; + +#define RPC_C_STATS_CALLS_IN 0 +#define RPC_C_STATS_CALLS_OUT 1 +#define RPC_C_STATS_PKTS_IN 2 +#define RPC_C_STATS_PKTS_OUT 3 + +typedef struct +{ + unsigned long Count; + RPC_IF_ID __RPC_FAR * IfId[1]; +} RPC_IF_ID_VECTOR; + +/* client */ +RPC_STATUS RPC_ENTRY +RpcBindingCopy ( + IN RPC_BINDING_HANDLE SourceBinding, + OUT RPC_BINDING_HANDLE __RPC_FAR * DestinationBinding + ); + +/* client */ +RPC_STATUS RPC_ENTRY +RpcBindingFree ( + IN OUT RPC_BINDING_HANDLE __RPC_FAR * Binding + ); + +/* client */ + +#ifdef RPC_UNICODE_SUPPORTED + +RPC_STATUS RPC_ENTRY +RpcBindingFromStringBindingA ( + IN unsigned char __RPC_FAR * StringBinding, + OUT RPC_BINDING_HANDLE __RPC_FAR * Binding + ); + +RPC_STATUS RPC_ENTRY +RpcBindingFromStringBindingW ( + IN unsigned short __RPC_FAR * StringBinding, + OUT RPC_BINDING_HANDLE __RPC_FAR * Binding + ); + +#ifdef UNICODE +#define RpcBindingFromStringBinding RpcBindingFromStringBindingW +#else /* UNICODE */ +#define RpcBindingFromStringBinding RpcBindingFromStringBindingA +#endif /* UNICODE */ + +#else /* RPC_UNICODE_SUPPORTED */ + +RPC_STATUS RPC_ENTRY +RpcBindingFromStringBinding ( + IN unsigned char __RPC_FAR * StringBinding, + OUT RPC_BINDING_HANDLE __RPC_FAR * Binding + ); + +#endif /* RPC_UNICODE_SUPPORTED */ + +/* client/server */ +RPC_STATUS RPC_ENTRY +RpcBindingInqObject ( + IN RPC_BINDING_HANDLE Binding, + OUT UUID __RPC_FAR * ObjectUuid + ); + +/* client */ +RPC_STATUS RPC_ENTRY +RpcBindingReset ( + IN RPC_BINDING_HANDLE Binding + ); + +/* RpcBindingServerFromClient : UNSUPPORTED */ +/* RpcBindingSetAuthInfo */ + +/* client */ +RPC_STATUS RPC_ENTRY +RpcBindingSetObject ( + IN RPC_BINDING_HANDLE Binding, + IN UUID __RPC_FAR * ObjectUuid + ); + +/* client/server */ +RPC_STATUS RPC_ENTRY +RpcMgmtInqDefaultProtectLevel( + IN unsigned long AuthnSvc, + OUT unsigned long __RPC_FAR *AuthnLevel + ); + +/* client/server */ + +#ifdef RPC_UNICODE_SUPPORTED + +RPC_STATUS RPC_ENTRY +RpcBindingToStringBindingA ( + IN RPC_BINDING_HANDLE Binding, + OUT unsigned char __RPC_FAR * __RPC_FAR * StringBinding + ); + +RPC_STATUS RPC_ENTRY +RpcBindingToStringBindingW ( + IN RPC_BINDING_HANDLE Binding, + OUT unsigned short __RPC_FAR * __RPC_FAR * StringBinding + ); + +#ifdef UNICODE +#define RpcBindingToStringBinding RpcBindingToStringBindingW +#else /* UNICODE */ +#define RpcBindingToStringBinding RpcBindingToStringBindingA +#endif /* UNICODE */ + +#else /* RPC_UNICODE_SUPPORTED */ + +RPC_STATUS RPC_ENTRY +RpcBindingToStringBinding ( + IN RPC_BINDING_HANDLE Binding, + OUT unsigned char __RPC_FAR * __RPC_FAR * StringBinding + ); + +#endif /* RPC_UNICODE_SUPPORTED */ + +/* client/server */ +RPC_STATUS RPC_ENTRY +RpcBindingVectorFree ( + IN OUT RPC_BINDING_VECTOR __RPC_FAR * __RPC_FAR * BindingVector + ); + +/* client/server */ + +#ifdef RPC_UNICODE_SUPPORTED + +RPC_STATUS RPC_ENTRY +RpcStringBindingComposeA ( + IN unsigned char __RPC_FAR * ObjUuid OPTIONAL, + IN unsigned char __RPC_FAR * Protseq OPTIONAL, + IN unsigned char __RPC_FAR * NetworkAddr OPTIONAL, + IN unsigned char __RPC_FAR * Endpoint OPTIONAL, + IN unsigned char __RPC_FAR * Options OPTIONAL, + OUT unsigned char __RPC_FAR * __RPC_FAR * StringBinding OPTIONAL + ); + +RPC_STATUS RPC_ENTRY +RpcStringBindingComposeW ( + IN unsigned short __RPC_FAR * ObjUuid OPTIONAL, + IN unsigned short __RPC_FAR * Protseq OPTIONAL, + IN unsigned short __RPC_FAR * NetworkAddr OPTIONAL, + IN unsigned short __RPC_FAR * Endpoint OPTIONAL, + IN unsigned short __RPC_FAR * Options OPTIONAL, + OUT unsigned short __RPC_FAR * __RPC_FAR * StringBinding OPTIONAL + ); + +#ifdef UNICODE +#define RpcStringBindingCompose RpcStringBindingComposeW +#else /* UNICODE */ +#define RpcStringBindingCompose RpcStringBindingComposeA +#endif /* UNICODE */ + +#else /* RPC_UNICODE_SUPPORTED */ + +RPC_STATUS RPC_ENTRY +RpcStringBindingCompose ( + IN unsigned char __RPC_FAR * ObjUuid OPTIONAL, + IN unsigned char __RPC_FAR * Protseq OPTIONAL, + IN unsigned char __RPC_FAR * NetworkAddr OPTIONAL, + IN unsigned char __RPC_FAR * Endpoint OPTIONAL, + IN unsigned char __RPC_FAR * Options OPTIONAL, + OUT unsigned char __RPC_FAR * __RPC_FAR * StringBinding OPTIONAL + ); + +#endif /* RPC_UNICODE_SUPPORTED */ + +/* client/server */ + +#ifdef RPC_UNICODE_SUPPORTED + +RPC_STATUS RPC_ENTRY +RpcStringBindingParseA ( + IN unsigned char __RPC_FAR * StringBinding, + OUT unsigned char __RPC_FAR * __RPC_FAR * ObjUuid OPTIONAL, + OUT unsigned char __RPC_FAR * __RPC_FAR * Protseq OPTIONAL, + OUT unsigned char __RPC_FAR * __RPC_FAR * NetworkAddr OPTIONAL, + OUT unsigned char __RPC_FAR * __RPC_FAR * Endpoint OPTIONAL, + OUT unsigned char __RPC_FAR * __RPC_FAR * NetworkOptions OPTIONAL + ); + +RPC_STATUS RPC_ENTRY +RpcStringBindingParseW ( + IN unsigned short __RPC_FAR * StringBinding, + OUT unsigned short __RPC_FAR * __RPC_FAR * ObjUuid OPTIONAL, + OUT unsigned short __RPC_FAR * __RPC_FAR * Protseq OPTIONAL, + OUT unsigned short __RPC_FAR * __RPC_FAR * NetworkAddr OPTIONAL, + OUT unsigned short __RPC_FAR * __RPC_FAR * Endpoint OPTIONAL, + OUT unsigned short __RPC_FAR * __RPC_FAR * NetworkOptions OPTIONAL + ); + +#ifdef UNICODE +#define RpcStringBindingParse RpcStringBindingParseW +#else /* UNICODE */ +#define RpcStringBindingParse RpcStringBindingParseA +#endif /* UNICODE */ + +#else /* RPC_UNICODE_SUPPORTED */ + +RPC_STATUS RPC_ENTRY +RpcStringBindingParse ( + IN unsigned char __RPC_FAR * StringBinding, + OUT unsigned char __RPC_FAR * __RPC_FAR * ObjUuid OPTIONAL, + OUT unsigned char __RPC_FAR * __RPC_FAR * Protseq OPTIONAL, + OUT unsigned char __RPC_FAR * __RPC_FAR * NetworkAddr OPTIONAL, + OUT unsigned char __RPC_FAR * __RPC_FAR * Endpoint OPTIONAL, + OUT unsigned char __RPC_FAR * __RPC_FAR * NetworkOptions OPTIONAL + ); + +#endif /* RPC_UNICODE_SUPPORTED */ + +/* client/server */ + +#ifdef RPC_UNICODE_SUPPORTED + +RPC_STATUS RPC_ENTRY +RpcStringFreeA ( + IN OUT unsigned char __RPC_FAR * __RPC_FAR * String + ); + +RPC_STATUS RPC_ENTRY +RpcStringFreeW ( + IN OUT unsigned short __RPC_FAR * __RPC_FAR * String + ); + +#ifdef UNICODE +#define RpcStringFree RpcStringFreeW +#else /* UNICODE */ +#define RpcStringFree RpcStringFreeA +#endif /* UNICODE */ + +#else /* RPC_UNICODE_SUPPORTED */ + +RPC_STATUS RPC_ENTRY +RpcStringFree ( + IN OUT unsigned char __RPC_FAR * __RPC_FAR * String + ); + +#endif /* RPC_UNICODE_SUPPORTED */ + +/* client/server */ +RPC_STATUS RPC_ENTRY +RpcIfInqId ( + IN RPC_IF_HANDLE RpcIfHandle, + OUT RPC_IF_ID __RPC_FAR * RpcIfId + ); + +/* client/server */ + +#ifdef RPC_UNICODE_SUPPORTED + +RPC_STATUS RPC_ENTRY +RpcNetworkIsProtseqValidA ( + IN unsigned char __RPC_FAR * Protseq + ); + +RPC_STATUS RPC_ENTRY +RpcNetworkIsProtseqValidW ( + IN unsigned short __RPC_FAR * Protseq + ); + +#ifdef UNICODE +#define RpcNetworkIsProtseqValid RpcNetworkIsProtseqValidW +#else /* UNICODE */ +#define RpcNetworkIsProtseqValid RpcNetworkIsProtseqValidA +#endif /* UNICODE */ + +#else /* RPC_UNICODE_SUPPORTED */ + +RPC_STATUS RPC_ENTRY +RpcNetworkIsProtseqValid ( + IN unsigned char __RPC_FAR * Protseq + ); + +#endif /* RPC_UNICODE_SUPPORTED */ + +/* client */ +RPC_STATUS RPC_ENTRY +RpcMgmtInqComTimeout ( + IN RPC_BINDING_HANDLE Binding, + OUT unsigned int __RPC_FAR * Timeout + ); + +/* client */ +RPC_STATUS RPC_ENTRY +RpcMgmtSetComTimeout ( + IN RPC_BINDING_HANDLE Binding, + IN unsigned int Timeout + ); + +/* client */ +RPC_STATUS RPC_ENTRY +RpcMgmtSetCancelTimeout( + long Timeout + ); + + +/* server */ + +#ifdef RPC_UNICODE_SUPPORTED + +RPC_STATUS RPC_ENTRY +RpcNetworkInqProtseqsA ( + OUT RPC_PROTSEQ_VECTORA __RPC_FAR * __RPC_FAR * ProtseqVector + ); + +RPC_STATUS RPC_ENTRY +RpcNetworkInqProtseqsW ( + OUT RPC_PROTSEQ_VECTORW __RPC_FAR * __RPC_FAR * ProtseqVector + ); + +#ifdef UNICODE +#define RpcNetworkInqProtseqs RpcNetworkInqProtseqsW +#else /* UNICODE */ +#define RpcNetworkInqProtseqs RpcNetworkInqProtseqsA +#endif /* UNICODE */ + +#else /* RPC_UNICODE_SUPPORTED */ + +RPC_STATUS RPC_ENTRY +RpcNetworkInqProtseqs ( + OUT RPC_PROTSEQ_VECTOR __RPC_FAR * __RPC_FAR * ProtseqVector + ); + +#endif /* RPC_UNICODE_SUPPORTED */ + +/* server */ +RPC_STATUS RPC_ENTRY +RpcObjectInqType ( + IN UUID __RPC_FAR * ObjUuid, + OUT UUID __RPC_FAR * TypeUuid OPTIONAL + ); + +/* server */ +RPC_STATUS RPC_ENTRY +RpcObjectSetInqFn ( + IN RPC_OBJECT_INQ_FN __RPC_FAR * InquiryFn + ); + +/* server */ +RPC_STATUS RPC_ENTRY +RpcObjectSetType ( + IN UUID __RPC_FAR * ObjUuid, + IN UUID __RPC_FAR * TypeUuid OPTIONAL + ); + +/* server */ + +#ifdef RPC_UNICODE_SUPPORTED + +RPC_STATUS RPC_ENTRY +RpcProtseqVectorFreeA ( + IN OUT RPC_PROTSEQ_VECTORA __RPC_FAR * __RPC_FAR * ProtseqVector + ); + +RPC_STATUS RPC_ENTRY +RpcProtseqVectorFreeW ( + IN OUT RPC_PROTSEQ_VECTORW __RPC_FAR * __RPC_FAR * ProtseqVector + ); + +#ifdef UNICODE +#define RpcProtseqVectorFree RpcProtseqVectorFreeW +#else /* UNICODE */ +#define RpcProtseqVectorFree RpcProtseqVectorFreeA +#endif /* UNICODE */ + +#else /* RPC_UNICODE_SUPPORTED */ + +RPC_STATUS RPC_ENTRY +RpcProtseqVectorFree ( + IN OUT RPC_PROTSEQ_VECTOR __RPC_FAR * __RPC_FAR * ProtseqVector + ); + +#endif /* RPC_UNICODE_SUPPORTED */ + +/* server */ +RPC_STATUS RPC_ENTRY +RpcServerInqBindings ( + OUT RPC_BINDING_VECTOR __RPC_FAR * __RPC_FAR * BindingVector + ); + +/* server */ +RPC_STATUS RPC_ENTRY +RpcServerInqIf ( + IN RPC_IF_HANDLE IfSpec, + IN UUID __RPC_FAR * MgrTypeUuid, OPTIONAL + OUT RPC_MGR_EPV __RPC_FAR * __RPC_FAR * MgrEpv + ); + +/* server */ +RPC_STATUS RPC_ENTRY +RpcServerListen ( + IN unsigned int MinimumCallThreads, + IN unsigned int MaxCalls, + IN unsigned int DontWait + ); + +/* server */ +RPC_STATUS RPC_ENTRY +RpcServerRegisterIf ( + IN RPC_IF_HANDLE IfSpec, + IN UUID __RPC_FAR * MgrTypeUuid OPTIONAL, + IN RPC_MGR_EPV __RPC_FAR * MgrEpv OPTIONAL + ); + +/* server */ +RPC_STATUS RPC_ENTRY +RpcServerRegisterIfEx ( + IN RPC_IF_HANDLE IfSpec, + IN UUID __RPC_FAR * MgrTypeUuid, + IN RPC_MGR_EPV __RPC_FAR * MgrEpv, + IN unsigned int Flags, + IN unsigned int MaxCalls, + IN RPC_IF_CALLBACK_FN __RPC_FAR *IfCallback + ); + +/* server */ +RPC_STATUS RPC_ENTRY +RpcServerUnregisterIf ( + IN RPC_IF_HANDLE IfSpec, + IN UUID __RPC_FAR * MgrTypeUuid, OPTIONAL + IN unsigned int WaitForCallsToComplete + ); + +/* server */ +RPC_STATUS RPC_ENTRY +RpcServerUseAllProtseqs ( + IN unsigned int MaxCalls, + IN void __RPC_FAR * SecurityDescriptor OPTIONAL + ); + +/* server */ +RPC_STATUS RPC_ENTRY +RpcServerUseAllProtseqsEx ( + IN unsigned int MaxCalls, + IN void __RPC_FAR * SecurityDescriptor, + IN PRPC_POLICY Policy + ); + +/* server */ +RPC_STATUS RPC_ENTRY +RpcServerUseAllProtseqsIf ( + IN unsigned int MaxCalls, + IN RPC_IF_HANDLE IfSpec, + IN void __RPC_FAR * SecurityDescriptor OPTIONAL + ); + +/* server */ +RPC_STATUS RPC_ENTRY +RpcServerUseAllProtseqsIfEx ( + IN unsigned int MaxCalls, + IN RPC_IF_HANDLE IfSpec, + IN void __RPC_FAR * SecurityDescriptor, + IN PRPC_POLICY Policy + ); + + +/* server */ + +#ifdef RPC_UNICODE_SUPPORTED + +RPC_STATUS RPC_ENTRY +RpcServerUseProtseqA ( + IN unsigned char __RPC_FAR * Protseq, + IN unsigned int MaxCalls, + IN void __RPC_FAR * SecurityDescriptor OPTIONAL + ); + +RPC_STATUS RPC_ENTRY +RpcServerUseProtseqExA ( + IN unsigned char __RPC_FAR * Protseq, + IN unsigned int MaxCalls, + IN void __RPC_FAR * SecurityDescriptor, + IN PRPC_POLICY Policy + ); + +RPC_STATUS RPC_ENTRY +RpcServerUseProtseqW ( + IN unsigned short __RPC_FAR * Protseq, + IN unsigned int MaxCalls, + IN void __RPC_FAR * SecurityDescriptor OPTIONAL + ); + +RPC_STATUS RPC_ENTRY +RpcServerUseProtseqExW ( + IN unsigned short __RPC_FAR * Protseq, + IN unsigned int MaxCalls, + IN void __RPC_FAR * SecurityDescriptor, + IN PRPC_POLICY Policy + ); + +#ifdef UNICODE +#define RpcServerUseProtseq RpcServerUseProtseqW +#define RpcServerUseProtseqEx RpcServerUseProtseqExW +#else /* UNICODE */ +#define RpcServerUseProtseq RpcServerUseProtseqA +#define RpcServerUseProtseqEx RpcServerUseProtseqExA +#endif /* UNICODE */ + +#else /* RPC_UNICODE_SUPPORTED */ + +RPC_STATUS RPC_ENTRY +RpcServerUseProtseq ( + IN unsigned char __RPC_FAR * Protseq, + IN unsigned int MaxCalls, + IN void __RPC_FAR * SecurityDescriptor OPTIONAL + ); + +RPC_STATUS RPC_ENTRY +RpcServerUseProtseqEx ( + IN unsigned char __RPC_FAR * Protseq, + IN unsigned int MaxCalls, + IN void __RPC_FAR * SecurityDescriptor, + IN PRPC_POLICY Policy + ); + +#endif /* RPC_UNICODE_SUPPORTED */ + +/* server */ + +#ifdef RPC_UNICODE_SUPPORTED + +RPC_STATUS RPC_ENTRY +RpcServerUseProtseqEpA ( + IN unsigned char __RPC_FAR * Protseq, + IN unsigned int MaxCalls, + IN unsigned char __RPC_FAR * Endpoint, + IN void __RPC_FAR * SecurityDescriptor OPTIONAL + ); + +RPC_STATUS RPC_ENTRY +RpcServerUseProtseqEpExA ( + IN unsigned char __RPC_FAR * Protseq, + IN unsigned int MaxCalls, + IN unsigned char __RPC_FAR * Endpoint, + IN void __RPC_FAR * SecurityDescriptor, + IN PRPC_POLICY Policy + ); + +RPC_STATUS RPC_ENTRY +RpcServerUseProtseqEpW ( + IN unsigned short __RPC_FAR * Protseq, + IN unsigned int MaxCalls, + IN unsigned short __RPC_FAR * Endpoint, + IN void __RPC_FAR * SecurityDescriptor OPTIONAL + ); + +RPC_STATUS RPC_ENTRY +RpcServerUseProtseqEpExW ( + IN unsigned short __RPC_FAR * Protseq, + IN unsigned int MaxCalls, + IN unsigned short __RPC_FAR * Endpoint, + IN void __RPC_FAR * SecurityDescriptor, + IN PRPC_POLICY Policy + ); + +#ifdef UNICODE +#define RpcServerUseProtseqEp RpcServerUseProtseqEpW +#define RpcServerUseProtseqEpEx RpcServerUseProtseqEpExW +#else /* UNICODE */ +#define RpcServerUseProtseqEp RpcServerUseProtseqEpA +#define RpcServerUseProtseqEpEx RpcServerUseProtseqEpExA +#endif /* UNICODE */ + +#else /* RPC_UNICODE_SUPPORTED */ + +RPC_STATUS RPC_ENTRY +RpcServerUseProtseqEp ( + IN unsigned char __RPC_FAR * Protseq, + IN unsigned int MaxCalls, + IN unsigned char __RPC_FAR * Endpoint, + IN void __RPC_FAR * SecurityDescriptor OPTIONAL + ); + +RPC_STATUS RPC_ENTRY +RpcServerUseProtseqEpEx ( + IN unsigned char __RPC_FAR * Protseq, + IN unsigned int MaxCalls, + IN unsigned char __RPC_FAR * Endpoint, + IN void __RPC_FAR * SecurityDescriptor, + IN PRPC_POLICY Policy + ); + +#endif /* RPC_UNICODE_SUPPORTED */ + +/* server */ + +#ifdef RPC_UNICODE_SUPPORTED + +RPC_STATUS RPC_ENTRY +RpcServerUseProtseqIfA ( + IN unsigned char __RPC_FAR * Protseq, + IN unsigned int MaxCalls, + IN RPC_IF_HANDLE IfSpec, + IN void __RPC_FAR * SecurityDescriptor OPTIONAL + ); + +RPC_STATUS RPC_ENTRY +RpcServerUseProtseqIfExA ( + IN unsigned char __RPC_FAR * Protseq, + IN unsigned int MaxCalls, + IN RPC_IF_HANDLE IfSpec, + IN void __RPC_FAR * SecurityDescriptor, + IN PRPC_POLICY Policy + ); + +RPC_STATUS RPC_ENTRY +RpcServerUseProtseqIfW ( + IN unsigned short __RPC_FAR * Protseq, + IN unsigned int MaxCalls, + IN RPC_IF_HANDLE IfSpec, + IN void __RPC_FAR * SecurityDescriptor OPTIONAL + ); + +RPC_STATUS RPC_ENTRY +RpcServerUseProtseqIfExW ( + IN unsigned short __RPC_FAR * Protseq, + IN unsigned int MaxCalls, + IN RPC_IF_HANDLE IfSpec, + IN void __RPC_FAR * SecurityDescriptor, + IN PRPC_POLICY Policy + ); + +#ifdef UNICODE +#define RpcServerUseProtseqIf RpcServerUseProtseqIfW +#define RpcServerUseProtseqIfEx RpcServerUseProtseqIfExW +#else /* UNICODE */ +#define RpcServerUseProtseqIf RpcServerUseProtseqIfA +#define RpcServerUseProtseqIfEx RpcServerUseProtseqIfExA +#endif /* UNICODE */ + +#else /* RPC_UNICODE_SUPPORTED */ + +RPC_STATUS RPC_ENTRY +RpcServerUseProtseqIf ( + IN unsigned char __RPC_FAR * Protseq, + IN unsigned int MaxCalls, + IN RPC_IF_HANDLE IfSpec, + IN void __RPC_FAR * SecurityDescriptor OPTIONAL + ); + +RPC_STATUS RPC_ENTRY +RpcServerUseProtseqIfEx ( + IN unsigned char __RPC_FAR * Protseq, + IN unsigned int MaxCalls, + IN RPC_IF_HANDLE IfSpec, + IN void __RPC_FAR * SecurityDescriptor, + IN PRPC_POLICY Policy + ); + +#endif /* RPC_UNICODE_SUPPORTED */ + +/* server */ +RPC_STATUS RPC_ENTRY +RpcMgmtStatsVectorFree ( + IN RPC_STATS_VECTOR ** StatsVector + ); + +/* server */ +RPC_STATUS RPC_ENTRY +RpcMgmtInqStats ( + IN RPC_BINDING_HANDLE Binding, + OUT RPC_STATS_VECTOR ** Statistics + ); + +/* server */ +RPC_STATUS RPC_ENTRY +RpcMgmtIsServerListening ( + IN RPC_BINDING_HANDLE Binding + ); + +/* server */ +RPC_STATUS RPC_ENTRY +RpcMgmtStopServerListening ( + IN RPC_BINDING_HANDLE Binding + ); + +/* server */ +RPC_STATUS RPC_ENTRY +RpcMgmtWaitServerListen ( + void + ); + +/* server */ +RPC_STATUS RPC_ENTRY +RpcMgmtSetServerStackSize ( + IN unsigned long ThreadStackSize + ); + +/* server */ +void RPC_ENTRY +RpcSsDontSerializeContext ( + void + ); + +/* client */ +RPC_STATUS RPC_ENTRY +RpcMgmtEnableIdleCleanup ( + void + ); + +RPC_STATUS RPC_ENTRY +RpcMgmtInqIfIds ( + IN RPC_BINDING_HANDLE Binding, + OUT RPC_IF_ID_VECTOR __RPC_FAR * __RPC_FAR * IfIdVector + ); + +RPC_STATUS RPC_ENTRY +RpcIfIdVectorFree ( + IN OUT RPC_IF_ID_VECTOR __RPC_FAR * __RPC_FAR * IfIdVector + ); + +#ifdef RPC_UNICODE_SUPPORTED + +RPC_STATUS RPC_ENTRY +RpcMgmtInqServerPrincNameA ( + IN RPC_BINDING_HANDLE Binding, + IN unsigned long AuthnSvc, + OUT unsigned char __RPC_FAR * __RPC_FAR * ServerPrincName + ); + +RPC_STATUS RPC_ENTRY +RpcMgmtInqServerPrincNameW ( + IN RPC_BINDING_HANDLE Binding, + IN unsigned long AuthnSvc, + OUT unsigned short __RPC_FAR * __RPC_FAR * ServerPrincName + ); + +#ifdef UNICODE +#define RpcMgmtInqServerPrincName RpcMgmtInqServerPrincNameW +#else /* UNICODE */ +#define RpcMgmtInqServerPrincName RpcMgmtInqServerPrincNameA +#endif /* UNICODE */ + +#else /* RPC_UNICODE_SUPPORTED */ + +RPC_STATUS RPC_ENTRY +RpcMgmtInqServerPrincName ( + IN RPC_BINDING_HANDLE Binding, + IN unsigned long AuthnSvc, + OUT unsigned char __RPC_FAR * __RPC_FAR * ServerPrincName + ); + +#endif /* RPC_UNICODE_SUPPORTED */ + +#ifdef RPC_UNICODE_SUPPORTED + +RPC_STATUS RPC_ENTRY +RpcServerInqDefaultPrincNameA ( + IN unsigned long AuthnSvc, + OUT unsigned char __RPC_FAR * __RPC_FAR * PrincName + ); + +RPC_STATUS RPC_ENTRY +RpcServerInqDefaultPrincNameW ( + IN unsigned long AuthnSvc, + OUT unsigned short __RPC_FAR * __RPC_FAR * PrincName + ); + +#ifdef UNICODE +#define RpcServerInqDefaultPrincName RpcServerInqDefaultPrincNameW +#else /* UNICODE */ +#define RpcServerInqDefaultPrincName RpcServerInqDefaultPrincNameA +#endif /* UNICODE */ + +#else /* RPC_UNICODE_SUPPORTED */ + +RPC_STATUS RPC_ENTRY +RpcServerInqDefaultPrincName ( + IN unsigned long AuthnSvc, + OUT unsigned char __RPC_FAR * __RPC_FAR * PrincName + ); + +#endif /* RPC_UNICODE_SUPPORTED */ + +/* client */ +RPC_STATUS RPC_ENTRY +RpcEpResolveBinding ( + IN RPC_BINDING_HANDLE Binding, + IN RPC_IF_HANDLE IfSpec + ); + +/* client */ + +#ifdef RPC_UNICODE_SUPPORTED + +RPC_STATUS RPC_ENTRY +RpcNsBindingInqEntryNameA ( + IN RPC_BINDING_HANDLE Binding, + IN unsigned long EntryNameSyntax, + OUT unsigned char __RPC_FAR * __RPC_FAR * EntryName + ); + +RPC_STATUS RPC_ENTRY +RpcNsBindingInqEntryNameW ( + IN RPC_BINDING_HANDLE Binding, + IN unsigned long EntryNameSyntax, + OUT unsigned short __RPC_FAR * __RPC_FAR * EntryName + ); + +#ifdef UNICODE +#define RpcNsBindingInqEntryName RpcNsBindingInqEntryNameW +#else /* UNICODE */ +#define RpcNsBindingInqEntryName RpcNsBindingInqEntryNameA +#endif /* UNICODE */ + +#else /* RPC_UNICODE_SUPPORTED */ + +RPC_STATUS RPC_ENTRY +RpcNsBindingInqEntryName ( + IN RPC_BINDING_HANDLE Binding, + IN unsigned long EntryNameSyntax, + OUT unsigned char __RPC_FAR * __RPC_FAR * EntryName + ); + +#endif /* RPC_UNICODE_SUPPORTED */ + +typedef void __RPC_FAR * RPC_AUTH_IDENTITY_HANDLE; +typedef void __RPC_FAR * RPC_AUTHZ_HANDLE; + +#define RPC_C_AUTHN_LEVEL_DEFAULT 0 +#define RPC_C_AUTHN_LEVEL_NONE 1 +#define RPC_C_AUTHN_LEVEL_CONNECT 2 +#define RPC_C_AUTHN_LEVEL_CALL 3 +#define RPC_C_AUTHN_LEVEL_PKT 4 +#define RPC_C_AUTHN_LEVEL_PKT_INTEGRITY 5 +#define RPC_C_AUTHN_LEVEL_PKT_PRIVACY 6 + +#define RPC_C_IMP_LEVEL_ANONYMOUS 1 +#define RPC_C_IMP_LEVEL_IDENTIFY 2 +#define RPC_C_IMP_LEVEL_IMPERSONATE 3 +#define RPC_C_IMP_LEVEL_DELEGATE 4 + +#define RPC_C_QOS_IDENTITY_STATIC 0 +#define RPC_C_QOS_IDENTITY_DYNAMIC 1 + +#define RPC_C_QOS_CAPABILITIES_DEFAULT 0 +#define RPC_C_QOS_CAPABILITIES_MUTUAL_AUTH 1 + +#define RPC_C_PROTECT_LEVEL_DEFAULT (RPC_C_AUTHN_LEVEL_DEFAULT) +#define RPC_C_PROTECT_LEVEL_NONE (RPC_C_AUTHN_LEVEL_NONE) +#define RPC_C_PROTECT_LEVEL_CONNECT (RPC_C_AUTHN_LEVEL_CONNECT) +#define RPC_C_PROTECT_LEVEL_CALL (RPC_C_AUTHN_LEVEL_CALL) +#define RPC_C_PROTECT_LEVEL_PKT (RPC_C_AUTHN_LEVEL_PKT) +#define RPC_C_PROTECT_LEVEL_PKT_INTEGRITY (RPC_C_AUTHN_LEVEL_PKT_INTEGRITY) +#define RPC_C_PROTECT_LEVEL_PKT_PRIVACY (RPC_C_AUTHN_LEVEL_PKT_PRIVACY) + +#define RPC_C_AUTHN_NONE 0 +#define RPC_C_AUTHN_DCE_PRIVATE 1 +#define RPC_C_AUTHN_DCE_PUBLIC 2 +#define RPC_C_AUTHN_DEC_PUBLIC 4 +#define RPC_C_AUTHN_WINNT 10 +#define RPC_C_AUTHN_DEFAULT 0xFFFFFFFFL + +#define RPC_C_SECURITY_QOS_VERSION 1L + +typedef struct _RPC_SECURITY_QOS { + unsigned long Version; + unsigned long Capabilities; + unsigned long IdentityTracking; + unsigned long ImpersonationType; +} RPC_SECURITY_QOS, *PRPC_SECURITY_QOS; + +#if defined(__RPC_DOS__) || defined(__RPC_WIN16__) +typedef struct _SEC_WINNT_AUTH_IDENTITY +{ + char __RPC_FAR *User; + char __RPC_FAR *Domain; + char __RPC_FAR *Password; +} SEC_WINNT_AUTH_IDENTITY; +#else + + +#define SEC_WINNT_AUTH_IDENTITY_ANSI 0x1 +#define SEC_WINNT_AUTH_IDENTITY_UNICODE 0x2 + +typedef struct _SEC_WINNT_AUTH_IDENTITY_W { + unsigned short __RPC_FAR *User; + unsigned long UserLength; + unsigned short __RPC_FAR *Domain; + unsigned long DomainLength; + unsigned short __RPC_FAR *Password; + unsigned long PasswordLength; + unsigned long Flags; +} SEC_WINNT_AUTH_IDENTITY_W, *PSEC_WINNT_AUTH_IDENTITY_W; + +typedef struct _SEC_WINNT_AUTH_IDENTITY_A { + unsigned char __RPC_FAR *User; + unsigned long UserLength; + unsigned char __RPC_FAR *Domain; + unsigned long DomainLength; + unsigned char __RPC_FAR *Password; + unsigned long PasswordLength; + unsigned long Flags; +} SEC_WINNT_AUTH_IDENTITY_A, *PSEC_WINNT_AUTH_IDENTITY_A; + + +#ifdef UNICODE +#define SEC_WINNT_AUTH_IDENTITY SEC_WINNT_AUTH_IDENTITY_W +#define PSEC_WINNT_AUTH_IDENTITY PSEC_WINNT_AUTH_IDENTITY_W +#define _SEC_WINNT_AUTH_IDENTITY _SEC_WINNT_AUTH_IDENTITY_W +#else // UNICODE +#define SEC_WINNT_AUTH_IDENTITY SEC_WINNT_AUTH_IDENTITY_A +#define PSEC_WINNT_AUTH_IDENTITY PSEC_WINNT_AUTH_IDENTITY_A +#define _SEC_WINNT_AUTH_IDENTITY _SEC_WINNT_AUTH_IDENTITY_A +#endif // UNICODE +#endif // defined(__RPC_DOS__) || defined(__RPC_WIN16__) + +#define RPC_C_AUTHZ_NONE 0 +#define RPC_C_AUTHZ_NAME 1 +#define RPC_C_AUTHZ_DCE 2 + +#ifdef RPC_UNICODE_SUPPORTED + +RPC_STATUS RPC_ENTRY +RpcBindingInqAuthClientA ( + IN RPC_BINDING_HANDLE ClientBinding, OPTIONAL + OUT RPC_AUTHZ_HANDLE __RPC_FAR * Privs, + OUT unsigned char __RPC_FAR * __RPC_FAR * ServerPrincName, OPTIONAL + OUT unsigned long __RPC_FAR * AuthnLevel, OPTIONAL + OUT unsigned long __RPC_FAR * AuthnSvc, OPTIONAL + OUT unsigned long __RPC_FAR * AuthzSvc OPTIONAL + ); + +RPC_STATUS RPC_ENTRY +RpcBindingInqAuthClientW ( + IN RPC_BINDING_HANDLE ClientBinding, OPTIONAL + OUT RPC_AUTHZ_HANDLE __RPC_FAR * Privs, + OUT unsigned short __RPC_FAR * __RPC_FAR * ServerPrincName, OPTIONAL + OUT unsigned long __RPC_FAR * AuthnLevel, OPTIONAL + OUT unsigned long __RPC_FAR * AuthnSvc, OPTIONAL + OUT unsigned long __RPC_FAR * AuthzSvc OPTIONAL + ); + +RPC_STATUS RPC_ENTRY +RpcBindingInqAuthInfoA ( + IN RPC_BINDING_HANDLE Binding, + OUT unsigned char __RPC_FAR * __RPC_FAR * ServerPrincName, OPTIONAL + OUT unsigned long __RPC_FAR * AuthnLevel, OPTIONAL + OUT unsigned long __RPC_FAR * AuthnSvc, OPTIONAL + OUT RPC_AUTH_IDENTITY_HANDLE __RPC_FAR * AuthIdentity, OPTIONAL + OUT unsigned long __RPC_FAR * AuthzSvc OPTIONAL + ); + +RPC_STATUS RPC_ENTRY +RpcBindingInqAuthInfoW ( + IN RPC_BINDING_HANDLE Binding, + OUT unsigned short __RPC_FAR * __RPC_FAR * ServerPrincName, OPTIONAL + OUT unsigned long __RPC_FAR * AuthnLevel, OPTIONAL + OUT unsigned long __RPC_FAR * AuthnSvc, OPTIONAL + OUT RPC_AUTH_IDENTITY_HANDLE __RPC_FAR * AuthIdentity, OPTIONAL + OUT unsigned long __RPC_FAR * AuthzSvc OPTIONAL + ); + +RPC_STATUS RPC_ENTRY +RpcBindingSetAuthInfoA ( + IN RPC_BINDING_HANDLE Binding, + IN unsigned char __RPC_FAR * ServerPrincName, + IN unsigned long AuthnLevel, + IN unsigned long AuthnSvc, + IN RPC_AUTH_IDENTITY_HANDLE AuthIdentity, OPTIONAL + IN unsigned long AuthzSvc + ); + +RPC_STATUS RPC_ENTRY +RpcBindingSetAuthInfoExA ( + IN RPC_BINDING_HANDLE Binding, + IN unsigned char __RPC_FAR * ServerPrincName, + IN unsigned long AuthnLevel, + IN unsigned long AuthnSvc, + IN RPC_AUTH_IDENTITY_HANDLE AuthIdentity, OPTIONAL + IN unsigned long AuthzSvc, + IN RPC_SECURITY_QOS *SecurityQos OPTIONAL + ); + +RPC_STATUS RPC_ENTRY +RpcBindingSetAuthInfoW ( + IN RPC_BINDING_HANDLE Binding, + IN unsigned short __RPC_FAR * ServerPrincName, + IN unsigned long AuthnLevel, + IN unsigned long AuthnSvc, + IN RPC_AUTH_IDENTITY_HANDLE AuthIdentity, OPTIONAL + IN unsigned long AuthzSvc + ); + +RPC_STATUS RPC_ENTRY +RpcBindingSetAuthInfoExW ( + IN RPC_BINDING_HANDLE Binding, + IN unsigned short __RPC_FAR * ServerPrincName, + IN unsigned long AuthnLevel, + IN unsigned long AuthnSvc, + IN RPC_AUTH_IDENTITY_HANDLE AuthIdentity, OPTIONAL + IN unsigned long AuthzSvc, OPTIONAL + IN RPC_SECURITY_QOS *SecurityQOS + ); + +RPC_STATUS RPC_ENTRY +RpcBindingInqAuthInfoExA ( + IN RPC_BINDING_HANDLE Binding, + OUT unsigned char __RPC_FAR * __RPC_FAR * ServerPrincName, OPTIONAL + OUT unsigned long __RPC_FAR * AuthnLevel, OPTIONAL + OUT unsigned long __RPC_FAR * AuthnSvc, OPTIONAL + OUT RPC_AUTH_IDENTITY_HANDLE __RPC_FAR * AuthIdentity, OPTIONAL + OUT unsigned long __RPC_FAR * AuthzSvc, OPTIONAL + IN unsigned long RpcQosVersion, + OUT RPC_SECURITY_QOS *SecurityQOS + ); + +RPC_STATUS RPC_ENTRY +RpcBindingInqAuthInfoExW ( + IN RPC_BINDING_HANDLE Binding, + OUT unsigned short __RPC_FAR * __RPC_FAR * ServerPrincName, OPTIONAL + OUT unsigned long __RPC_FAR * AuthnLevel, OPTIONAL + OUT unsigned long __RPC_FAR * AuthnSvc, OPTIONAL + OUT RPC_AUTH_IDENTITY_HANDLE __RPC_FAR * AuthIdentity, OPTIONAL + OUT unsigned long __RPC_FAR * AuthzSvc OPTIONAL, + IN unsigned long RpcQosVersion, + OUT RPC_SECURITY_QOS *SecurityQOS + ); + +typedef void +(__RPC_USER * RPC_AUTH_KEY_RETRIEVAL_FN) ( + IN void __RPC_FAR * Arg, + IN unsigned short __RPC_FAR * ServerPrincName, + IN unsigned long KeyVer, + OUT void __RPC_FAR * __RPC_FAR * Key, + OUT RPC_STATUS __RPC_FAR * Status + ); + +RPC_STATUS RPC_ENTRY +RpcServerRegisterAuthInfoA ( + IN unsigned char __RPC_FAR * ServerPrincName, + IN unsigned long AuthnSvc, + IN RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn OPTIONAL, + IN void __RPC_FAR * Arg OPTIONAL + ); + +RPC_STATUS RPC_ENTRY +RpcServerRegisterAuthInfoW ( + IN unsigned short __RPC_FAR * ServerPrincName, + IN unsigned long AuthnSvc, + IN RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn OPTIONAL, + IN void __RPC_FAR * Arg OPTIONAL + ); + +#ifdef UNICODE +#define RpcBindingInqAuthClient RpcBindingInqAuthClientW +#define RpcBindingInqAuthInfo RpcBindingInqAuthInfoW +#define RpcBindingSetAuthInfo RpcBindingSetAuthInfoW +#define RpcServerRegisterAuthInfo RpcServerRegisterAuthInfoW +#define RpcBindingInqAuthInfoEx RpcBindingInqAuthInfoExW +#define RpcBindingSetAuthInfoEx RpcBindingSetAuthInfoExW +#else /* UNICODE */ +#define RpcBindingInqAuthClient RpcBindingInqAuthClientA +#define RpcBindingInqAuthInfo RpcBindingInqAuthInfoA +#define RpcBindingSetAuthInfo RpcBindingSetAuthInfoA +#define RpcServerRegisterAuthInfo RpcServerRegisterAuthInfoA +#define RpcBindingInqAuthInfoEx RpcBindingInqAuthInfoExA +#define RpcBindingSetAuthInfoEx RpcBindingSetAuthInfoExA +#endif /* UNICODE */ + +#else /* RPC_UNICODE_SUPPORTED */ + +RPC_STATUS RPC_ENTRY +RpcBindingInqAuthClient ( + IN RPC_BINDING_HANDLE ClientBinding, OPTIONAL + OUT RPC_AUTHZ_HANDLE __RPC_FAR * Privs, + OUT unsigned char __RPC_FAR * __RPC_FAR * ServerPrincName, OPTIONAL + OUT unsigned long __RPC_FAR * AuthnLevel, OPTIONAL + OUT unsigned long __RPC_FAR * AuthnSvc, OPTIONAL + OUT unsigned long __RPC_FAR * AuthzSvc OPTIONAL + ); + +RPC_STATUS RPC_ENTRY +RpcBindingInqAuthInfo ( + IN RPC_BINDING_HANDLE Binding, + OUT unsigned char __RPC_FAR * __RPC_FAR * ServerPrincName, OPTIONAL + OUT unsigned long __RPC_FAR * AuthnLevel, OPTIONAL + OUT unsigned long __RPC_FAR * AuthnSvc, OPTIONAL + OUT RPC_AUTH_IDENTITY_HANDLE __RPC_FAR * AuthIdentity, OPTIONAL + OUT unsigned long __RPC_FAR * AuthzSvc OPTIONAL + ); + +RPC_STATUS RPC_ENTRY +RpcBindingSetAuthInfo ( + IN RPC_BINDING_HANDLE Binding, + IN unsigned char __RPC_FAR * ServerPrincName, + IN unsigned long AuthnLevel, + IN unsigned long AuthnSvc, + IN RPC_AUTH_IDENTITY_HANDLE AuthIdentity, OPTIONAL + IN unsigned long AuthzSvc + ); + +typedef void +(__RPC_USER * RPC_AUTH_KEY_RETRIEVAL_FN) ( + IN void __RPC_FAR * Arg, + IN unsigned char __RPC_FAR * ServerPrincName, + IN unsigned long KeyVer, + OUT void __RPC_FAR * __RPC_FAR * Key, + OUT RPC_STATUS __RPC_FAR * Status + ); + +RPC_STATUS RPC_ENTRY +RpcServerRegisterAuthInfo ( + IN unsigned char __RPC_FAR * ServerPrincName, + IN unsigned long AuthnSvc, + IN RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn OPTIONAL, + IN void __RPC_FAR * Arg OPTIONAL + ); + +#endif /* RPC_UNICODE_SUPPORTED */ + +typedef struct { + unsigned char __RPC_FAR * UserName; + unsigned char __RPC_FAR * ComputerName; + unsigned short Privilege; + unsigned long AuthFlags; +} RPC_CLIENT_INFORMATION1, __RPC_FAR * PRPC_CLIENT_INFORMATION1; + +RPC_STATUS RPC_ENTRY +RpcBindingServerFromClient ( + IN RPC_BINDING_HANDLE ClientBinding, + OUT RPC_BINDING_HANDLE __RPC_FAR * ServerBinding + ); + +void RPC_ENTRY +RpcRaiseException ( + IN RPC_STATUS exception + ); + +RPC_STATUS RPC_ENTRY +RpcTestCancel( + ); + +RPC_STATUS RPC_ENTRY +RpcCancelThread( + IN void * Thread + ); + +/* client/server */ +RPC_STATUS RPC_ENTRY +UuidCreate ( + OUT UUID __RPC_FAR * Uuid + ); + +#ifdef RPC_UNICODE_SUPPORTED + +/* client/server */ +RPC_STATUS RPC_ENTRY +UuidToStringA ( + IN UUID __RPC_FAR * Uuid, + OUT unsigned char __RPC_FAR * __RPC_FAR * StringUuid + ); + +/* client/server */ +RPC_STATUS RPC_ENTRY +UuidFromStringA ( + IN unsigned char __RPC_FAR * StringUuid, + OUT UUID __RPC_FAR * Uuid + ); + +/* client/server */ +RPC_STATUS RPC_ENTRY +UuidToStringW ( + IN UUID __RPC_FAR * Uuid, + OUT unsigned short __RPC_FAR * __RPC_FAR * StringUuid + ); + +/* client/server */ +RPC_STATUS RPC_ENTRY +UuidFromStringW ( + IN unsigned short __RPC_FAR * StringUuid, + OUT UUID __RPC_FAR * Uuid + ); + +#ifdef UNICODE +#define UuidFromString UuidFromStringW +#define UuidToString UuidToStringW +#else /* UNICODE */ +#define UuidFromString UuidFromStringA +#define UuidToString UuidToStringA +#endif /* UNICODE */ + +#else /* RPC_UNICODE_SUPPORTED */ + +/* client/server */ +RPC_STATUS RPC_ENTRY +UuidToString ( + IN UUID __RPC_FAR * Uuid, + OUT unsigned char __RPC_FAR * __RPC_FAR * StringUuid + ); + +/* client/server */ +RPC_STATUS RPC_ENTRY +UuidFromString ( + IN unsigned char __RPC_FAR * StringUuid, + OUT UUID __RPC_FAR * Uuid + ); + +#endif /* RPC_UNICODE_SUPPORTED */ + +signed int RPC_ENTRY +UuidCompare ( + IN UUID __RPC_FAR * Uuid1, + IN UUID __RPC_FAR * Uuid2, + OUT RPC_STATUS __RPC_FAR * Status + ); + +RPC_STATUS RPC_ENTRY +UuidCreateNil ( + OUT UUID __RPC_FAR * NilUuid + ); + +int RPC_ENTRY +UuidEqual ( + IN UUID __RPC_FAR * Uuid1, + IN UUID __RPC_FAR * Uuid2, + OUT RPC_STATUS __RPC_FAR * Status + ); + +unsigned short RPC_ENTRY +UuidHash ( + IN UUID __RPC_FAR * Uuid, + OUT RPC_STATUS __RPC_FAR * Status + ); + +int RPC_ENTRY +UuidIsNil ( + IN UUID __RPC_FAR * Uuid, + OUT RPC_STATUS __RPC_FAR * Status + ); + +#ifdef RPC_UNICODE_SUPPORTED + +RPC_STATUS RPC_ENTRY +RpcEpRegisterNoReplaceA ( + IN RPC_IF_HANDLE IfSpec, + IN RPC_BINDING_VECTOR * BindingVector, + IN UUID_VECTOR * UuidVector OPTIONAL, + IN unsigned char * Annotation + ); + +RPC_STATUS RPC_ENTRY +RpcEpRegisterNoReplaceW ( + IN RPC_IF_HANDLE IfSpec, + IN RPC_BINDING_VECTOR * BindingVector, + IN UUID_VECTOR * UuidVector OPTIONAL, + IN unsigned short * Annotation + ); + +RPC_STATUS RPC_ENTRY +RpcEpRegisterA ( + IN RPC_IF_HANDLE IfSpec, + IN RPC_BINDING_VECTOR * BindingVector, + IN UUID_VECTOR * UuidVector OPTIONAL, + IN unsigned char * Annotation + ); + +RPC_STATUS RPC_ENTRY +RpcEpRegisterW ( + IN RPC_IF_HANDLE IfSpec, + IN RPC_BINDING_VECTOR * BindingVector, + IN UUID_VECTOR * UuidVector OPTIONAL, + IN unsigned short * Annotation + ); + +#ifdef UNICODE +#define RpcEpRegisterNoReplace RpcEpRegisterNoReplaceW +#define RpcEpRegister RpcEpRegisterW +#else /* UNICODE */ +#define RpcEpRegisterNoReplace RpcEpRegisterNoReplaceA +#define RpcEpRegister RpcEpRegisterA +#endif /* UNICODE */ + +#else /* RPC_UNICODE_SUPPORTED */ + +RPC_STATUS RPC_ENTRY +RpcEpRegisterNoReplace ( + IN RPC_IF_HANDLE IfSpec, + IN RPC_BINDING_VECTOR * BindingVector, + IN UUID_VECTOR * UuidVector OPTIONAL, + IN unsigned char * Annotation + ); + +RPC_STATUS RPC_ENTRY +RpcEpRegister ( + IN RPC_IF_HANDLE IfSpec, + IN RPC_BINDING_VECTOR * BindingVector, + IN UUID_VECTOR * UuidVector OPTIONAL, + IN unsigned char * Annotation + ); + +#endif /* RPC_UNICODE_SUPPORTED */ + + +RPC_STATUS RPC_ENTRY +RpcEpUnregister( + IN RPC_IF_HANDLE IfSpec, + IN RPC_BINDING_VECTOR * BindingVector, + IN UUID_VECTOR * UuidVector + ); + +#ifdef RPC_UNICODE_SUPPORTED + +RPC_STATUS RPC_ENTRY +DceErrorInqTextA ( + IN RPC_STATUS RpcStatus, + OUT unsigned char __RPC_FAR * ErrorText + ); + +RPC_STATUS RPC_ENTRY +DceErrorInqTextW ( + IN RPC_STATUS RpcStatus, + OUT unsigned short __RPC_FAR * ErrorText + ); + +#ifdef UNICODE +#define DceErrorInqText DceErrorInqTextW +#else /* UNICODE */ +#define DceErrorInqText DceErrorInqTextA +#endif /* UNICODE */ + +#else /* RPC_UNICODE_SUPPORTED */ + +RPC_STATUS RPC_ENTRY +DceErrorInqText ( + IN RPC_STATUS RpcStatus, + OUT unsigned char __RPC_FAR * ErrorText + ); + +#endif /* RPC_UNICODE_SUPPORTED */ + +#define DCE_C_ERROR_STRING_LEN 256 + +typedef I_RPC_HANDLE * RPC_EP_INQ_HANDLE; + +#define RPC_C_EP_ALL_ELTS 0 +#define RPC_C_EP_MATCH_BY_IF 1 +#define RPC_C_EP_MATCH_BY_OBJ 2 +#define RPC_C_EP_MATCH_BY_BOTH 3 + +#define RPC_C_VERS_ALL 1 +#define RPC_C_VERS_COMPATIBLE 2 +#define RPC_C_VERS_EXACT 3 +#define RPC_C_VERS_MAJOR_ONLY 4 +#define RPC_C_VERS_UPTO 5 + +RPC_STATUS RPC_ENTRY +RpcMgmtEpEltInqBegin ( + IN RPC_BINDING_HANDLE EpBinding OPTIONAL, + IN unsigned long InquiryType, + IN RPC_IF_ID __RPC_FAR * IfId OPTIONAL, + IN unsigned long VersOption OPTIONAL, + IN UUID __RPC_FAR * ObjectUuid OPTIONAL, + OUT RPC_EP_INQ_HANDLE __RPC_FAR * InquiryContext + ); + +RPC_STATUS RPC_ENTRY +RpcMgmtEpEltInqDone ( + IN OUT RPC_EP_INQ_HANDLE __RPC_FAR * InquiryContext + ); + +#ifdef RPC_UNICODE_SUPPORTED + +RPC_STATUS RPC_ENTRY +RpcMgmtEpEltInqNextA ( + IN RPC_EP_INQ_HANDLE InquiryContext, + OUT RPC_IF_ID __RPC_FAR * IfId, + OUT RPC_BINDING_HANDLE __RPC_FAR * Binding OPTIONAL, + OUT UUID __RPC_FAR * ObjectUuid OPTIONAL, + OUT unsigned char __RPC_FAR * __RPC_FAR * Annotation OPTIONAL + ); + +RPC_STATUS RPC_ENTRY +RpcMgmtEpEltInqNextW ( + IN RPC_EP_INQ_HANDLE InquiryContext, + OUT RPC_IF_ID __RPC_FAR * IfId, + OUT RPC_BINDING_HANDLE __RPC_FAR * Binding OPTIONAL, + OUT UUID __RPC_FAR * ObjectUuid OPTIONAL, + OUT unsigned short __RPC_FAR * __RPC_FAR * Annotation OPTIONAL + ); + +#ifdef UNICODE +#define RpcMgmtEpEltInqNext RpcMgmtEpEltInqNextW +#else /* UNICODE */ +#define RpcMgmtEpEltInqNext RpcMgmtEpEltInqNextA +#endif /* UNICODE */ + +#else /* RPC_UNICODE_SUPPORTED */ + +RPC_STATUS RPC_ENTRY +RpcMgmtEpEltInqNext ( + IN RPC_EP_INQ_HANDLE InquiryContext, + OUT RPC_IF_ID __RPC_FAR * IfId, + OUT RPC_BINDING_HANDLE __RPC_FAR * Binding OPTIONAL, + OUT unsigned char __RPC_FAR * __RPC_FAR * Annotation OPTIONAL + ); + +#endif /* RPC_UNICODE_SUPPORTED */ + +RPC_STATUS RPC_ENTRY +RpcMgmtEpUnregister ( + IN RPC_BINDING_HANDLE EpBinding OPTIONAL, + IN RPC_IF_ID __RPC_FAR * IfId, + IN RPC_BINDING_HANDLE Binding, + IN UUID __RPC_FAR * ObjectUuid OPTIONAL + ); + +typedef int +(__RPC_API * RPC_MGMT_AUTHORIZATION_FN) ( + IN RPC_BINDING_HANDLE ClientBinding, + IN unsigned long RequestedMgmtOperation, + OUT RPC_STATUS __RPC_FAR * Status + ); + +#define RPC_C_MGMT_INQ_IF_IDS 0 +#define RPC_C_MGMT_INQ_PRINC_NAME 1 +#define RPC_C_MGMT_INQ_STATS 2 +#define RPC_C_MGMT_IS_SERVER_LISTEN 3 +#define RPC_C_MGMT_STOP_SERVER_LISTEN 4 + +RPC_STATUS RPC_ENTRY +RpcMgmtSetAuthorizationFn ( + IN RPC_MGMT_AUTHORIZATION_FN AuthorizationFn + ); + + +#define RPC_C_PARM_MAX_PACKET_LENGTH 1 +#define RPC_C_PARM_BUFFER_LENGTH 2 + +RPC_STATUS RPC_ENTRY +RpcMgmtInqParameter ( + IN unsigned Parameter, + IN unsigned long __RPC_FAR * Value + ); + +RPC_STATUS RPC_ENTRY +RpcMgmtSetParameter ( + IN unsigned Parameter, + IN unsigned long Value + ); + +RPC_STATUS RPC_ENTRY +RpcMgmtBindingInqParameter ( + IN RPC_BINDING_HANDLE Handle, + IN unsigned Parameter, + IN unsigned long __RPC_FAR * Value + ); + +RPC_STATUS RPC_ENTRY +RpcMgmtBindingSetParameter ( + IN RPC_BINDING_HANDLE Handle, + IN unsigned Parameter, + IN unsigned long Value + ); + +#define RPC_IF_AUTOLISTEN 0x0001 +#define RPC_IF_OLE 0x0002 + +#include <rpcdcep.h> + +#ifdef __cplusplus +} +#endif + +#endif /* __RPCDCE_H__ */ diff --git a/public/sdk/rpc16/win/inc/rpcdcep.h b/public/sdk/rpc16/win/inc/rpcdcep.h new file mode 100644 index 000000000..85ed0fd67 --- /dev/null +++ b/public/sdk/rpc16/win/inc/rpcdcep.h @@ -0,0 +1,415 @@ +/*++ + +Copyright (c) 1991-1996 Microsoft Corporation + +Module Name: + + rpcdcep.h + +Abstract: + + This module contains the private RPC runtime APIs for use by the + stubs and by support libraries. Applications must not call these + routines. + +--*/ + +#ifndef __RPCDCEP_H__ +#define __RPCDCEP_H__ + +// Set the packing level for RPC structures for Dos and Windows. + +#if defined(__RPC_DOS__) || defined(__RPC_WIN16__) +#pragma pack(2) +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct _RPC_VERSION { + unsigned short MajorVersion; + unsigned short MinorVersion; +} RPC_VERSION; + +typedef struct _RPC_SYNTAX_IDENTIFIER { + GUID SyntaxGUID; + RPC_VERSION SyntaxVersion; +} RPC_SYNTAX_IDENTIFIER, __RPC_FAR * PRPC_SYNTAX_IDENTIFIER; + +typedef struct _RPC_MESSAGE +{ + RPC_BINDING_HANDLE Handle; + unsigned long DataRepresentation; + void __RPC_FAR * Buffer; + unsigned int BufferLength; + unsigned int ProcNum; + PRPC_SYNTAX_IDENTIFIER TransferSyntax; + void __RPC_FAR * RpcInterfaceInformation; + void __RPC_FAR * ReservedForRuntime; + RPC_MGR_EPV __RPC_FAR * ManagerEpv; + void __RPC_FAR * ImportContext; + unsigned long RpcFlags; +} RPC_MESSAGE, __RPC_FAR * PRPC_MESSAGE; + + +typedef RPC_STATUS RPC_ENTRY RPC_FORWARD_FUNCTION( + IN UUID __RPC_FAR * InterfaceId, + IN RPC_VERSION __RPC_FAR * InterfaceVersion, + IN UUID __RPC_FAR * ObjectId, + IN unsigned char __RPC_FAR * Rpcpro, + IN void __RPC_FAR * __RPC_FAR * ppDestEndpoint); + +/* + * Types of function calls for datagram rpc + */ + +#define RPC_NCA_FLAGS_DEFAULT 0x00000000 /* 0b000...000 */ +#define RPC_NCA_FLAGS_IDEMPOTENT 0x00000001 /* 0b000...001 */ +#define RPC_NCA_FLAGS_BROADCAST 0x00000002 /* 0b000...010 */ +#define RPC_NCA_FLAGS_MAYBE 0x00000004 /* 0b000...100 */ + +#define RPC_BUFFER_COMPLETE 0x00001000 /* used by pipes */ +#define RPC_BUFFER_PARTIAL 0x00002000 /* used by pipes */ +#define RPC_BUFFER_EXTRA 0x00004000 /* used by pipes */ + +#define RPCFLG_NON_NDR 0x80000000UL +#define RPCFLG_ASYNCHRONOUS 0x40000000UL +#define RPCFLG_INPUT_SYNCHRONOUS 0x20000000UL +#define RPCFLG_LOCAL_CALL 0x10000000UL + +#if defined(__RPC_DOS__) || defined(__RPC_WIN16__) +#define RPC_FLAGS_VALID_BIT 0x8000 +#endif + +#if defined(__RPC_WIN32__) || defined(__RPC_MAC__) +#define RPC_FLAGS_VALID_BIT 0x00008000 +#endif + +typedef +void +(__RPC_STUB __RPC_FAR * RPC_DISPATCH_FUNCTION) ( + IN OUT PRPC_MESSAGE Message + ); + +typedef struct { + unsigned int DispatchTableCount; + RPC_DISPATCH_FUNCTION __RPC_FAR * DispatchTable; + int Reserved; +} RPC_DISPATCH_TABLE, __RPC_FAR * PRPC_DISPATCH_TABLE; + +typedef struct _RPC_PROTSEQ_ENDPOINT +{ + unsigned char __RPC_FAR * RpcProtocolSequence; + unsigned char __RPC_FAR * Endpoint; +} RPC_PROTSEQ_ENDPOINT, __RPC_FAR * PRPC_PROTSEQ_ENDPOINT; + +/* +Both of these types MUST start with the InterfaceId and TransferSyntax. +Look at RpcIfInqId and I_RpcIfInqTransferSyntaxes to see why. +*/ +#define NT351_INTERFACE_SIZE 0x40 +#define RPC_INTERFACE_HAS_PIPES 0x0001 + +typedef struct _RPC_SERVER_INTERFACE +{ + unsigned int Length; + RPC_SYNTAX_IDENTIFIER InterfaceId; + RPC_SYNTAX_IDENTIFIER TransferSyntax; + PRPC_DISPATCH_TABLE DispatchTable; + unsigned int RpcProtseqEndpointCount; + PRPC_PROTSEQ_ENDPOINT RpcProtseqEndpoint; + RPC_MGR_EPV __RPC_FAR *DefaultManagerEpv; + void const __RPC_FAR *InterpreterInfo; + unsigned int Flags ; +} RPC_SERVER_INTERFACE, __RPC_FAR * PRPC_SERVER_INTERFACE; + +typedef struct _RPC_CLIENT_INTERFACE +{ + unsigned int Length; + RPC_SYNTAX_IDENTIFIER InterfaceId; + RPC_SYNTAX_IDENTIFIER TransferSyntax; + PRPC_DISPATCH_TABLE DispatchTable; + unsigned int RpcProtseqEndpointCount; + PRPC_PROTSEQ_ENDPOINT RpcProtseqEndpoint; + unsigned long Reserved; + void const __RPC_FAR * InterpreterInfo; + unsigned int Flags ; +} RPC_CLIENT_INTERFACE, __RPC_FAR * PRPC_CLIENT_INTERFACE; + +RPC_STATUS RPC_ENTRY +I_RpcGetBuffer ( + IN OUT RPC_MESSAGE __RPC_FAR * Message + ); + +RPC_STATUS RPC_ENTRY +I_RpcSendReceive ( + IN OUT RPC_MESSAGE __RPC_FAR * Message + ); + +RPC_STATUS RPC_ENTRY +I_RpcFreeBuffer ( + IN OUT RPC_MESSAGE __RPC_FAR * Message + ); + +RPC_STATUS RPC_ENTRY +I_RpcSend ( + IN OUT PRPC_MESSAGE Message + ) ; + +RPC_STATUS RPC_ENTRY +I_RpcReceive ( + IN OUT PRPC_MESSAGE Message, + IN unsigned int Size + ) ; + +RPC_STATUS RPC_ENTRY +I_RpcFreePipeBuffer ( + IN OUT RPC_MESSAGE __RPC_FAR * Message + ) ; + +RPC_STATUS RPC_ENTRY +I_RpcReallocPipeBuffer ( + IN PRPC_MESSAGE Message, + IN unsigned int NewSize + ) ; + +typedef void * I_RPC_MUTEX; + +void RPC_ENTRY +I_RpcRequestMutex ( + IN OUT I_RPC_MUTEX * Mutex + ); + +void RPC_ENTRY +I_RpcClearMutex ( + IN I_RPC_MUTEX Mutex + ); + +void RPC_ENTRY +I_RpcDeleteMutex ( + IN I_RPC_MUTEX Mutex + ); + +void __RPC_FAR * RPC_ENTRY +I_RpcAllocate ( + IN unsigned int Size + ); + +void RPC_ENTRY +I_RpcFree ( + IN void __RPC_FAR * Object + ); + +void RPC_ENTRY +I_RpcPauseExecution ( + IN unsigned long Milliseconds + ); + +typedef +void +(__RPC_USER __RPC_FAR * PRPC_RUNDOWN) ( + void __RPC_FAR * AssociationContext + ); + +RPC_STATUS RPC_ENTRY +I_RpcMonitorAssociation ( + IN RPC_BINDING_HANDLE Handle, + IN PRPC_RUNDOWN RundownRoutine, + IN void * Context + ); + +RPC_STATUS RPC_ENTRY +I_RpcStopMonitorAssociation ( + IN RPC_BINDING_HANDLE Handle + ); + +RPC_BINDING_HANDLE RPC_ENTRY +I_RpcGetCurrentCallHandle( + void + ); + +RPC_STATUS RPC_ENTRY +I_RpcGetAssociationContext ( + OUT void __RPC_FAR * __RPC_FAR * AssociationContext + ); + +RPC_STATUS RPC_ENTRY +I_RpcSetAssociationContext ( + IN void __RPC_FAR * AssociationContext + ); + +#ifdef __RPC_NT__ + +RPC_STATUS RPC_ENTRY +I_RpcNsBindingSetEntryName ( + IN RPC_BINDING_HANDLE Binding, + IN unsigned long EntryNameSyntax, + IN unsigned short __RPC_FAR * EntryName + ); + +#else + +RPC_STATUS RPC_ENTRY +I_RpcNsBindingSetEntryName ( + IN RPC_BINDING_HANDLE Binding, + IN unsigned long EntryNameSyntax, + IN unsigned char __RPC_FAR * EntryName + ); + +#endif + +#ifdef __RPC_NT__ + +RPC_STATUS RPC_ENTRY +I_RpcBindingInqDynamicEndpoint ( + IN RPC_BINDING_HANDLE Binding, + OUT unsigned short __RPC_FAR * __RPC_FAR * DynamicEndpoint + ); + +#else + +RPC_STATUS RPC_ENTRY +I_RpcBindingInqDynamicEndpoint ( + IN RPC_BINDING_HANDLE Binding, + OUT unsigned char __RPC_FAR * __RPC_FAR * DynamicEndpoint + ); + +#endif + +#define TRANSPORT_TYPE_CN 0x1 +#define TRANSPORT_TYPE_DG 0x2 +#define TRANSPORT_TYPE_LPC 0x4 +#define TRANSPORT_TYPE_WMSG 0x8 + +RPC_STATUS RPC_ENTRY +I_RpcBindingInqTransportType ( + IN RPC_BINDING_HANDLE Binding, + OUT unsigned int __RPC_FAR * Type + ); + +typedef struct _RPC_TRANSFER_SYNTAX +{ + UUID Uuid; + unsigned short VersMajor; + unsigned short VersMinor; +} RPC_TRANSFER_SYNTAX; + +RPC_STATUS RPC_ENTRY +I_RpcIfInqTransferSyntaxes ( + IN RPC_IF_HANDLE RpcIfHandle, + OUT RPC_TRANSFER_SYNTAX __RPC_FAR * TransferSyntaxes, + IN unsigned int TransferSyntaxSize, + OUT unsigned int __RPC_FAR * TransferSyntaxCount + ); + +RPC_STATUS RPC_ENTRY +I_UuidCreate ( + OUT UUID __RPC_FAR * Uuid + ); + +RPC_STATUS RPC_ENTRY +I_RpcBindingCopy ( + IN RPC_BINDING_HANDLE SourceBinding, + OUT RPC_BINDING_HANDLE __RPC_FAR * DestinationBinding + ); + +RPC_STATUS RPC_ENTRY +I_RpcBindingIsClientLocal ( + IN RPC_BINDING_HANDLE BindingHandle OPTIONAL, + OUT unsigned int __RPC_FAR * ClientLocalFlag + ); + +void RPC_ENTRY +I_RpcSsDontSerializeContext ( + void + ); + +RPC_STATUS RPC_ENTRY +I_RpcLaunchDatagramReceiveThread( + void __RPC_FAR * pAddress + ); + +RPC_STATUS RPC_ENTRY +I_RpcServerRegisterForwardFunction ( + IN RPC_FORWARD_FUNCTION __RPC_FAR * pForwardFunction + ); + + +RPC_STATUS RPC_ENTRY +I_RpcConnectionInqSockBuffSize( + OUT unsigned long __RPC_FAR * RecvBuffSize, + OUT unsigned long __RPC_FAR * SendBuffSize + ); + +RPC_STATUS RPC_ENTRY +I_RpcConnectionSetSockBuffSize( + IN unsigned long RecvBuffSize, + IN unsigned long SendBuffSize + ); + + +#ifdef MSWMSG +RPC_STATUS RPC_ENTRY +I_RpcServerStartListening( + HWND hWnd + ) ; + +RPC_STATUS RPC_ENTRY +I_RpcServerStopListening( + ) ; + +RPC_STATUS RPC_ENTRY +I_RpcGetThreadWindowHandle( + OUT HWND *WindowHandle + ) ; + +typedef RPC_STATUS (*RPC_BLOCKING_FN) ( + IN void *wnd, + IN void *Context, + IN HANDLE hSyncEvent + ) ; + +RPC_STATUS RPC_ENTRY +I_RpcAsyncSendReceive( + IN OUT PRPC_MESSAGE pRpcMessage, + IN OPTIONAL void *Context, + HWND hWnd + ) ; + +RPC_STATUS RPC_ENTRY +I_RpcBindingSetAsync( + IN RPC_BINDING_HANDLE Binding, + IN RPC_BLOCKING_FN BlockingFn + ) ; + +LONG RPC_ENTRY +I_RpcWindowProc( + IN HWND hWnd, + IN UINT Message, + IN WPARAM wParam, + IN LPARAM lParam + ) ; + +RPC_STATUS RPC_ENTRY +I_RpcSetWMsgEndpoint ( + IN WCHAR __RPC_FAR * Endpoint + ) ; +#endif + +RPC_STATUS RPC_ENTRY +I_RpcServerInqTransportType( + OUT unsigned int __RPC_FAR * Type + ) ; + +#ifdef __cplusplus +} +#endif + +// Reset the packing level for Dos and Windows. + +#if defined(__RPC_DOS__) || defined(__RPC_WIN16__) +#pragma pack() +#endif + +#endif /* __RPCDCEP_H__ */ diff --git a/public/sdk/rpc16/win/inc/rpcerr.h b/public/sdk/rpc16/win/inc/rpcerr.h new file mode 100644 index 000000000..139df1b1b --- /dev/null +++ b/public/sdk/rpc16/win/inc/rpcerr.h @@ -0,0 +1,188 @@ +/*********************************************************/ +/** Microsoft LAN Manager **/ +/** Copyright(c) Microsoft Corp., 1987-1990 **/ +/** **/ +/** Rpc Error Codes from the compiler and runtime **/ +/** **/ +/*********************************************************/ + +/* +If you change this file, you must also change ntstatus.mc and winerror.mc +*/ + +#ifndef __RPCERR_H__ +#define __RPCERR_H__ + +#define RPC_S_OK 0 +#define RPC_S_INVALID_ARG 1 +#define RPC_S_INVALID_STRING_BINDING 2 +#define RPC_S_OUT_OF_MEMORY 3 +#define RPC_S_WRONG_KIND_OF_BINDING 4 +#define RPC_S_INVALID_BINDING 5 +#define RPC_S_PROTSEQ_NOT_SUPPORTED 6 +#define RPC_S_INVALID_RPC_PROTSEQ 7 +#define RPC_S_INVALID_STRING_UUID 8 +#define RPC_S_INVALID_ENDPOINT_FORMAT 9 + +#define RPC_S_INVALID_NET_ADDR 10 +#define RPC_S_INVALID_NAF_ID 11 +#define RPC_S_NO_ENDPOINT_FOUND 12 +#define RPC_S_INVALID_TIMEOUT 13 +#define RPC_S_OBJECT_NOT_FOUND 14 +#define RPC_S_ALREADY_REGISTERED 15 +#define RPC_S_TYPE_ALREADY_REGISTERED 16 +#define RPC_S_ALREADY_LISTENING 17 +#define RPC_S_NO_PROTSEQS_REGISTERED 18 +#define RPC_S_NOT_LISTENING 19 + +#define RPC_S_OUT_OF_THREADS 20 +#define RPC_S_UNKNOWN_MGR_TYPE 21 +#define RPC_S_UNKNOWN_IF 22 +#define RPC_S_NO_BINDINGS 23 +#define RPC_S_NO_PROTSEQS 24 +#define RPC_S_CANT_CREATE_ENDPOINT 25 +#define RPC_S_OUT_OF_RESOURCES 26 +#define RPC_S_SERVER_UNAVAILABLE 27 +#define RPC_S_SERVER_TOO_BUSY 28 +#define RPC_S_INVALID_NETWORK_OPTIONS 29 + +#define RPC_S_NO_CALL_ACTIVE 30 +#define RPC_S_INVALID_LEVEL 31 +#define RPC_S_CANNOT_SUPPORT 32 +#define RPC_S_CALL_FAILED 33 +#define RPC_S_CALL_FAILED_DNE 34 +#define RPC_S_PROTOCOL_ERROR 35 + +// Unused. + +// Unused. + +#define RPC_S_UNSUPPORTED_TRANS_SYN 38 +#define RPC_S_BUFFER_TOO_SMALL 39 + +#define RPC_S_NO_CONTEXT_AVAILABLE 40 +#define RPC_S_SERVER_OUT_OF_MEMORY 41 +#define RPC_S_UNSUPPORTED_TYPE 42 +#define RPC_S_ZERO_DIVIDE 43 +#define RPC_S_ADDRESS_ERROR 44 +#define RPC_S_FP_DIV_ZERO 45 +#define RPC_S_FP_UNDERFLOW 46 +#define RPC_S_FP_OVERFLOW 47 +#define RPC_S_INVALID_TAG 48 +#define RPC_S_INVALID_BOUND 49 + +#define RPC_S_NO_ENTRY_NAME 50 +#define RPC_S_INVALID_NAME_SYNTAX 51 +#define RPC_S_UNSUPPORTED_NAME_SYNTAX 52 +#define RPC_S_UUID_LOCAL_ONLY 53 +#define RPC_S_UUID_NO_ADDRESS 54 +#define RPC_S_DUPLICATE_ENDPOINT 55 +#define RPC_S_INVALID_SECURITY_DESC 56 +#define RPC_S_ACCESS_DENIED 57 +#define RPC_S_UNKNOWN_AUTHN_TYPE 58 +#define RPC_S_MAX_CALLS_TOO_SMALL 59 + +#define RPC_S_STRING_TOO_LONG 60 +#define RPC_S_PROTSEQ_NOT_FOUND 61 +#define RPC_S_PROCNUM_OUT_OF_RANGE 62 +#define RPC_S_BINDING_HAS_NO_AUTH 63 +#define RPC_S_UNKNOWN_AUTHN_SERVICE 64 +#define RPC_S_UNKNOWN_AUTHN_LEVEL 65 +#define RPC_S_INVALID_AUTH_IDENTITY 66 +#define RPC_S_UNKNOWN_AUTHZ_SERVICE 67 +#define EPT_S_INVALID_ENTRY 68 +#define EPT_S_CANT_PERFORM_OP 69 + +#define EPT_S_NOT_REGISTERED 70 +#define RPC_S_NOTHING_TO_EXPORT 71 +#define RPC_S_INCOMPLETE_NAME 72 +#define RPC_S_UNIMPLEMENTED_API 73 +#define RPC_S_INVALID_VERS_OPTION 74 +#define RPC_S_NO_MORE_MEMBERS 75 +#define RPC_S_NOT_ALL_OBJS_UNEXPORTED 76 +#define RPC_S_INTERFACE_NOT_FOUND 77 +#define RPC_S_ENTRY_ALREADY_EXISTS 78 +#define RPC_S_ENTRY_NOT_FOUND 79 + +#define RPC_S_NAME_SERVICE_UNAVAILABLE 80 +#define RPC_S_CALL_IN_PROGRESS 81 +#define RPC_S_NO_MORE_BINDINGS 82 +#define RPC_S_GROUP_MEMBER_NOT_FOUND 83 +#define EPT_S_CANT_CREATE 84 +#define RPC_S_INVALID_OBJECT 85 +#define RPC_S_CALL_CANCELLED 86 +#define RPC_S_BINDING_INCOMPLETE 87 +#define RPC_S_COMM_FAILURE 88 +#define RPC_S_UNSUPPORTED_AUTHN_LEVEL 89 + +#define RPC_S_NO_PRINC_NAME 90 +#define RPC_S_NOT_RPC_ERROR 91 +#define RPC_S_SEC_PKG_ERROR 92 +#define RPC_S_NOT_CANCELLED 93 +#define RPC_S_SEND_INCOMPLETE 94 + + +#define RPC_S_INTERNAL_ERROR 100 + +/* The list of servers available for auto_handle binding has been exhausted. */ + +#define RPC_X_NO_MORE_ENTRIES 256 + +/* Insufficient memory available to set up necessary data structures. */ + +#define RPC_X_NO_MEMORY 257 + +/* The specified bounds of an array are inconsistent. */ + +#define RPC_X_INVALID_BOUND 258 + +/* The discriminant value does not match any of the case values. */ +/* There is no default case. */ + +#define RPC_X_INVALID_TAG 259 + +/* The file designated by DCERPCCHARTRANS cannot be opened. */ + +#define RPC_X_SS_CHAR_TRANS_OPEN_FAIL 260 + +/* The file containing char translation table has fewer than 512 bytes. */ + +#define RPC_X_SS_CHAR_TRANS_SHORT_FILE 261 + +/* A null context handle is passed in an [in] parameter position. */ + +#define RPC_X_SS_IN_NULL_CONTEXT 262 + +/* Only raised on the callee side. */ +/* A uuid in an [in] handle does not correspond to any known context. */ + +#define RPC_X_SS_CONTEXT_MISMATCH 263 + +/* Only raised on the caller side. */ +/* A uuid in an [in, out] context handle changed during a call. */ + +#define RPC_X_SS_CONTEXT_DAMAGED 264 + +#define RPC_X_SS_HANDLES_MISMATCH 265 + +#define RPC_X_SS_CANNOT_GET_CALL_HANDLE 266 + +#define RPC_X_NULL_REF_POINTER 267 + +#define RPC_X_ENUM_VALUE_OUT_OF_RANGE 268 + +#define RPC_X_BYTE_COUNT_TOO_SMALL 269 + +#define RPC_X_BAD_STUB_DATA 270 + +#define RPC_X_INVALID_ES_ACTION 271 +#define RPC_X_WRONG_ES_VERSION 272 +#define RPC_X_WRONG_STUB_VERSION 273 +#define RPC_X_INVALID_BUFFER 274 +#define RPC_X_INVALID_PIPE_OBJECT 275 +#define RPC_X_INVALID_PIPE_OPERATION 276 +#define RPC_X_WRONG_PIPE_VERSION 277 + + +#endif /* __RPCERR_H__ */ + diff --git a/public/sdk/rpc16/win/inc/rpcndr.h b/public/sdk/rpc16/win/inc/rpcndr.h new file mode 100644 index 000000000..65d1cdbfe --- /dev/null +++ b/public/sdk/rpc16/win/inc/rpcndr.h @@ -0,0 +1,2630 @@ +/*++ + +Copyright (c) 1992-1996 Microsoft Corporation + +Module Name: + + rpcndr.h + +Abstract: + + Definitions for stub data structures and prototypes of helper functions. + +Author: + + DonnaLi (01-01-91) + +Environment: + + DOS, Win 3.X, and Win/NT. + +Revision History: + + DONNALI 08-29-91 Start recording history + donnali 09-11-91 change conversion macros + donnali 09-18-91 check in files for moving + STEVEZ 10-15-91 Merge with NT tree + donnali 10-28-91 add prototype + donnali 11-19-91 bugfix for strings + MIKEMON 12-17-91 DCE runtime API conversion + donnali 03-24-92 change rpc public header f + STEVEZ 04-04-92 add nsi include + mikemon 04-18-92 security support and misc + DovhH 04-24-24 Changed signature of <int>_from_ndr + (to unsigned <int>) + Added <base_type>_array_from_ndr routines + RyszardK 06-17-93 Added support for hyper + VibhasC 09-11-93 Created rpcndrn.h + DKays 10-14-93 Fixed up rpcndrn.h MIDL 2.0 + RyszardK 01-15-94 Merged in the midl 2.0 changes from rpcndrn.h + Stevebl 04-22-96 Hookole support changes to MIDL_*_INFO + +--*/ + +#ifndef __RPCNDR_H__ +#define __RPCNDR_H__ + +// +// Set the packing level for RPC structures for Dos, Windows and Mac. +// + +#if defined(__RPC_DOS__) || defined(__RPC_WIN16__) || defined(__RPC_MAC__) +#pragma pack(2) +#endif + +#if defined(__RPC_MAC__) +#define _MAC_ +#endif + +#include <rpcnsip.h> + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************************************************** + + Network Computing Architecture (NCA) definition: + + Network Data Representation: (NDR) Label format: + An unsigned long (32 bits) with the following layout: + + 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 + 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 + +---------------+---------------+---------------+-------+-------+ + | Reserved | Reserved |Floating point | Int | Char | + | | |Representation | Rep. | Rep. | + +---------------+---------------+---------------+-------+-------+ + + Where + + Reserved: + + Must be zero (0) for NCA 1.5 and NCA 2.0. + + Floating point Representation is: + + 0 - IEEE + 1 - VAX + 2 - Cray + 3 - IBM + + Int Rep. is Integer Representation: + + 0 - Big Endian + 1 - Little Endian + + Char Rep. is Character Representation: + + 0 - ASCII + 1 - EBCDIC + + The Microsoft Local Data Representation (for all platforms which are + of interest currently is edefined below: + + ****************************************************************************/ + +#define NDR_CHAR_REP_MASK (unsigned long)0X0000000FL +#define NDR_INT_REP_MASK (unsigned long)0X000000F0L +#define NDR_FLOAT_REP_MASK (unsigned long)0X0000FF00L + +#define NDR_LITTLE_ENDIAN (unsigned long)0X00000010L +#define NDR_BIG_ENDIAN (unsigned long)0X00000000L + +#define NDR_IEEE_FLOAT (unsigned long)0X00000000L +#define NDR_VAX_FLOAT (unsigned long)0X00000100L + +#define NDR_ASCII_CHAR (unsigned long)0X00000000L +#define NDR_EBCDIC_CHAR (unsigned long)0X00000001L + +#if defined(__RPC_MAC__) +#define NDR_LOCAL_DATA_REPRESENTATION (unsigned long)0X00000000L +#define NDR_LOCAL_ENDIAN NDR_BIG_ENDIAN +#else +#define NDR_LOCAL_DATA_REPRESENTATION (unsigned long)0X00000010L +#define NDR_LOCAL_ENDIAN NDR_LITTLE_ENDIAN +#endif + + +/**************************************************************************** + * Macros for targeted platforms + ****************************************************************************/ + +#if (defined(_WIN32_DCOM) || 0x400 <= _WIN32_WINNT) +#define TARGET_IS_NT40_OR_LATER 1 +#else +#define TARGET_IS_NT40_OR_LATER 0 +#endif + +#if (0x400 <= WINVER) +#define TARGET_IS_NT351_OR_WIN95_OR_LATER 1 +#else +#define TARGET_IS_NT351_OR_WIN95_OR_LATER 0 +#endif + +/**************************************************************************** + * Other MIDL base types / predefined types: + ****************************************************************************/ + +#define small char +typedef unsigned char byte; +typedef unsigned char boolean; + +#ifndef _HYPER_DEFINED +#define _HYPER_DEFINED + +#if !defined(__RPC_DOS__) && !defined(__RPC_WIN16__) && !defined(__RPC_MAC__) && (!defined(_M_IX86) || (defined(_INTEGRAL_MAX_BITS) && _INTEGRAL_MAX_BITS >= 64)) +#define hyper __int64 +#define MIDL_uhyper unsigned __int64 +#else +typedef double hyper; +typedef double MIDL_uhyper; +#endif + +#endif // _HYPER_DEFINED + +#ifndef _WCHAR_T_DEFINED +typedef unsigned short wchar_t; +#define _WCHAR_T_DEFINED +#endif + +#ifndef _SIZE_T_DEFINED +typedef unsigned int size_t; +#define _SIZE_T_DEFINED +#endif + +#ifdef __RPC_DOS__ +#define __RPC_CALLEE __far __pascal +#endif + +#ifdef __RPC_WIN16__ +#define __RPC_CALLEE __far __pascal __export +#endif + +#ifdef __RPC_WIN32__ +#if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) +#define __RPC_CALLEE __stdcall +#else +#define __RPC_CALLEE +#endif +#endif + +#ifdef __RPC_MAC__ +#define __RPC_CALLEE __far +#endif + +#ifndef __MIDL_USER_DEFINED +#define midl_user_allocate MIDL_user_allocate +#define midl_user_free MIDL_user_free +#define __MIDL_USER_DEFINED +#endif + +void __RPC_FAR * __RPC_USER MIDL_user_allocate(size_t); +void __RPC_USER MIDL_user_free( void __RPC_FAR * ); + +#ifdef __RPC_WIN16__ +#define RPC_VAR_ENTRY __export __cdecl +#else +#define RPC_VAR_ENTRY __cdecl +#endif + + +/* winnt only */ +#if defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) +#define __MIDL_DECLSPEC_DLLIMPORT __declspec(dllimport) +#define __MIDL_DECLSPEC_DLLEXPORT __declspec(dllexport) +#else +#define __MIDL_DECLSPEC_DLLIMPORT +#define __MIDL_DECLSPEC_DLLEXPORT +#endif + + + + +/**************************************************************************** + * Context handle management related definitions: + * + * Client and Server Contexts. + * + ****************************************************************************/ + +typedef void __RPC_FAR * NDR_CCONTEXT; + +typedef struct + { + void __RPC_FAR * pad[2]; + void __RPC_FAR * userContext; + } __RPC_FAR * NDR_SCONTEXT; + +#define NDRSContextValue(hContext) (&(hContext)->userContext) + +#define cbNDRContext 20 /* size of context on WIRE */ + +typedef void (__RPC_USER __RPC_FAR * NDR_RUNDOWN)(void __RPC_FAR * context); + +typedef struct _SCONTEXT_QUEUE { + unsigned long NumberOfObjects; + NDR_SCONTEXT * ArrayOfObjects; + } SCONTEXT_QUEUE, __RPC_FAR * PSCONTEXT_QUEUE; + +RPC_BINDING_HANDLE RPC_ENTRY +NDRCContextBinding ( + IN NDR_CCONTEXT CContext + ); + +void RPC_ENTRY +NDRCContextMarshall ( + IN NDR_CCONTEXT CContext, + OUT void __RPC_FAR *pBuff + ); + +void RPC_ENTRY +NDRCContextUnmarshall ( + OUT NDR_CCONTEXT __RPC_FAR *pCContext, + IN RPC_BINDING_HANDLE hBinding, + IN void __RPC_FAR *pBuff, + IN unsigned long DataRepresentation + ); + +void RPC_ENTRY +NDRSContextMarshall ( + IN NDR_SCONTEXT CContext, + OUT void __RPC_FAR *pBuff, + IN NDR_RUNDOWN userRunDownIn + ); + +NDR_SCONTEXT RPC_ENTRY +NDRSContextUnmarshall ( + IN void __RPC_FAR *pBuff, + IN unsigned long DataRepresentation + ); + +void RPC_ENTRY +RpcSsDestroyClientContext ( + IN void __RPC_FAR * __RPC_FAR * ContextHandle + ); + + +/**************************************************************************** + NDR conversion related definitions. + ****************************************************************************/ + +#define byte_from_ndr(source, target) \ + { \ + *(target) = *(*(char __RPC_FAR * __RPC_FAR *)&(source)->Buffer)++; \ + } + +#define byte_array_from_ndr(Source, LowerIndex, UpperIndex, Target) \ + { \ + NDRcopy ( \ + (((char __RPC_FAR *)(Target))+(LowerIndex)), \ + (Source)->Buffer, \ + (unsigned int)((UpperIndex)-(LowerIndex))); \ + *(unsigned long __RPC_FAR *)&(Source)->Buffer += ((UpperIndex)-(LowerIndex)); \ + } + +#define boolean_from_ndr(source, target) \ + { \ + *(target) = *(*(char __RPC_FAR * __RPC_FAR *)&(source)->Buffer)++; \ + } + +#define boolean_array_from_ndr(Source, LowerIndex, UpperIndex, Target) \ + { \ + NDRcopy ( \ + (((char __RPC_FAR *)(Target))+(LowerIndex)), \ + (Source)->Buffer, \ + (unsigned int)((UpperIndex)-(LowerIndex))); \ + *(unsigned long __RPC_FAR *)&(Source)->Buffer += ((UpperIndex)-(LowerIndex)); \ + } + +#define small_from_ndr(source, target) \ + { \ + *(target) = *(*(char __RPC_FAR * __RPC_FAR *)&(source)->Buffer)++; \ + } + +#define small_from_ndr_temp(source, target, format) \ + { \ + *(target) = *(*(char __RPC_FAR * __RPC_FAR *)(source))++; \ + } + +#define small_array_from_ndr(Source, LowerIndex, UpperIndex, Target) \ + { \ + NDRcopy ( \ + (((char __RPC_FAR *)(Target))+(LowerIndex)), \ + (Source)->Buffer, \ + (unsigned int)((UpperIndex)-(LowerIndex))); \ + *(unsigned long __RPC_FAR *)&(Source)->Buffer += ((UpperIndex)-(LowerIndex)); \ + } + +/**************************************************************************** + Platform specific mapping of c-runtime functions. + ****************************************************************************/ + +#ifdef __RPC_DOS__ +#define MIDL_ascii_strlen(string) \ + _fstrlen(string) +#define MIDL_ascii_strcpy(target,source) \ + _fstrcpy(target,source) +#define MIDL_memset(s,c,n) \ + _fmemset(s,c,n) +#endif + +#ifdef __RPC_WIN16__ +#define MIDL_ascii_strlen(string) \ + _fstrlen(string) +#define MIDL_ascii_strcpy(target,source) \ + _fstrcpy(target,source) +#define MIDL_memset(s,c,n) \ + _fmemset(s,c,n) +#endif + +#if defined(__RPC_WIN32__) || defined(__RPC_MAC__) +#define MIDL_ascii_strlen(string) \ + strlen(string) +#define MIDL_ascii_strcpy(target,source) \ + strcpy(target,source) +#define MIDL_memset(s,c,n) \ + memset(s,c,n) +#endif + +/**************************************************************************** + Ndr Library helper function prototypes for MIDL 1.0 ndr functions. + ****************************************************************************/ + +void RPC_ENTRY +NDRcopy ( + IN void __RPC_FAR *pTarget, + IN void __RPC_FAR *pSource, + IN unsigned int size + ); + +size_t RPC_ENTRY +MIDL_wchar_strlen ( + IN wchar_t __RPC_FAR * s + ); + +void RPC_ENTRY +MIDL_wchar_strcpy ( + OUT void __RPC_FAR * t, + IN wchar_t __RPC_FAR * s + ); + +void RPC_ENTRY +char_from_ndr ( + IN OUT PRPC_MESSAGE SourceMessage, + OUT unsigned char __RPC_FAR * Target + ); + +void RPC_ENTRY +char_array_from_ndr ( + IN OUT PRPC_MESSAGE SourceMessage, + IN unsigned long LowerIndex, + IN unsigned long UpperIndex, + OUT unsigned char __RPC_FAR * Target + ); + +void RPC_ENTRY +short_from_ndr ( + IN OUT PRPC_MESSAGE source, + OUT unsigned short __RPC_FAR * target + ); + +void RPC_ENTRY +short_array_from_ndr( + IN OUT PRPC_MESSAGE SourceMessage, + IN unsigned long LowerIndex, + IN unsigned long UpperIndex, + OUT unsigned short __RPC_FAR * Target + ); + +void RPC_ENTRY +short_from_ndr_temp ( + IN OUT unsigned char __RPC_FAR * __RPC_FAR * source, + OUT unsigned short __RPC_FAR * target, + IN unsigned long format + ); + +void RPC_ENTRY +long_from_ndr ( + IN OUT PRPC_MESSAGE source, + OUT unsigned long __RPC_FAR * target + ); + +void RPC_ENTRY +long_array_from_ndr( + IN OUT PRPC_MESSAGE SourceMessage, + IN unsigned long LowerIndex, + IN unsigned long UpperIndex, + OUT unsigned long __RPC_FAR * Target + ); + +void RPC_ENTRY +long_from_ndr_temp ( + IN OUT unsigned char __RPC_FAR * __RPC_FAR * source, + OUT unsigned long __RPC_FAR * target, + IN unsigned long format + ); + +void RPC_ENTRY +enum_from_ndr( + IN OUT PRPC_MESSAGE SourceMessage, + OUT unsigned int __RPC_FAR * Target + ); + +void RPC_ENTRY +float_from_ndr ( + IN OUT PRPC_MESSAGE SourceMessage, + OUT void __RPC_FAR * Target + ); + +void RPC_ENTRY +float_array_from_ndr ( + IN OUT PRPC_MESSAGE SourceMessage, + IN unsigned long LowerIndex, + IN unsigned long UpperIndex, + OUT void __RPC_FAR * Target + ); + +void RPC_ENTRY +double_from_ndr ( + IN OUT PRPC_MESSAGE SourceMessage, + OUT void __RPC_FAR * Target + ); + +void RPC_ENTRY +double_array_from_ndr ( + IN OUT PRPC_MESSAGE SourceMessage, + IN unsigned long LowerIndex, + IN unsigned long UpperIndex, + OUT void __RPC_FAR * Target + ); + +void RPC_ENTRY +hyper_from_ndr ( + IN OUT PRPC_MESSAGE source, + OUT hyper __RPC_FAR * target + ); + +void RPC_ENTRY +hyper_array_from_ndr( + IN OUT PRPC_MESSAGE SourceMessage, + IN unsigned long LowerIndex, + IN unsigned long UpperIndex, + OUT hyper __RPC_FAR * Target + ); + +void RPC_ENTRY +hyper_from_ndr_temp ( + IN OUT unsigned char __RPC_FAR * __RPC_FAR * source, + OUT hyper __RPC_FAR * target, + IN unsigned long format + ); + +void RPC_ENTRY +data_from_ndr ( + PRPC_MESSAGE source, + void __RPC_FAR * target, + char __RPC_FAR * format, + unsigned char MscPak + ); + +void RPC_ENTRY +data_into_ndr ( + void __RPC_FAR * source, + PRPC_MESSAGE target, + char __RPC_FAR * format, + unsigned char MscPak + ); + +void RPC_ENTRY +tree_into_ndr ( + void __RPC_FAR * source, + PRPC_MESSAGE target, + char __RPC_FAR * format, + unsigned char MscPak + ); + +void RPC_ENTRY +data_size_ndr ( + void __RPC_FAR * source, + PRPC_MESSAGE target, + char __RPC_FAR * format, + unsigned char MscPak + ); + +void RPC_ENTRY +tree_size_ndr ( + void __RPC_FAR * source, + PRPC_MESSAGE target, + char __RPC_FAR * format, + unsigned char MscPak + ); + +void RPC_ENTRY +tree_peek_ndr ( + PRPC_MESSAGE source, + unsigned char __RPC_FAR * __RPC_FAR * buffer, + char __RPC_FAR * format, + unsigned char MscPak + ); + +void __RPC_FAR * RPC_ENTRY +midl_allocate ( + size_t size + ); + +/**************************************************************************** + MIDL 2.0 ndr definitions. + ****************************************************************************/ + +typedef unsigned long error_status_t; + +#define _midl_ma1( p, cast ) *(*( cast **)&p)++ +#define _midl_ma2( p, cast ) *(*( cast **)&p)++ +#define _midl_ma4( p, cast ) *(*( cast **)&p)++ +#define _midl_ma8( p, cast ) *(*( cast **)&p)++ + +#define _midl_unma1( p, cast ) *(( cast *)p)++ +#define _midl_unma2( p, cast ) *(( cast *)p)++ +#define _midl_unma3( p, cast ) *(( cast *)p)++ +#define _midl_unma4( p, cast ) *(( cast *)p)++ + +// Some alignment specific macros. + + +#define _midl_fa2( p ) (p = (RPC_BUFPTR )((unsigned long)(p+1) & 0xfffffffe)) +#define _midl_fa4( p ) (p = (RPC_BUFPTR )((unsigned long)(p+3) & 0xfffffffc)) +#define _midl_fa8( p ) (p = (RPC_BUFPTR )((unsigned long)(p+7) & 0xfffffff8)) + +#define _midl_addp( p, n ) (p += n) + +// Marshalling macros + +#define _midl_marsh_lhs( p, cast ) *(*( cast **)&p)++ +#define _midl_marsh_up( mp, p ) *(*(unsigned long **)&mp)++ = (unsigned long)p +#define _midl_advmp( mp ) *(*(unsigned long **)&mp)++ +#define _midl_unmarsh_up( p ) (*(*(unsigned long **)&p)++) + + +//////////////////////////////////////////////////////////////////////////// +// Ndr macros. +//////////////////////////////////////////////////////////////////////////// + +#define NdrMarshConfStringHdr( p, s, l ) (_midl_ma4( p, unsigned long) = s, \ + _midl_ma4( p, unsigned long) = 0, \ + _midl_ma4( p, unsigned long) = l) + +#define NdrUnMarshConfStringHdr(p, s, l) ((s=_midl_unma4(p,unsigned long),\ + (_midl_addp(p,4)), \ + (l=_midl_unma4(p,unsigned long)) + +#define NdrMarshCCtxtHdl(pc,p) (NDRCContextMarshall( (NDR_CCONTEXT)pc, p ),p+20) + +#define NdrUnMarshCCtxtHdl(pc,p,h,drep) \ + (NDRCContextUnmarshall((NDR_CONTEXT)pc,h,p,drep), p+20) + +#define NdrUnMarshSCtxtHdl(pc, p,drep) (pc = NdrSContextUnMarshall(p,drep )) + + +#define NdrMarshSCtxtHdl(pc,p,rd) (NdrSContextMarshall((NDR_SCONTEXT)pc,p, (NDR_RUNDOWN)rd) + +#define NdrFieldOffset(s,f) (long)(& (((s __RPC_FAR *)0)->f)) +#define NdrFieldPad(s,f,p,t) (NdrFieldOffset(s,f) - NdrFieldOffset(s,p) - sizeof(t)) + +#if defined(__RPC_MAC__) +#define NdrFcShort(s) (unsigned char)(s >> 8), (unsigned char)(s & 0xff) +#define NdrFcLong(s) (unsigned char)(s >> 24), (unsigned char)((s & 0x00ff0000) >> 16), \ + (unsigned char)((s & 0x0000ff00) >> 8), (unsigned char)(s & 0xff) +#else +#define NdrFcShort(s) (unsigned char)(s & 0xff), (unsigned char)(s >> 8) +#define NdrFcLong(s) (unsigned char)(s & 0xff), (unsigned char)((s & 0x0000ff00) >> 8), \ + (unsigned char)((s & 0x00ff0000) >> 16), (unsigned char)(s >> 24) +#endif // Mac + +// +// On the server side, the following exceptions are mapped to +// the bad stub data exception if -error stub_data is used. +// + +#define RPC_BAD_STUB_DATA_EXCEPTION_FILTER \ + ( (RpcExceptionCode() == STATUS_ACCESS_VIOLATION) || \ + (RpcExceptionCode() == STATUS_DATATYPE_MISALIGNMENT) || \ + (RpcExceptionCode() == RPC_X_BAD_STUB_DATA) ) + +///////////////////////////////////////////////////////////////////////////// +// Some stub helper functions. +///////////////////////////////////////////////////////////////////////////// + +//////////////////////////////////////////////////////////////////////////// +// Stub helper structures. +//////////////////////////////////////////////////////////////////////////// + +struct _MIDL_STUB_MESSAGE; +struct _MIDL_STUB_DESC; +struct _FULL_PTR_XLAT_TABLES; + +typedef unsigned char __RPC_FAR * RPC_BUFPTR; +typedef unsigned long RPC_LENGTH; + +// Expression evaluation callback routine prototype. +typedef void (__RPC_USER __RPC_FAR * EXPR_EVAL)( struct _MIDL_STUB_MESSAGE __RPC_FAR * ); + +typedef const unsigned char __RPC_FAR * PFORMAT_STRING; + +/* + * Multidimensional conformant/varying array struct. + */ +typedef struct + { + long Dimension; + + /* These fields MUST be (unsigned long *) */ + unsigned long __RPC_FAR * BufferConformanceMark; + unsigned long __RPC_FAR * BufferVarianceMark; + + /* Count arrays, used for top level arrays in -Os stubs */ + unsigned long __RPC_FAR * MaxCountArray; + unsigned long __RPC_FAR * OffsetArray; + unsigned long __RPC_FAR * ActualCountArray; + } ARRAY_INFO, __RPC_FAR *PARRAY_INFO; + +/* + * Pipe related definitions. + */ + +typedef void +(__RPC_FAR __RPC_API * NDR_PIPE_PULL_RTN)( + char __RPC_FAR * state, + void __RPC_FAR * buf, + unsigned long esize, + unsigned long __RPC_FAR * ecount ); + +typedef void +(__RPC_FAR __RPC_API * NDR_PIPE_PUSH_RTN)( + char __RPC_FAR * state, + void __RPC_FAR * buf, + unsigned long ecount ); + +typedef void +(__RPC_FAR __RPC_API * NDR_PIPE_ALLOC_RTN)( + char __RPC_FAR * state, + unsigned long bsize, + void __RPC_FAR * __RPC_FAR * buf, + unsigned long __RPC_FAR * bcount ); + + +typedef struct _GENERIC_PIPE_TYPE + { + NDR_PIPE_PULL_RTN pfnPull; + NDR_PIPE_PUSH_RTN pfnPush; + NDR_PIPE_ALLOC_RTN pfnAlloc; + char __RPC_FAR * pState; + } GENERIC_PIPE_TYPE; + + +typedef struct { + int CurrentState; + int ElemsInChunk; + int ElemAlign; + int ElemWireSize; + int ElemMemSize; + int PartialBufferSize; + unsigned char __RPC_FAR * PartialElem; + int PartialElemSize; + int PartialOffset; + int EndOfPipe; + } NDR_PIPE_STATE; + +typedef struct _PIPE_MESSAGE + { + unsigned short Signature; + unsigned short PipeId; + GENERIC_PIPE_TYPE __RPC_FAR * pPipeType; + PFORMAT_STRING pTypeFormat; + unsigned short PipeStatus; + unsigned short PipeFlags; + struct _MIDL_STUB_MESSAGE __RPC_FAR * pStubMsg; + } NDR_PIPE_MESSAGE, __RPC_FAR * PNDR_PIPE_MESSAGE; + +typedef struct _NDR_PIPE_DESC + { + NDR_PIPE_MESSAGE __RPC_FAR * pPipeMsg; + short CurrentPipe; + short InPipes; + short OutPipes; + short TotalPipes; + short PipeVersion; + short Flags; + unsigned char __RPC_FAR * DispatchBuffer; + unsigned char __RPC_FAR * LastPartialBuffer; + unsigned long LastPartialSize; + unsigned char __RPC_FAR * BufferSave; + unsigned long LengthSave; + NDR_PIPE_STATE RuntimeState; + } NDR_PIPE_DESC, __RPC_FAR * PNDR_PIPE_DESC; + + +/* + * MIDL Stub Message + */ +#if !defined(__RPC_DOS__) && !defined(__RPC_WIN16__) && !defined(__RPC_MAC__) +#include <pshpack4.h> +#endif + +typedef struct _MIDL_STUB_MESSAGE + { + /* RPC message structure. */ + PRPC_MESSAGE RpcMsg; + + /* Pointer into RPC message buffer. */ + unsigned char __RPC_FAR * Buffer; + + /* + * These are used internally by the Ndr routines to mark the beginning + * and end of an incoming RPC buffer. + */ + unsigned char __RPC_FAR * BufferStart; + unsigned char __RPC_FAR * BufferEnd; + + /* + * Used internally by the Ndr routines as a place holder in the buffer. + * On the marshalling side it's used to mark the location where conformance + * size should be marshalled. + * On the unmarshalling side it's used to mark the location in the buffer + * used during pointer unmarshalling to base pointer offsets off of. + */ + unsigned char __RPC_FAR * BufferMark; + + /* Set by the buffer sizing routines. */ + unsigned long BufferLength; + + /* Set by the memory sizing routines. */ + unsigned long MemorySize; + + /* Pointer to user memory. */ + unsigned char __RPC_FAR * Memory; + + /* Is the Ndr routine begin called from a client side stub. */ + int IsClient; + + /* Can the buffer be re-used for memory on unmarshalling. */ + int ReuseBuffer; + + /* Holds the current pointer to an allocate all nodes memory block. */ + unsigned char __RPC_FAR * AllocAllNodesMemory; + + /* Used for debugging asserts only, remove later. */ + unsigned char __RPC_FAR * AllocAllNodesMemoryEnd; + + /* + * Stuff needed while handling complex structures + */ + + /* Ignore imbeded pointers while computing buffer or memory sizes. */ + int IgnoreEmbeddedPointers; + + /* + * This marks the location in the buffer where pointees of a complex + * struct reside. + */ + unsigned char __RPC_FAR * PointerBufferMark; + + /* + * Used to catch errors in SendReceive. + */ + unsigned char fBufferValid; + + /* + * Obsolete unused field (formerly MaxContextHandleNumber). + */ + unsigned char Unused; + + /* + * Used internally by the Ndr routines. Holds the max counts for + * a conformant array. + */ + unsigned long MaxCount; + + /* + * Used internally by the Ndr routines. Holds the offsets for a varying + * array. + */ + unsigned long Offset; + + /* + * Used internally by the Ndr routines. Holds the actual counts for + * a varying array. + */ + unsigned long ActualCount; + + /* Allocation and Free routine to be used by the Ndr routines. */ + void __RPC_FAR * (__RPC_FAR __RPC_API * pfnAllocate)(size_t); + void (__RPC_FAR __RPC_API * pfnFree)(void __RPC_FAR *); + + /* + * Top of parameter stack. Used for "single call" stubs during marshalling + * to hold the beginning of the parameter list on the stack. Needed to + * extract parameters which hold attribute values for top level arrays and + * pointers. + */ + unsigned char __RPC_FAR * StackTop; + + /* + * Fields used for the transmit_as and represent_as objects. + * For represent_as the mapping is: presented=local, transmit=named. + */ + unsigned char __RPC_FAR * pPresentedType; + unsigned char __RPC_FAR * pTransmitType; + + /* + * When we first construct a binding on the client side, stick it + * in the rpcmessage and later call RpcGetBuffer, the handle field + * in the rpcmessage is changed. That's fine except that we need to + * have that original handle for use in unmarshalling context handles + * (the second argument in NDRCContextUnmarshall to be exact). So + * stash the contructed handle here and extract it when needed. + */ + handle_t SavedHandle; + + /* + * Pointer back to the stub descriptor. Use this to get all handle info. + */ + const struct _MIDL_STUB_DESC __RPC_FAR * StubDesc; + + /* + * Full pointer stuff. + */ + struct _FULL_PTR_XLAT_TABLES __RPC_FAR * FullPtrXlatTables; + + unsigned long FullPtrRefId; + + /* + * flags + */ + + int fCheckBounds; + + int fInDontFree :1; + int fDontCallFreeInst :1; + int fInOnlyParam :1; + int fHasReturn :1; + + unsigned long dwDestContext; + void __RPC_FAR * pvDestContext; + + NDR_SCONTEXT * SavedContextHandles; + + long ParamNumber; + + struct IRpcChannelBuffer __RPC_FAR * pRpcChannelBuffer; + + PARRAY_INFO pArrayInfo; + + /* + * This is where the Beta2 stub message ends. + */ + + unsigned long __RPC_FAR * SizePtrCountArray; + unsigned long __RPC_FAR * SizePtrOffsetArray; + unsigned long __RPC_FAR * SizePtrLengthArray; + + /* + * Interpreter argument queue. Used on server side only. + */ + void __RPC_FAR * pArgQueue; + + unsigned long dwStubPhase; + + /* + * Pipe descriptor, defined for the 4.0 release. + */ + + NDR_PIPE_DESC __RPC_FAR * pPipeDesc; + + unsigned long Reserved[4]; + + /* + * Fields up to this point present since the 3.50 release. + */ + + } MIDL_STUB_MESSAGE, __RPC_FAR *PMIDL_STUB_MESSAGE; + +#if !defined(__RPC_DOS__) && !defined(__RPC_WIN16__) && !defined(__RPC_MAC__) +#include <poppack.h> +#endif + +/* + * Generic handle bind/unbind routine pair. + */ +typedef void __RPC_FAR * + (__RPC_FAR __RPC_API * GENERIC_BINDING_ROUTINE) + (void __RPC_FAR *); +typedef void + (__RPC_FAR __RPC_API * GENERIC_UNBIND_ROUTINE) + (void __RPC_FAR *, unsigned char __RPC_FAR *); + +typedef struct _GENERIC_BINDING_ROUTINE_PAIR + { + GENERIC_BINDING_ROUTINE pfnBind; + GENERIC_UNBIND_ROUTINE pfnUnbind; + } GENERIC_BINDING_ROUTINE_PAIR, __RPC_FAR *PGENERIC_BINDING_ROUTINE_PAIR; + +typedef struct __GENERIC_BINDING_INFO + { + void __RPC_FAR * pObj; + unsigned int Size; + GENERIC_BINDING_ROUTINE pfnBind; + GENERIC_UNBIND_ROUTINE pfnUnbind; + } GENERIC_BINDING_INFO, __RPC_FAR *PGENERIC_BINDING_INFO; + +// typedef EXPR_EVAL - see above +// typedefs for xmit_as + +#if (defined(_MSC_VER)) && !defined(MIDL_PASS) +// a Microsoft C++ compiler +#define NDR_SHAREABLE __inline +#else +#define NDR_SHAREABLE static +#endif + + +typedef void (__RPC_FAR __RPC_USER * XMIT_HELPER_ROUTINE) + ( PMIDL_STUB_MESSAGE ); + +typedef struct _XMIT_ROUTINE_QUINTUPLE + { + XMIT_HELPER_ROUTINE pfnTranslateToXmit; + XMIT_HELPER_ROUTINE pfnTranslateFromXmit; + XMIT_HELPER_ROUTINE pfnFreeXmit; + XMIT_HELPER_ROUTINE pfnFreeInst; + } XMIT_ROUTINE_QUINTUPLE, __RPC_FAR *PXMIT_ROUTINE_QUINTUPLE; + +typedef unsigned long +(__RPC_FAR __RPC_USER * USER_MARSHAL_SIZING_ROUTINE) + (unsigned long __RPC_FAR *, + unsigned long, + void __RPC_FAR * ); + +typedef unsigned char __RPC_FAR * +(__RPC_FAR __RPC_USER * USER_MARSHAL_MARSHALLING_ROUTINE) + (unsigned long __RPC_FAR *, + unsigned char __RPC_FAR * , + void __RPC_FAR * ); + +typedef unsigned char __RPC_FAR * +(__RPC_FAR __RPC_USER * USER_MARSHAL_UNMARSHALLING_ROUTINE) + (unsigned long __RPC_FAR *, + unsigned char __RPC_FAR * , + void __RPC_FAR * ); + +typedef void (__RPC_FAR __RPC_USER * USER_MARSHAL_FREEING_ROUTINE) + (unsigned long __RPC_FAR *, + void __RPC_FAR * ); + +typedef struct _USER_MARSHAL_ROUTINE_QUADRUPLE + { + USER_MARSHAL_SIZING_ROUTINE pfnBufferSize; + USER_MARSHAL_MARSHALLING_ROUTINE pfnMarshall; + USER_MARSHAL_UNMARSHALLING_ROUTINE pfnUnmarshall; + USER_MARSHAL_FREEING_ROUTINE pfnFree; + } USER_MARSHAL_ROUTINE_QUADRUPLE; + +typedef struct _USER_MARSHAL_CB +{ + unsigned long Flags; + PMIDL_STUB_MESSAGE pStubMsg; + PFORMAT_STRING pReserve; +} USER_MARSHAL_CB; + + +#define USER_CALL_CTXT_MASK(f) ((f) & 0xff) +#define GET_USER_DATA_REP(f) ((f) >> 16) + +typedef struct _MALLOC_FREE_STRUCT + { + void __RPC_FAR * (__RPC_FAR __RPC_USER * pfnAllocate)(size_t); + void (__RPC_FAR __RPC_USER * pfnFree)(void __RPC_FAR *); + } MALLOC_FREE_STRUCT; + +typedef struct _COMM_FAULT_OFFSETS + { + short CommOffset; + short FaultOffset; + } COMM_FAULT_OFFSETS; + +/* + * MIDL Stub Descriptor + */ + +typedef struct _MIDL_STUB_DESC + { + + void __RPC_FAR * RpcInterfaceInformation; + + void __RPC_FAR * (__RPC_FAR __RPC_API * pfnAllocate)(size_t); + void (__RPC_FAR __RPC_API * pfnFree)(void __RPC_FAR *); + + union + { + handle_t __RPC_FAR * pAutoHandle; + handle_t __RPC_FAR * pPrimitiveHandle; + PGENERIC_BINDING_INFO pGenericBindingInfo; + } IMPLICIT_HANDLE_INFO; + + const NDR_RUNDOWN __RPC_FAR * apfnNdrRundownRoutines; + const GENERIC_BINDING_ROUTINE_PAIR __RPC_FAR * aGenericBindingRoutinePairs; + + const EXPR_EVAL __RPC_FAR * apfnExprEval; + + const XMIT_ROUTINE_QUINTUPLE __RPC_FAR * aXmitQuintuple; + + const unsigned char __RPC_FAR * pFormatTypes; + + int fCheckBounds; + + /* Ndr library version. */ + unsigned long Version; + + /* + * Reserved for future use. (no reserves ) + */ + + MALLOC_FREE_STRUCT __RPC_FAR * pMallocFreeStruct; + + long MIDLVersion; + + const COMM_FAULT_OFFSETS __RPC_FAR * CommFaultOffsets; + + // New fields for version 3.0+ + + const USER_MARSHAL_ROUTINE_QUADRUPLE __RPC_FAR * aUserMarshalQuadruple; + + long Reserved1; + long Reserved2; + long Reserved3; + long Reserved4; + long Reserved5; + + } MIDL_STUB_DESC; + +typedef const MIDL_STUB_DESC __RPC_FAR * PMIDL_STUB_DESC; + +typedef void __RPC_FAR * PMIDL_XMIT_TYPE; + +/* + * MIDL Stub Format String. This is a const in the stub. + */ +#if !defined( RC_INVOKED ) +#pragma warning( disable:4200 ) +#endif +typedef struct _MIDL_FORMAT_STRING + { + short Pad; + unsigned char Format[]; + } MIDL_FORMAT_STRING; +#if !defined( RC_INVOKED ) +#pragma warning( default:4200 ) +#endif + +/* + * Stub thunk used for some interpreted server stubs. + */ +typedef void (__RPC_FAR __RPC_API * STUB_THUNK)( PMIDL_STUB_MESSAGE ); + +typedef long (__RPC_FAR __RPC_API * SERVER_ROUTINE)(); + +/* + * Server Interpreter's information strucuture. + */ +typedef struct _MIDL_SERVER_INFO_ + { + PMIDL_STUB_DESC pStubDesc; + const SERVER_ROUTINE * DispatchTable; + PFORMAT_STRING ProcString; + const unsigned short * FmtStringOffset; + const STUB_THUNK * ThunkTable; + PFORMAT_STRING LocalFormatTypes; + PFORMAT_STRING LocalProcString; + const unsigned short * LocalFmtStringOffset; + } MIDL_SERVER_INFO, *PMIDL_SERVER_INFO; + +/* + * Stubless object proxy information structure. + */ +typedef struct _MIDL_STUBLESS_PROXY_INFO + { + PMIDL_STUB_DESC pStubDesc; + PFORMAT_STRING ProcFormatString; + const unsigned short __RPC_FAR * FormatStringOffset; + PFORMAT_STRING LocalFormatTypes; + PFORMAT_STRING LocalProcString; + const unsigned short __RPC_FAR * LocalFmtStringOffset; + } MIDL_STUBLESS_PROXY_INFO; + +typedef MIDL_STUBLESS_PROXY_INFO __RPC_FAR * PMIDL_STUBLESS_PROXY_INFO; + +/* + * This is the return value from NdrClientCall. + */ +typedef union _CLIENT_CALL_RETURN + { + void __RPC_FAR * Pointer; + long Simple; + } CLIENT_CALL_RETURN; + +/* + * Full pointer data structures. + */ + +typedef enum + { + XLAT_SERVER = 1, + XLAT_CLIENT + } XLAT_SIDE; + +/* + * Stores the translation for the conversion from a full pointer into it's + * corresponding ref id. + */ +typedef struct _FULL_PTR_TO_REFID_ELEMENT + { + struct _FULL_PTR_TO_REFID_ELEMENT __RPC_FAR * Next; + + void __RPC_FAR * Pointer; + unsigned long RefId; + unsigned char State; + } FULL_PTR_TO_REFID_ELEMENT, __RPC_FAR *PFULL_PTR_TO_REFID_ELEMENT; + +/* + * Full pointer translation tables. + */ +typedef struct _FULL_PTR_XLAT_TABLES + { + /* + * Ref id to pointer translation information. + */ + struct + { + void __RPC_FAR *__RPC_FAR * XlatTable; + unsigned char __RPC_FAR * StateTable; + unsigned long NumberOfEntries; + } RefIdToPointer; + + /* + * Pointer to ref id translation information. + */ + struct + { + PFULL_PTR_TO_REFID_ELEMENT __RPC_FAR * XlatTable; + unsigned long NumberOfBuckets; + unsigned long HashMask; + } PointerToRefId; + + /* + * Next ref id to use. + */ + unsigned long NextRefId; + + /* + * Keep track of the translation size we're handling : server or client. + * This tells us when we have to do reverse translations when we insert + * new translations. On the server we must insert a pointer-to-refid + * translation whenever we insert a refid-to-pointer translation, and + * vica versa for the client. + */ + XLAT_SIDE XlatSide; + } FULL_PTR_XLAT_TABLES, __RPC_FAR *PFULL_PTR_XLAT_TABLES; + +/*************************************************************************** + ** New MIDL 2.0 Ndr routine templates + ***************************************************************************/ + +/* + * Marshall routines + */ + +void RPC_ENTRY +NdrSimpleTypeMarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + unsigned char FormatChar + ); + +unsigned char __RPC_FAR * RPC_ENTRY +NdrPointerMarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +/* Structures */ + +unsigned char __RPC_FAR * RPC_ENTRY +NdrSimpleStructMarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +unsigned char __RPC_FAR * RPC_ENTRY +NdrConformantStructMarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +unsigned char __RPC_FAR * RPC_ENTRY +NdrConformantVaryingStructMarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +unsigned char __RPC_FAR * RPC_ENTRY +NdrHardStructMarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +unsigned char __RPC_FAR * RPC_ENTRY +NdrComplexStructMarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +/* Arrays */ + +unsigned char __RPC_FAR * RPC_ENTRY +NdrFixedArrayMarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +unsigned char __RPC_FAR * RPC_ENTRY +NdrConformantArrayMarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +unsigned char __RPC_FAR * RPC_ENTRY +NdrConformantVaryingArrayMarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +unsigned char __RPC_FAR * RPC_ENTRY +NdrVaryingArrayMarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +unsigned char __RPC_FAR * RPC_ENTRY +NdrComplexArrayMarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +/* Strings */ + +unsigned char __RPC_FAR * RPC_ENTRY +NdrNonConformantStringMarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +unsigned char __RPC_FAR * RPC_ENTRY +NdrConformantStringMarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +/* Unions */ + +unsigned char __RPC_FAR * RPC_ENTRY +NdrEncapsulatedUnionMarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +unsigned char __RPC_FAR * RPC_ENTRY +NdrNonEncapsulatedUnionMarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +/* Byte count pointer */ + +unsigned char __RPC_FAR * RPC_ENTRY +NdrByteCountPointerMarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +/* Transmit as and represent as*/ + +unsigned char __RPC_FAR * RPC_ENTRY +NdrXmitOrRepAsMarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +/* User_marshal */ + +unsigned char __RPC_FAR * RPC_ENTRY +NdrUserMarshalMarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +/* Cairo interface pointer */ + +unsigned char __RPC_FAR * RPC_ENTRY +NdrInterfacePointerMarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +/* Context handles */ + +void RPC_ENTRY +NdrClientContextMarshall( + PMIDL_STUB_MESSAGE pStubMsg, + NDR_CCONTEXT ContextHandle, + int fCheck + ); + +void RPC_ENTRY +NdrServerContextMarshall( + PMIDL_STUB_MESSAGE pStubMsg, + NDR_SCONTEXT ContextHandle, + NDR_RUNDOWN RundownRoutine + ); + +/* + * Unmarshall routines + */ + +void RPC_ENTRY +NdrSimpleTypeUnmarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + unsigned char FormatChar + ); + +unsigned char __RPC_FAR * RPC_ENTRY +NdrPointerUnmarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * __RPC_FAR * ppMemory, + PFORMAT_STRING pFormat, + unsigned char fMustAlloc + ); + +/* Structures */ + +unsigned char __RPC_FAR * RPC_ENTRY +NdrSimpleStructUnmarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * __RPC_FAR * ppMemory, + PFORMAT_STRING pFormat, + unsigned char fMustAlloc + ); + +unsigned char __RPC_FAR * RPC_ENTRY +NdrConformantStructUnmarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * __RPC_FAR * ppMemory, + PFORMAT_STRING pFormat, + unsigned char fMustAlloc + ); + +unsigned char __RPC_FAR * RPC_ENTRY +NdrConformantVaryingStructUnmarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * __RPC_FAR * ppMemory, + PFORMAT_STRING pFormat, + unsigned char fMustAlloc + ); + +unsigned char __RPC_FAR * RPC_ENTRY +NdrHardStructUnmarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * __RPC_FAR * ppMemory, + PFORMAT_STRING pFormat, + unsigned char fMustAlloc + ); + +unsigned char __RPC_FAR * RPC_ENTRY +NdrComplexStructUnmarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * __RPC_FAR * ppMemory, + PFORMAT_STRING pFormat, + unsigned char fMustAlloc + ); + +/* Arrays */ + +unsigned char __RPC_FAR * RPC_ENTRY +NdrFixedArrayUnmarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * __RPC_FAR * ppMemory, + PFORMAT_STRING pFormat, + unsigned char fMustAlloc + ); + +unsigned char __RPC_FAR * RPC_ENTRY +NdrConformantArrayUnmarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * __RPC_FAR * ppMemory, + PFORMAT_STRING pFormat, + unsigned char fMustAlloc + ); + +unsigned char __RPC_FAR * RPC_ENTRY +NdrConformantVaryingArrayUnmarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * __RPC_FAR * ppMemory, + PFORMAT_STRING pFormat, + unsigned char fMustAlloc + ); + +unsigned char __RPC_FAR * RPC_ENTRY +NdrVaryingArrayUnmarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * __RPC_FAR * ppMemory, + PFORMAT_STRING pFormat, + unsigned char fMustAlloc + ); + +unsigned char __RPC_FAR * RPC_ENTRY +NdrComplexArrayUnmarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * __RPC_FAR * ppMemory, + PFORMAT_STRING pFormat, + unsigned char fMustAlloc + ); + +/* Strings */ + +unsigned char __RPC_FAR * RPC_ENTRY +NdrNonConformantStringUnmarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * __RPC_FAR * ppMemory, + PFORMAT_STRING pFormat, + unsigned char fMustAlloc + ); + +unsigned char __RPC_FAR * RPC_ENTRY +NdrConformantStringUnmarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * __RPC_FAR * ppMemory, + PFORMAT_STRING pFormat, + unsigned char fMustAlloc + ); + +/* Unions */ + +unsigned char __RPC_FAR * RPC_ENTRY +NdrEncapsulatedUnionUnmarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * __RPC_FAR * ppMemory, + PFORMAT_STRING pFormat, + unsigned char fMustAlloc + ); + +unsigned char __RPC_FAR * RPC_ENTRY +NdrNonEncapsulatedUnionUnmarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * __RPC_FAR * ppMemory, + PFORMAT_STRING pFormat, + unsigned char fMustAlloc + ); + +/* Byte count pointer */ + +unsigned char __RPC_FAR * RPC_ENTRY +NdrByteCountPointerUnmarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * __RPC_FAR * ppMemory, + PFORMAT_STRING pFormat, + unsigned char fMustAlloc + ); + +/* Transmit as and represent as*/ + +unsigned char __RPC_FAR * RPC_ENTRY +NdrXmitOrRepAsUnmarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * __RPC_FAR * ppMemory, + PFORMAT_STRING pFormat, + unsigned char fMustAlloc + ); + +/* User_marshal */ + +unsigned char __RPC_FAR * RPC_ENTRY +NdrUserMarshalUnmarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * __RPC_FAR * ppMemory, + PFORMAT_STRING pFormat, + unsigned char fMustAlloc + ); + +/* Cairo interface pointer */ + +unsigned char __RPC_FAR * RPC_ENTRY +NdrInterfacePointerUnmarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * __RPC_FAR * ppMemory, + PFORMAT_STRING pFormat, + unsigned char fMustAlloc + ); + +/* Context handles */ + +void RPC_ENTRY +NdrClientContextUnmarshall( + PMIDL_STUB_MESSAGE pStubMsg, + NDR_CCONTEXT __RPC_FAR * pContextHandle, + RPC_BINDING_HANDLE BindHandle + ); + +NDR_SCONTEXT RPC_ENTRY +NdrServerContextUnmarshall( + PMIDL_STUB_MESSAGE pStubMsg + ); + +/* + * Buffer sizing routines + */ + +void RPC_ENTRY +NdrPointerBufferSize( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +/* Structures */ + +void RPC_ENTRY +NdrSimpleStructBufferSize( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +void RPC_ENTRY +NdrConformantStructBufferSize( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +void RPC_ENTRY +NdrConformantVaryingStructBufferSize( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +void RPC_ENTRY +NdrHardStructBufferSize( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +void RPC_ENTRY +NdrComplexStructBufferSize( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +/* Arrays */ + +void RPC_ENTRY +NdrFixedArrayBufferSize( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +void RPC_ENTRY +NdrConformantArrayBufferSize( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +void RPC_ENTRY +NdrConformantVaryingArrayBufferSize( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +void RPC_ENTRY +NdrVaryingArrayBufferSize( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +void RPC_ENTRY +NdrComplexArrayBufferSize( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +/* Strings */ + +void RPC_ENTRY +NdrConformantStringBufferSize( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +void RPC_ENTRY +NdrNonConformantStringBufferSize( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +/* Unions */ + +void RPC_ENTRY +NdrEncapsulatedUnionBufferSize( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +void RPC_ENTRY +NdrNonEncapsulatedUnionBufferSize( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +/* Byte count pointer */ + +void RPC_ENTRY +NdrByteCountPointerBufferSize( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +/* Transmit as and represent as*/ + +void RPC_ENTRY +NdrXmitOrRepAsBufferSize( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +/* User_marshal */ + +void RPC_ENTRY +NdrUserMarshalBufferSize( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +/* Cairo Interface pointer */ + +void RPC_ENTRY +NdrInterfacePointerBufferSize( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +// Context Handle size +// +void RPC_ENTRY +NdrContextHandleSize( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +/* + * Memory sizing routines + */ + +unsigned long RPC_ENTRY +NdrPointerMemorySize( + PMIDL_STUB_MESSAGE pStubMsg, + PFORMAT_STRING pFormat + ); + +/* Structures */ + +unsigned long RPC_ENTRY +NdrSimpleStructMemorySize( + PMIDL_STUB_MESSAGE pStubMsg, + PFORMAT_STRING pFormat + ); + +unsigned long RPC_ENTRY +NdrConformantStructMemorySize( + PMIDL_STUB_MESSAGE pStubMsg, + PFORMAT_STRING pFormat + ); + +unsigned long RPC_ENTRY +NdrConformantVaryingStructMemorySize( + PMIDL_STUB_MESSAGE pStubMsg, + PFORMAT_STRING pFormat + ); + +unsigned long RPC_ENTRY +NdrHardStructMemorySize( + PMIDL_STUB_MESSAGE pStubMsg, + PFORMAT_STRING pFormat + ); + +unsigned long RPC_ENTRY +NdrComplexStructMemorySize( + PMIDL_STUB_MESSAGE pStubMsg, + PFORMAT_STRING pFormat + ); + +/* Arrays */ + +unsigned long RPC_ENTRY +NdrFixedArrayMemorySize( + PMIDL_STUB_MESSAGE pStubMsg, + PFORMAT_STRING pFormat + ); + +unsigned long RPC_ENTRY +NdrConformantArrayMemorySize( + PMIDL_STUB_MESSAGE pStubMsg, + PFORMAT_STRING pFormat + ); + +unsigned long RPC_ENTRY +NdrConformantVaryingArrayMemorySize( + PMIDL_STUB_MESSAGE pStubMsg, + PFORMAT_STRING pFormat + ); + +unsigned long RPC_ENTRY +NdrVaryingArrayMemorySize( + PMIDL_STUB_MESSAGE pStubMsg, + PFORMAT_STRING pFormat + ); + +unsigned long RPC_ENTRY +NdrComplexArrayMemorySize( + PMIDL_STUB_MESSAGE pStubMsg, + PFORMAT_STRING pFormat + ); + +/* Strings */ + +unsigned long RPC_ENTRY +NdrConformantStringMemorySize( + PMIDL_STUB_MESSAGE pStubMsg, + PFORMAT_STRING pFormat + ); + +unsigned long RPC_ENTRY +NdrNonConformantStringMemorySize( + PMIDL_STUB_MESSAGE pStubMsg, + PFORMAT_STRING pFormat + ); + +/* Unions */ + +unsigned long RPC_ENTRY +NdrEncapsulatedUnionMemorySize( + PMIDL_STUB_MESSAGE pStubMsg, + PFORMAT_STRING pFormat + ); + +unsigned long RPC_ENTRY +NdrNonEncapsulatedUnionMemorySize( + PMIDL_STUB_MESSAGE pStubMsg, + PFORMAT_STRING pFormat + ); + +/* Transmit as and represent as*/ + +unsigned long RPC_ENTRY +NdrXmitOrRepAsMemorySize( + PMIDL_STUB_MESSAGE pStubMsg, + PFORMAT_STRING pFormat + ); + +/* User_marshal */ + +unsigned long RPC_ENTRY +NdrUserMarshalMemorySize( + PMIDL_STUB_MESSAGE pStubMsg, + PFORMAT_STRING pFormat + ); + +/* Cairo Interface pointer */ + +unsigned long RPC_ENTRY +NdrInterfacePointerMemorySize( + PMIDL_STUB_MESSAGE pStubMsg, + PFORMAT_STRING pFormat + ); + +/* + * Freeing routines + */ + +void RPC_ENTRY +NdrPointerFree( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +/* Structures */ + +void RPC_ENTRY +NdrSimpleStructFree( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +void RPC_ENTRY +NdrConformantStructFree( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +void RPC_ENTRY +NdrConformantVaryingStructFree( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +void RPC_ENTRY +NdrHardStructFree( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +void RPC_ENTRY +NdrComplexStructFree( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +/* Arrays */ + +void RPC_ENTRY +NdrFixedArrayFree( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +void RPC_ENTRY +NdrConformantArrayFree( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +void RPC_ENTRY +NdrConformantVaryingArrayFree( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +void RPC_ENTRY +NdrVaryingArrayFree( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +void RPC_ENTRY +NdrComplexArrayFree( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +/* Unions */ + +void RPC_ENTRY +NdrEncapsulatedUnionFree( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +void RPC_ENTRY +NdrNonEncapsulatedUnionFree( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +/* Byte count */ + +void RPC_ENTRY +NdrByteCountPointerFree( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +/* Transmit as and represent as*/ + +void RPC_ENTRY +NdrXmitOrRepAsFree( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +/* User_marshal */ + +void RPC_ENTRY +NdrUserMarshalFree( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +/* Cairo Interface pointer */ + +void RPC_ENTRY +NdrInterfacePointerFree( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pMemory, + PFORMAT_STRING pFormat + ); + +/* + * Endian conversion routine. + */ + +void RPC_ENTRY +NdrConvert2( + PMIDL_STUB_MESSAGE pStubMsg, + PFORMAT_STRING pFormat, + long NumberParams + ); + +void RPC_ENTRY +NdrConvert( + PMIDL_STUB_MESSAGE pStubMsg, + PFORMAT_STRING pFormat + ); + +#define USER_MARSHAL_FC_BYTE 1 +#define USER_MARSHAL_FC_CHAR 2 +#define USER_MARSHAL_FC_SMALL 3 +#define USER_MARSHAL_FC_USMALL 4 +#define USER_MARSHAL_FC_WCHAR 5 +#define USER_MARSHAL_FC_SHORT 6 +#define USER_MARSHAL_FC_USHORT 7 +#define USER_MARSHAL_FC_LONG 8 +#define USER_MARSHAL_FC_ULONG 9 +#define USER_MARSHAL_FC_FLOAT 10 +#define USER_MARSHAL_FC_HYPER 11 +#define USER_MARSHAL_FC_DOUBLE 12 + +unsigned char __RPC_FAR * RPC_ENTRY +NdrUserMarshalSimpleTypeConvert( + unsigned long * pFlags, + unsigned char * pBuffer, + unsigned char FormatChar + ); + +/* + * Auxilary routines + */ + +void RPC_ENTRY +NdrClientInitializeNew( + PRPC_MESSAGE pRpcMsg, + PMIDL_STUB_MESSAGE pStubMsg, + PMIDL_STUB_DESC pStubDescriptor, + unsigned int ProcNum + ); + +unsigned char __RPC_FAR * RPC_ENTRY +NdrServerInitializeNew( + PRPC_MESSAGE pRpcMsg, + PMIDL_STUB_MESSAGE pStubMsg, + PMIDL_STUB_DESC pStubDescriptor + ); + +void RPC_ENTRY +NdrServerInitializePartial( + PRPC_MESSAGE pRpcMsg, + PMIDL_STUB_MESSAGE pStubMsg, + PMIDL_STUB_DESC pStubDescriptor, + unsigned long RequestedBufferSize + ); + +void RPC_ENTRY +NdrClientInitialize( + PRPC_MESSAGE pRpcMsg, + PMIDL_STUB_MESSAGE pStubMsg, + PMIDL_STUB_DESC pStubDescriptor, + unsigned int ProcNum + ); + +unsigned char __RPC_FAR * RPC_ENTRY +NdrServerInitialize( + PRPC_MESSAGE pRpcMsg, + PMIDL_STUB_MESSAGE pStubMsg, + PMIDL_STUB_DESC pStubDescriptor + ); + +unsigned char __RPC_FAR * RPC_ENTRY +NdrServerInitializeUnmarshall ( + PMIDL_STUB_MESSAGE pStubMsg, + PMIDL_STUB_DESC pStubDescriptor, + PRPC_MESSAGE pRpcMsg + ); + +void RPC_ENTRY +NdrServerInitializeMarshall ( + PRPC_MESSAGE pRpcMsg, + PMIDL_STUB_MESSAGE pStubMsg + ); + +unsigned char __RPC_FAR * RPC_ENTRY +NdrGetBuffer( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned long BufferLength, + RPC_BINDING_HANDLE Handle + ); + +unsigned char __RPC_FAR * RPC_ENTRY +NdrNsGetBuffer( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned long BufferLength, + RPC_BINDING_HANDLE Handle + ); + +unsigned char __RPC_FAR * RPC_ENTRY +NdrGetPipeBuffer( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned long BufferLength, + RPC_BINDING_HANDLE Handle ); + +void RPC_ENTRY +NdrGetPartialBuffer( + PMIDL_STUB_MESSAGE pStubMsg ); + +unsigned char __RPC_FAR * RPC_ENTRY +NdrSendReceive( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR* pBufferEnd + ); + +unsigned char __RPC_FAR * RPC_ENTRY +NdrNsSendReceive( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR * pBufferEnd, + RPC_BINDING_HANDLE __RPC_FAR * pAutoHandle + ); + +void RPC_ENTRY +NdrPipeSendReceive( + PMIDL_STUB_MESSAGE pStubMsg, + NDR_PIPE_DESC * pPipeDesc + ); + +void RPC_ENTRY +NdrFreeBuffer( + PMIDL_STUB_MESSAGE pStubMsg + ); + + +/* + * Pipe specific calls + */ + +void RPC_ENTRY +NdrPipesInitialize( + PMIDL_STUB_MESSAGE pStubMsg, + PFORMAT_STRING pParamDesc, + NDR_PIPE_DESC __RPC_FAR * pPipeDesc, + NDR_PIPE_MESSAGE __RPC_FAR * pPipeMsg, + char __RPC_FAR * pStackTop, + unsigned long NumberParams ); + +void +NdrMarkNextActivePipe( + NDR_PIPE_DESC __RPC_FAR * pPipeDesc, + unsigned int DirectionMask ); + +void RPC_ENTRY +NdrPipePull( + char __RPC_FAR * pState, + void __RPC_FAR * buf, + unsigned long esize, + unsigned long __RPC_FAR * ecount ); + +void RPC_ENTRY +NdrPipePush( + char __RPC_FAR * pState, + void __RPC_FAR * buf, + unsigned long ecount ); + +void RPC_ENTRY +NdrIsAppDoneWithPipes( + NDR_PIPE_DESC * pPipeDesc + ); + +void RPC_ENTRY +NdrPipesDone( + PMIDL_STUB_MESSAGE pStubMsg + ); + + +/* + * Interpeter calls. + */ + +/* client */ + +CLIENT_CALL_RETURN RPC_VAR_ENTRY +NdrClientCall2( + PMIDL_STUB_DESC pStubDescriptor, + PFORMAT_STRING pFormat, + ... + ); + +CLIENT_CALL_RETURN RPC_VAR_ENTRY +NdrClientCall( + PMIDL_STUB_DESC pStubDescriptor, + PFORMAT_STRING pFormat, + ... + ); + +/* server */ +typedef enum { + STUB_UNMARSHAL, + STUB_CALL_SERVER, + STUB_MARSHAL, + STUB_CALL_SERVER_NO_HRESULT +}STUB_PHASE; + +typedef enum { + PROXY_CALCSIZE, + PROXY_GETBUFFER, + PROXY_MARSHAL, + PROXY_SENDRECEIVE, + PROXY_UNMARSHAL +}PROXY_PHASE; + +long RPC_ENTRY +NdrStubCall2( + struct IRpcStubBuffer __RPC_FAR * pThis, + struct IRpcChannelBuffer __RPC_FAR * pChannel, + PRPC_MESSAGE pRpcMsg, + unsigned long __RPC_FAR * pdwStubPhase + ); + +void RPC_ENTRY +NdrServerCall2( + PRPC_MESSAGE pRpcMsg + ); + +long RPC_ENTRY +NdrStubCall ( + struct IRpcStubBuffer __RPC_FAR * pThis, + struct IRpcChannelBuffer __RPC_FAR * pChannel, + PRPC_MESSAGE pRpcMsg, + unsigned long __RPC_FAR * pdwStubPhase + ); + +void RPC_ENTRY +NdrServerCall( + PRPC_MESSAGE pRpcMsg + ); + +int RPC_ENTRY +NdrServerUnmarshall( + struct IRpcChannelBuffer __RPC_FAR * pChannel, + PRPC_MESSAGE pRpcMsg, + PMIDL_STUB_MESSAGE pStubMsg, + PMIDL_STUB_DESC pStubDescriptor, + PFORMAT_STRING pFormat, + void __RPC_FAR * pParamList + ); + +void RPC_ENTRY +NdrServerMarshall( + struct IRpcStubBuffer __RPC_FAR * pThis, + struct IRpcChannelBuffer __RPC_FAR * pChannel, + PMIDL_STUB_MESSAGE pStubMsg, + PFORMAT_STRING pFormat + ); + +/* Comm and Fault status */ + +RPC_STATUS RPC_ENTRY +NdrMapCommAndFaultStatus( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned long __RPC_FAR * pCommStatus, + unsigned long __RPC_FAR * pFaultStatus, + RPC_STATUS Status + ); + +/* Helper routines */ + +int RPC_ENTRY +NdrSH_UPDecision( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR *__RPC_FAR * pPtrInMem, + RPC_BUFPTR pBuffer + ); + +int RPC_ENTRY +NdrSH_TLUPDecision( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR *__RPC_FAR * pPtrInMem + ); + +int RPC_ENTRY +NdrSH_TLUPDecisionBuffer( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR *__RPC_FAR * pPtrInMem + ); + +int RPC_ENTRY +NdrSH_IfAlloc( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR *__RPC_FAR * pPtrInMem, + unsigned long Count + ); + +int RPC_ENTRY +NdrSH_IfAllocRef( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR *__RPC_FAR * pPtrInMem, + unsigned long Count + ); + +int RPC_ENTRY +NdrSH_IfAllocSet( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR *__RPC_FAR * pPtrInMem, + unsigned long Count + ); + +RPC_BUFPTR RPC_ENTRY +NdrSH_IfCopy( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR *__RPC_FAR * pPtrInMem, + unsigned long Count + ); + +RPC_BUFPTR RPC_ENTRY +NdrSH_IfAllocCopy( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char __RPC_FAR *__RPC_FAR * pPtrInMem, + unsigned long Count + ); + +unsigned long RPC_ENTRY +NdrSH_Copy( + unsigned char __RPC_FAR * pStubMsg, + unsigned char __RPC_FAR * pPtrInMem, + unsigned long Count + ); + +void RPC_ENTRY +NdrSH_IfFree( + PMIDL_STUB_MESSAGE pMessage, + unsigned char __RPC_FAR * pPtr ); + + +RPC_BUFPTR RPC_ENTRY +NdrSH_StringMarshall( + PMIDL_STUB_MESSAGE pMessage, + unsigned char __RPC_FAR * pMemory, + unsigned long Count, + int Size ); + +RPC_BUFPTR RPC_ENTRY +NdrSH_StringUnMarshall( + PMIDL_STUB_MESSAGE pMessage, + unsigned char __RPC_FAR *__RPC_FAR * pMemory, + int Size ); + +/**************************************************************************** + MIDL 2.0 memory package: rpc_ss_* rpc_sm_* + ****************************************************************************/ + +typedef void __RPC_FAR * RPC_SS_THREAD_HANDLE; + +typedef void __RPC_FAR * __RPC_API +RPC_CLIENT_ALLOC ( + IN size_t Size + ); + +typedef void __RPC_API +RPC_CLIENT_FREE ( + IN void __RPC_FAR * Ptr + ); + +/*++ + RpcSs* package +--*/ + +void __RPC_FAR * RPC_ENTRY +RpcSsAllocate ( + IN size_t Size + ); + +void RPC_ENTRY +RpcSsDisableAllocate ( + void + ); + +void RPC_ENTRY +RpcSsEnableAllocate ( + void + ); + +void RPC_ENTRY +RpcSsFree ( + IN void __RPC_FAR * NodeToFree + ); + +RPC_SS_THREAD_HANDLE RPC_ENTRY +RpcSsGetThreadHandle ( + void + ); + +void RPC_ENTRY +RpcSsSetClientAllocFree ( + IN RPC_CLIENT_ALLOC __RPC_FAR * ClientAlloc, + IN RPC_CLIENT_FREE __RPC_FAR * ClientFree + ); + +void RPC_ENTRY +RpcSsSetThreadHandle ( + IN RPC_SS_THREAD_HANDLE Id + ); + +void RPC_ENTRY +RpcSsSwapClientAllocFree ( + IN RPC_CLIENT_ALLOC __RPC_FAR * ClientAlloc, + IN RPC_CLIENT_FREE __RPC_FAR * ClientFree, + OUT RPC_CLIENT_ALLOC __RPC_FAR * __RPC_FAR * OldClientAlloc, + OUT RPC_CLIENT_FREE __RPC_FAR * __RPC_FAR * OldClientFree + ); + +/*++ + RpcSm* package +--*/ + +void __RPC_FAR * RPC_ENTRY +RpcSmAllocate ( + IN size_t Size, + OUT RPC_STATUS __RPC_FAR * pStatus + ); + +RPC_STATUS RPC_ENTRY +RpcSmClientFree ( + IN void __RPC_FAR * pNodeToFree + ); + +RPC_STATUS RPC_ENTRY +RpcSmDestroyClientContext ( + IN void __RPC_FAR * __RPC_FAR * ContextHandle + ); + +RPC_STATUS RPC_ENTRY +RpcSmDisableAllocate ( + void + ); + +RPC_STATUS RPC_ENTRY +RpcSmEnableAllocate ( + void + ); + +RPC_STATUS RPC_ENTRY +RpcSmFree ( + IN void __RPC_FAR * NodeToFree + ); + +RPC_SS_THREAD_HANDLE RPC_ENTRY +RpcSmGetThreadHandle ( + OUT RPC_STATUS __RPC_FAR * pStatus + ); + +RPC_STATUS RPC_ENTRY +RpcSmSetClientAllocFree ( + IN RPC_CLIENT_ALLOC __RPC_FAR * ClientAlloc, + IN RPC_CLIENT_FREE __RPC_FAR * ClientFree + ); + +RPC_STATUS RPC_ENTRY +RpcSmSetThreadHandle ( + IN RPC_SS_THREAD_HANDLE Id + ); + +RPC_STATUS RPC_ENTRY +RpcSmSwapClientAllocFree ( + IN RPC_CLIENT_ALLOC __RPC_FAR * ClientAlloc, + IN RPC_CLIENT_FREE __RPC_FAR * ClientFree, + OUT RPC_CLIENT_ALLOC __RPC_FAR * __RPC_FAR * OldClientAlloc, + OUT RPC_CLIENT_FREE __RPC_FAR * __RPC_FAR * OldClientFree + ); + +/*++ + Ndr stub entry points +--*/ + +void RPC_ENTRY +NdrRpcSsEnableAllocate( + PMIDL_STUB_MESSAGE pMessage ); + +void RPC_ENTRY +NdrRpcSsDisableAllocate( + PMIDL_STUB_MESSAGE pMessage ); + +void RPC_ENTRY +NdrRpcSmSetClientToOsf( + PMIDL_STUB_MESSAGE pMessage ); + +void __RPC_FAR * RPC_ENTRY +NdrRpcSmClientAllocate ( + IN size_t Size + ); + +void RPC_ENTRY +NdrRpcSmClientFree ( + IN void __RPC_FAR * NodeToFree + ); + +void __RPC_FAR * RPC_ENTRY +NdrRpcSsDefaultAllocate ( + IN size_t Size + ); + +void RPC_ENTRY +NdrRpcSsDefaultFree ( + IN void __RPC_FAR * NodeToFree + ); + +/**************************************************************************** + end of memory package: rpc_ss_* rpc_sm_* + ****************************************************************************/ + +/**************************************************************************** + * Full Pointer APIs + ****************************************************************************/ + +PFULL_PTR_XLAT_TABLES RPC_ENTRY +NdrFullPointerXlatInit( + unsigned long NumberOfPointers, + XLAT_SIDE XlatSide + ); + +void RPC_ENTRY +NdrFullPointerXlatFree( + PFULL_PTR_XLAT_TABLES pXlatTables + ); + +int RPC_ENTRY +NdrFullPointerQueryPointer( + PFULL_PTR_XLAT_TABLES pXlatTables, + void __RPC_FAR * pPointer, + unsigned char QueryType, + unsigned long __RPC_FAR * pRefId + ); + +int RPC_ENTRY +NdrFullPointerQueryRefId( + PFULL_PTR_XLAT_TABLES pXlatTables, + unsigned long RefId, + unsigned char QueryType, + void __RPC_FAR *__RPC_FAR * ppPointer + ); + +void RPC_ENTRY +NdrFullPointerInsertRefId( + PFULL_PTR_XLAT_TABLES pXlatTables, + unsigned long RefId, + void __RPC_FAR * pPointer + ); + +int RPC_ENTRY +NdrFullPointerFree( + PFULL_PTR_XLAT_TABLES pXlatTables, + void __RPC_FAR * Pointer + ); + +void __RPC_FAR * RPC_ENTRY +NdrAllocate( + PMIDL_STUB_MESSAGE pStubMsg, + size_t Len + ); + +void RPC_ENTRY +NdrClearOutParameters( + PMIDL_STUB_MESSAGE pStubMsg, + PFORMAT_STRING pFormat, + void __RPC_FAR * ArgAddr + ); + + +/**************************************************************************** + * Proxy APIs + ****************************************************************************/ + +void __RPC_FAR * RPC_ENTRY +NdrOleAllocate ( + IN size_t Size + ); + +void RPC_ENTRY +NdrOleFree ( + IN void __RPC_FAR * NodeToFree + ); + +#ifdef CONST_VTABLE +#define CONST_VTBL const +#else +#define CONST_VTBL +#endif + + + + +#ifdef __cplusplus +} +#endif + +// Reset the packing level for DOS, Windows and Mac. + +#if defined(__RPC_DOS__) || defined(__RPC_WIN16__) || defined(__RPC_MAC__) +#pragma pack() +#endif + +#endif /* __RPCNDR_H__ */ + + + + + diff --git a/public/sdk/rpc16/win/inc/rpcnsi.h b/public/sdk/rpc16/win/inc/rpcnsi.h new file mode 100644 index 000000000..362b5bdb4 --- /dev/null +++ b/public/sdk/rpc16/win/inc/rpcnsi.h @@ -0,0 +1,509 @@ +/*++ + +Copyright (c) 1992-1996 Microsoft Corporation + +Module Name: + + rpcnsi.h + +Abstract: + + This file contains the types and function definitions to use the + Name Service Independent APIs. + +--*/ + +#ifndef __RPCNSI_H__ +#define __RPCNSI_H__ + +typedef void __RPC_FAR * RPC_NS_HANDLE; + +#define RPC_C_NS_SYNTAX_DEFAULT 0 +#define RPC_C_NS_SYNTAX_DCE 3 + +#define RPC_C_PROFILE_DEFAULT_ELT 0 +#define RPC_C_PROFILE_ALL_ELT 1 +#define RPC_C_PROFILE_MATCH_BY_IF 2 +#define RPC_C_PROFILE_MATCH_BY_MBR 3 +#define RPC_C_PROFILE_MATCH_BY_BOTH 4 + +#define RPC_C_NS_DEFAULT_EXP_AGE -1 + +/* Server APIs */ + +RPC_STATUS RPC_ENTRY +RpcNsBindingExportA( + IN unsigned long EntryNameSyntax OPTIONAL, + IN unsigned char __RPC_FAR * EntryName, + IN RPC_IF_HANDLE IfSpec OPTIONAL, + IN RPC_BINDING_VECTOR __RPC_FAR * BindingVec OPTIONAL, + IN UUID_VECTOR __RPC_FAR * ObjectUuidVec OPTIONAL + ); + + +RPC_STATUS RPC_ENTRY +RpcNsBindingUnexportA( + IN unsigned long EntryNameSyntax OPTIONAL, + IN unsigned char __RPC_FAR * EntryName, + IN RPC_IF_HANDLE IfSpec OPTIONAL, + IN UUID_VECTOR __RPC_FAR * ObjectUuidVec OPTIONAL + ); + +#ifdef RPC_UNICODE_SUPPORTED + +RPC_STATUS RPC_ENTRY +RpcNsBindingExportW( + IN unsigned long EntryNameSyntax OPTIONAL, + IN unsigned short __RPC_FAR * EntryName, + IN RPC_IF_HANDLE IfSpec OPTIONAL, + IN RPC_BINDING_VECTOR __RPC_FAR * BindingVec OPTIONAL, + IN UUID_VECTOR __RPC_FAR * ObjectUuidVec OPTIONAL + ); + +RPC_STATUS RPC_ENTRY +RpcNsBindingUnexportW( + IN unsigned long EntryNameSyntax OPTIONAL, + IN unsigned short __RPC_FAR * EntryName, + IN RPC_IF_HANDLE IfSpec OPTIONAL, + IN UUID_VECTOR __RPC_FAR * ObjectUuidVec OPTIONAL + ); + +#endif + +/* Client APIs */ + +RPC_STATUS RPC_ENTRY +RpcNsBindingLookupBeginA( + IN unsigned long EntryNameSyntax OPTIONAL, + IN unsigned char __RPC_FAR * EntryName OPTIONAL, + IN RPC_IF_HANDLE IfSpec OPTIONAL, + IN UUID __RPC_FAR * ObjUuid OPTIONAL, + IN unsigned long BindingMaxCount OPTIONAL, + OUT RPC_NS_HANDLE __RPC_FAR * LookupContext + ); + +#ifdef RPC_UNICODE_SUPPORTED + +RPC_STATUS RPC_ENTRY +RpcNsBindingLookupBeginW( + IN unsigned long EntryNameSyntax OPTIONAL, + IN unsigned short __RPC_FAR * EntryName OPTIONAL, + IN RPC_IF_HANDLE IfSpec OPTIONAL, + IN UUID __RPC_FAR * ObjUuid OPTIONAL, + IN unsigned long BindingMaxCount OPTIONAL, + OUT RPC_NS_HANDLE __RPC_FAR * LookupContext + ); +#endif + +RPC_STATUS RPC_ENTRY +RpcNsBindingLookupNext( + IN RPC_NS_HANDLE LookupContext, + OUT RPC_BINDING_VECTOR __RPC_FAR * __RPC_FAR * BindingVec + ); + +RPC_STATUS RPC_ENTRY +RpcNsBindingLookupDone( + IN OUT RPC_NS_HANDLE __RPC_FAR * LookupContext + ); + +/* Group APIs */ + +RPC_STATUS RPC_ENTRY +RpcNsGroupDeleteA( + IN unsigned long GroupNameSyntax OPTIONAL, + IN unsigned char __RPC_FAR * GroupName + ); + +RPC_STATUS RPC_ENTRY +RpcNsGroupMbrAddA( + IN unsigned long GroupNameSyntax OPTIONAL, + IN unsigned char __RPC_FAR * GroupName, + IN unsigned long MemberNameSyntax OPTIONAL, + IN unsigned char __RPC_FAR * MemberName + ); + +RPC_STATUS RPC_ENTRY +RpcNsGroupMbrRemoveA( + IN unsigned long GroupNameSyntax OPTIONAL, + IN unsigned char __RPC_FAR * GroupName, + IN unsigned long MemberNameSyntax OPTIONAL, + IN unsigned char __RPC_FAR * MemberName + ); + +RPC_STATUS RPC_ENTRY +RpcNsGroupMbrInqBeginA( + IN unsigned long GroupNameSyntax OPTIONAL, + IN unsigned char __RPC_FAR * GroupName, + IN unsigned long MemberNameSyntax OPTIONAL, + OUT RPC_NS_HANDLE __RPC_FAR * InquiryContext + ); + +RPC_STATUS RPC_ENTRY +RpcNsGroupMbrInqNextA( + IN RPC_NS_HANDLE InquiryContext, + OUT unsigned char __RPC_FAR * __RPC_FAR * MemberName + ); + +#ifdef RPC_UNICODE_SUPPORTED + +RPC_STATUS RPC_ENTRY +RpcNsGroupDeleteW( + IN unsigned long GroupNameSyntax OPTIONAL, + IN unsigned short __RPC_FAR * GroupName + ); + +RPC_STATUS RPC_ENTRY +RpcNsGroupMbrAddW( + IN unsigned long GroupNameSyntax OPTIONAL, + IN unsigned short __RPC_FAR * GroupName, + IN unsigned long MemberNameSyntax OPTIONAL, + IN unsigned short __RPC_FAR * MemberName + ); + +RPC_STATUS RPC_ENTRY +RpcNsGroupMbrRemoveW( + IN unsigned long GroupNameSyntax OPTIONAL, + IN unsigned short __RPC_FAR * GroupName, + IN unsigned long MemberNameSyntax OPTIONAL, + IN unsigned short __RPC_FAR * MemberName + ); + +RPC_STATUS RPC_ENTRY +RpcNsGroupMbrInqBeginW( + IN unsigned long GroupNameSyntax OPTIONAL, + IN unsigned short __RPC_FAR * GroupName, + IN unsigned long MemberNameSyntax OPTIONAL, + OUT RPC_NS_HANDLE __RPC_FAR * InquiryContext + ); + +RPC_STATUS RPC_ENTRY +RpcNsGroupMbrInqNextW( + IN RPC_NS_HANDLE InquiryContext, + OUT unsigned short __RPC_FAR * __RPC_FAR * MemberName + ); + +#endif + +RPC_STATUS RPC_ENTRY +RpcNsGroupMbrInqDone( + IN OUT RPC_NS_HANDLE __RPC_FAR * InquiryContext + ); + +/* Profile APIs */ + +RPC_STATUS RPC_ENTRY +RpcNsProfileDeleteA( + IN unsigned long ProfileNameSyntax OPTIONAL, + IN unsigned char __RPC_FAR * ProfileName + ); + +RPC_STATUS RPC_ENTRY +RpcNsProfileEltAddA( + IN unsigned long ProfileNameSyntax OPTIONAL, + IN unsigned char __RPC_FAR * ProfileName, + IN RPC_IF_ID __RPC_FAR * IfId OPTIONAL, + IN unsigned long MemberNameSyntax OPTIONAL, + IN unsigned char __RPC_FAR * MemberName, + IN unsigned long Priority, + IN unsigned char __RPC_FAR * Annotation OPTIONAL + ); + +RPC_STATUS RPC_ENTRY +RpcNsProfileEltRemoveA( + IN unsigned long ProfileNameSyntax OPTIONAL, + IN unsigned char __RPC_FAR * ProfileName, + IN RPC_IF_ID __RPC_FAR * IfId OPTIONAL, + IN unsigned long MemberNameSyntax OPTIONAL, + IN unsigned char __RPC_FAR * MemberName + ); + +RPC_STATUS RPC_ENTRY +RpcNsProfileEltInqBeginA( + IN unsigned long ProfileNameSyntax OPTIONAL, + IN unsigned char __RPC_FAR * ProfileName, + IN unsigned long InquiryType, + IN RPC_IF_ID __RPC_FAR * IfId OPTIONAL, + IN unsigned long VersOption, + IN unsigned long MemberNameSyntax OPTIONAL, + IN unsigned char __RPC_FAR * MemberName OPTIONAL, + OUT RPC_NS_HANDLE __RPC_FAR * InquiryContext + ); + +RPC_STATUS RPC_ENTRY +RpcNsProfileEltInqNextA( + IN RPC_NS_HANDLE InquiryContext, + OUT RPC_IF_ID __RPC_FAR * IfId, + OUT unsigned char __RPC_FAR * __RPC_FAR * MemberName, + OUT unsigned long __RPC_FAR * Priority, + OUT unsigned char __RPC_FAR * __RPC_FAR * Annotation + ); + +#ifdef RPC_UNICODE_SUPPORTED + +RPC_STATUS RPC_ENTRY +RpcNsProfileDeleteW( + IN unsigned long ProfileNameSyntax OPTIONAL, + IN unsigned short __RPC_FAR * ProfileName + ); + +RPC_STATUS RPC_ENTRY +RpcNsProfileEltAddW( + IN unsigned long ProfileNameSyntax OPTIONAL, + IN unsigned short __RPC_FAR * ProfileName, + IN RPC_IF_ID __RPC_FAR * IfId OPTIONAL, + IN unsigned long MemberNameSyntax OPTIONAL, + IN unsigned short __RPC_FAR * MemberName, + IN unsigned long Priority, + IN unsigned short __RPC_FAR * Annotation OPTIONAL + ); + +RPC_STATUS RPC_ENTRY +RpcNsProfileEltRemoveW( + IN unsigned long ProfileNameSyntax OPTIONAL, + IN unsigned short __RPC_FAR * ProfileName, + IN RPC_IF_ID __RPC_FAR * IfId OPTIONAL, + IN unsigned long MemberNameSyntax OPTIONAL, + IN unsigned short __RPC_FAR * MemberName + ); + +RPC_STATUS RPC_ENTRY +RpcNsProfileEltInqBeginW( + IN unsigned long ProfileNameSyntax OPTIONAL, + IN unsigned short __RPC_FAR * ProfileName, + IN unsigned long InquiryType, + IN RPC_IF_ID __RPC_FAR * IfId OPTIONAL, + IN unsigned long VersOption, + IN unsigned long MemberNameSyntax OPTIONAL, + IN unsigned short __RPC_FAR * MemberName OPTIONAL, + OUT RPC_NS_HANDLE __RPC_FAR * InquiryContext + ); + +RPC_STATUS RPC_ENTRY +RpcNsProfileEltInqNextW( + IN RPC_NS_HANDLE InquiryContext, + OUT RPC_IF_ID __RPC_FAR * IfId, + OUT unsigned short __RPC_FAR * __RPC_FAR * MemberName, + OUT unsigned long __RPC_FAR * Priority, + OUT unsigned short __RPC_FAR * __RPC_FAR * Annotation + ); + +#endif + +RPC_STATUS RPC_ENTRY +RpcNsProfileEltInqDone( + IN OUT RPC_NS_HANDLE __RPC_FAR * InquiryContext + ); + +/* Entry object APIs */ + +RPC_STATUS RPC_ENTRY +RpcNsEntryObjectInqBeginA( + IN unsigned long EntryNameSyntax OPTIONAL, + IN unsigned char __RPC_FAR * EntryName, + OUT RPC_NS_HANDLE __RPC_FAR * InquiryContext + ); + +#ifdef RPC_UNICODE_SUPPORTED + +RPC_STATUS RPC_ENTRY +RpcNsEntryObjectInqBeginW( + IN unsigned long EntryNameSyntax OPTIONAL, + IN unsigned short __RPC_FAR * EntryName, + OUT RPC_NS_HANDLE __RPC_FAR * InquiryContext + ); + +#endif + +RPC_STATUS RPC_ENTRY +RpcNsEntryObjectInqNext( + IN RPC_NS_HANDLE InquiryContext, + OUT UUID __RPC_FAR * ObjUuid + ); + +RPC_STATUS RPC_ENTRY +RpcNsEntryObjectInqDone( + IN OUT RPC_NS_HANDLE __RPC_FAR * InquiryContext + ); + +/* Management and MISC APIs */ + +RPC_STATUS RPC_ENTRY +RpcNsEntryExpandNameA( + IN unsigned long EntryNameSyntax OPTIONAL, + IN unsigned char __RPC_FAR * EntryName, + OUT unsigned char __RPC_FAR * __RPC_FAR * ExpandedName + ); + +RPC_STATUS RPC_ENTRY +RpcNsMgmtBindingUnexportA( + IN unsigned long EntryNameSyntax OPTIONAL, + IN unsigned char __RPC_FAR * EntryName, + IN RPC_IF_ID __RPC_FAR * IfId OPTIONAL, + IN unsigned long VersOption, + IN UUID_VECTOR __RPC_FAR * ObjectUuidVec OPTIONAL + ); + +RPC_STATUS RPC_ENTRY +RpcNsMgmtEntryCreateA( + IN unsigned long EntryNameSyntax OPTIONAL, + IN unsigned char __RPC_FAR * EntryName + ); + +RPC_STATUS RPC_ENTRY +RpcNsMgmtEntryDeleteA( + IN unsigned long EntryNameSyntax OPTIONAL, + IN unsigned char __RPC_FAR * EntryName + ); + +RPC_STATUS RPC_ENTRY +RpcNsMgmtEntryInqIfIdsA( + IN unsigned long EntryNameSyntax OPTIONAL, + IN unsigned char __RPC_FAR * EntryName, + OUT RPC_IF_ID_VECTOR __RPC_FAR * __RPC_FAR * IfIdVec + ); + +RPC_STATUS RPC_ENTRY +RpcNsMgmtHandleSetExpAge( + IN RPC_NS_HANDLE NsHandle, + IN unsigned long ExpirationAge + ); + +RPC_STATUS RPC_ENTRY +RpcNsMgmtInqExpAge( + OUT unsigned long __RPC_FAR * ExpirationAge + ); + +RPC_STATUS RPC_ENTRY +RpcNsMgmtSetExpAge( + IN unsigned long ExpirationAge + ); + +#ifdef RPC_UNICODE_SUPPORTED + +RPC_STATUS RPC_ENTRY +RpcNsEntryExpandNameW( + IN unsigned long EntryNameSyntax OPTIONAL, + IN unsigned short __RPC_FAR * EntryName, + OUT unsigned short __RPC_FAR * __RPC_FAR * ExpandedName + ); + +RPC_STATUS RPC_ENTRY +RpcNsMgmtBindingUnexportW( + IN unsigned long EntryNameSyntax OPTIONAL, + IN unsigned short __RPC_FAR * EntryName, + IN RPC_IF_ID __RPC_FAR * IfId OPTIONAL, + IN unsigned long VersOption, + IN UUID_VECTOR __RPC_FAR * ObjectUuidVec OPTIONAL + ); + +RPC_STATUS RPC_ENTRY +RpcNsMgmtEntryCreateW( + IN unsigned long EntryNameSyntax OPTIONAL, + IN unsigned short __RPC_FAR * EntryName + ); + +RPC_STATUS RPC_ENTRY +RpcNsMgmtEntryDeleteW( + IN unsigned long EntryNameSyntax OPTIONAL, + IN unsigned short __RPC_FAR * EntryName + ); + +RPC_STATUS RPC_ENTRY +RpcNsMgmtEntryInqIfIdsW( + IN unsigned long EntryNameSyntax OPTIONAL, + IN unsigned short __RPC_FAR * EntryName, + OUT RPC_IF_ID_VECTOR __RPC_FAR * __RPC_FAR * IfIdVec + ); + +#endif + +/* Client API's implemented in wrappers. */ + +RPC_STATUS RPC_ENTRY +RpcNsBindingImportBeginA( + IN unsigned long EntryNameSyntax OPTIONAL, + IN unsigned char __RPC_FAR * EntryName OPTIONAL, + IN RPC_IF_HANDLE IfSpec OPTIONAL, + IN UUID __RPC_FAR * ObjUuid OPTIONAL, + OUT RPC_NS_HANDLE __RPC_FAR * ImportContext + ); + +#ifdef RPC_UNICODE_SUPPORTED + +RPC_STATUS RPC_ENTRY +RpcNsBindingImportBeginW( + IN unsigned long EntryNameSyntax OPTIONAL, + IN unsigned short __RPC_FAR * EntryName OPTIONAL, + IN RPC_IF_HANDLE IfSpec OPTIONAL, + IN UUID __RPC_FAR * ObjUuid OPTIONAL, + OUT RPC_NS_HANDLE __RPC_FAR * ImportContext + ); + +#endif + +RPC_STATUS RPC_ENTRY +RpcNsBindingImportNext( + IN RPC_NS_HANDLE ImportContext, + OUT RPC_BINDING_HANDLE __RPC_FAR * Binding + ); + +RPC_STATUS RPC_ENTRY +RpcNsBindingImportDone( + IN OUT RPC_NS_HANDLE __RPC_FAR * ImportContext + ); + +RPC_STATUS RPC_ENTRY +RpcNsBindingSelect( + IN OUT RPC_BINDING_VECTOR __RPC_FAR * BindingVec, + OUT RPC_BINDING_HANDLE __RPC_FAR * Binding + ); + +#ifdef UNICODE + +#define RpcNsBindingLookupBegin RpcNsBindingLookupBeginW +#define RpcNsBindingImportBegin RpcNsBindingImportBeginW +#define RpcNsBindingExport RpcNsBindingExportW +#define RpcNsBindingUnexport RpcNsBindingUnexportW +#define RpcNsGroupDelete RpcNsGroupDeleteW +#define RpcNsGroupMbrAdd RpcNsGroupMbrAddW +#define RpcNsGroupMbrRemove RpcNsGroupMbrRemoveW +#define RpcNsGroupMbrInqBegin RpcNsGroupMbrInqBeginW +#define RpcNsGroupMbrInqNext RpcNsGroupMbrInqNextW +#define RpcNsEntryExpandName RpcNsEntryExpandNameW +#define RpcNsEntryObjectInqBegin RpcNsEntryObjectInqBeginW +#define RpcNsMgmtBindingUnexport RpcNsMgmtBindingUnexportW +#define RpcNsMgmtEntryCreate RpcNsMgmtEntryCreateW +#define RpcNsMgmtEntryDelete RpcNsMgmtEntryDeleteW +#define RpcNsMgmtEntryInqIfIds RpcNsMgmtEntryInqIfIdsW +#define RpcNsProfileDelete RpcNsProfileDeleteW +#define RpcNsProfileEltAdd RpcNsProfileEltAddW +#define RpcNsProfileEltRemove RpcNsProfileEltRemoveW +#define RpcNsProfileEltInqBegin RpcNsProfileEltInqBeginW +#define RpcNsProfileEltInqNext RpcNsProfileEltInqNextW + +#else + +#define RpcNsBindingLookupBegin RpcNsBindingLookupBeginA +#define RpcNsBindingImportBegin RpcNsBindingImportBeginA +#define RpcNsBindingExport RpcNsBindingExportA +#define RpcNsBindingUnexport RpcNsBindingUnexportA +#define RpcNsGroupDelete RpcNsGroupDeleteA +#define RpcNsGroupMbrAdd RpcNsGroupMbrAddA +#define RpcNsGroupMbrRemove RpcNsGroupMbrRemoveA +#define RpcNsGroupMbrInqBegin RpcNsGroupMbrInqBeginA +#define RpcNsGroupMbrInqNext RpcNsGroupMbrInqNextA +#define RpcNsEntryExpandName RpcNsEntryExpandNameA +#define RpcNsEntryObjectInqBegin RpcNsEntryObjectInqBeginA +#define RpcNsMgmtBindingUnexport RpcNsMgmtBindingUnexportA +#define RpcNsMgmtEntryCreate RpcNsMgmtEntryCreateA +#define RpcNsMgmtEntryDelete RpcNsMgmtEntryDeleteA +#define RpcNsMgmtEntryInqIfIds RpcNsMgmtEntryInqIfIdsA +#define RpcNsProfileDelete RpcNsProfileDeleteA +#define RpcNsProfileEltAdd RpcNsProfileEltAddA +#define RpcNsProfileEltRemove RpcNsProfileEltRemoveA +#define RpcNsProfileEltInqBegin RpcNsProfileEltInqBeginA +#define RpcNsProfileEltInqNext RpcNsProfileEltInqNextA + +#endif /* UNICODE */ + +#endif /* __RPCNSI_H__ */ diff --git a/public/sdk/rpc16/win/inc/rpcnsip.h b/public/sdk/rpc16/win/inc/rpcnsip.h new file mode 100644 index 000000000..0db0140b0 --- /dev/null +++ b/public/sdk/rpc16/win/inc/rpcnsip.h @@ -0,0 +1,72 @@ +/*++ + +Copyright (c) 1992-1996 Microsoft Corporation + +Module Name: + + rpcnsip.h + +Abstract: + + This file contains the types and function definitions to use the + to implement the autohandle features of the runtime. + +--*/ + +#ifndef __RPCNSIP_H__ +#define __RPCNSIP_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct +{ + RPC_NS_HANDLE LookupContext; + RPC_BINDING_HANDLE ProposedHandle; + RPC_BINDING_VECTOR * Bindings; + +} RPC_IMPORT_CONTEXT_P, * PRPC_IMPORT_CONTEXT_P; + + +/* Stub Auto Binding routines. */ + +RPC_STATUS RPC_ENTRY +I_RpcNsGetBuffer( + IN PRPC_MESSAGE Message + ); + +RPC_STATUS RPC_ENTRY +I_RpcNsSendReceive( + IN PRPC_MESSAGE Message, + OUT RPC_BINDING_HANDLE __RPC_FAR * Handle + ); + +void RPC_ENTRY +I_RpcNsRaiseException( + IN PRPC_MESSAGE Message, + IN RPC_STATUS Status + ); + +RPC_STATUS RPC_ENTRY +I_RpcReBindBuffer( + IN PRPC_MESSAGE Message + ); + +RPC_STATUS RPC_ENTRY +I_NsServerBindSearch( + ); + +RPC_STATUS RPC_ENTRY +I_NsClientBindSearch( + ); + +void RPC_ENTRY +I_NsClientBindDone( + ); + +#ifdef __cplusplus +} +#endif + +#endif /* __RPCNSIP_H__ */ diff --git a/public/sdk/rpc16/win/inc/rpcx86.h b/public/sdk/rpc16/win/inc/rpcx86.h new file mode 100644 index 000000000..8f5088c93 --- /dev/null +++ b/public/sdk/rpc16/win/inc/rpcx86.h @@ -0,0 +1,74 @@ +/*********************************************************/ +/** Microsoft LAN Manager **/ +/** Copyright(c) Microsoft Corp., 1991 **/ +/** **/ +/** Exceptions package for C for DOS/WIN/OS2 **/ +/** **/ +/*********************************************************/ + +#ifndef __RPCx86_H__ +#define __RPCx86_H__ + +typedef struct _ExceptionBuff { + int registers[RPCXCWORD]; + struct _ExceptionBuff __RPC_FAR *pExceptNext; + +} ExceptionBuff, __RPC_FAR *pExceptionBuff; + +int RPC_ENTRY RpcSetException(pExceptionBuff); +void RPC_ENTRY RpcLeaveException(void); + +#define RpcTryExcept \ + { \ + int _exception_code; \ + ExceptionBuff exception; \ + \ + _exception_code = RpcSetException(&exception); \ + \ + if (!_exception_code) \ + { + +// trystmts + +#define RpcExcept(expr) \ + RpcLeaveException(); \ + } \ + else \ + { \ + if (!(expr)) \ + RpcRaiseException(_exception_code); + +// exceptstmts + +#define RpcEndExcept \ + } \ + } + +#define RpcTryFinally \ + { \ + int _abnormal_termination; \ + ExceptionBuff exception; \ + \ + _abnormal_termination = RpcSetException(&exception); \ + \ + if (!_abnormal_termination) \ + { + +// trystmts + +#define RpcFinally \ + RpcLeaveException(); \ + } + +// finallystmts + +#define RpcEndFinally \ + if (_abnormal_termination) \ + RpcRaiseException(_abnormal_termination); \ + } + +#define RpcExceptionCode() _exception_code +#define RpcAbnormalTermination() _abnormal_termination + +#endif // __RPCx86_H__ +
\ No newline at end of file |