- Improved RPC headers.

svn path=/trunk/; revision=9170
This commit is contained in:
Filip Navara 2004-04-17 07:41:26 +00:00
parent b656708fcc
commit 61878c60d2
5 changed files with 59 additions and 3 deletions

View file

@ -17,6 +17,12 @@ extern "C" {
#define RPC_UNICODE_SUPPORTED
#endif
#ifdef _RPCRT4_
#define RPCRTAPI DECLSPEC_EXPORT
#else
#define RPCRTAPI DECLSPEC_IMPORT
#endif
#ifndef __MIDL_USER_DEFINED
#define midl_user_allocate MIDL_user_allocate
#define midl_user_free MIDL_user_free

View file

@ -345,6 +345,7 @@ RPC_STATUS RPC_ENTRY RpcServerInqIf(RPC_IF_HANDLE,UUID*,RPC_MGR_EPV**);
RPC_STATUS RPC_ENTRY RpcServerListen(unsigned int,unsigned int,unsigned int);
RPC_STATUS RPC_ENTRY RpcServerRegisterIf(RPC_IF_HANDLE,UUID*,RPC_MGR_EPV*);
RPC_STATUS RPC_ENTRY RpcServerRegisterIfEx(RPC_IF_HANDLE,UUID*,RPC_MGR_EPV*,unsigned int,unsigned int,RPC_IF_CALLBACK_FN*);
RPC_STATUS RPC_ENTRY RpcServerRegisterIf2(RPC_IF_HANDLE,UUID*,RPC_MGR_EPV*,unsigned int,unsigned int,unsigned int,RPC_IF_CALLBACK_FN*);
RPC_STATUS RPC_ENTRY RpcServerUnregisterIf(RPC_IF_HANDLE,UUID*,unsigned int);
RPC_STATUS RPC_ENTRY RpcServerUseAllProtseqs(unsigned int,void*);
RPC_STATUS RPC_ENTRY RpcServerUseAllProtseqsEx(unsigned int,void*,PRPC_POLICY);

View file

@ -60,6 +60,7 @@ typedef struct _RPC_SERVER_INTERFACE {
PRPC_PROTSEQ_ENDPOINT RpcProtseqEndpoint;
void *DefaultManagerEpv;
void const *InterpreterInfo;
unsigned int Flags;
} RPC_SERVER_INTERFACE,*PRPC_SERVER_INTERFACE;
typedef struct _RPC_CLIENT_INTERFACE {
unsigned int Length;
@ -70,6 +71,7 @@ typedef struct _RPC_CLIENT_INTERFACE {
PRPC_PROTSEQ_ENDPOINT RpcProtseqEndpoint;
unsigned long Reserved;
void const *InterpreterInfo;
unsigned int Flags;
} RPC_CLIENT_INTERFACE,*PRPC_CLIENT_INTERFACE;
typedef void *I_RPC_MUTEX;
typedef struct _RPC_TRANSFER_SYNTAX {
@ -77,10 +79,11 @@ typedef struct _RPC_TRANSFER_SYNTAX {
unsigned short VersMajor;
unsigned short VersMinor;
} RPC_TRANSFER_SYNTAX;
typedef long(__stdcall *RPC_BLOCKING_FUNCTION)(void*,void*);
typedef RPC_STATUS (*RPC_BLOCKING_FN)(void*,void*,void*);
long __stdcall I_RpcGetBuffer(RPC_MESSAGE*);
long __stdcall I_RpcSendReceive(RPC_MESSAGE*);
long __stdcall I_RpcSend(RPC_MESSAGE*);
long __stdcall I_RpcFreeBuffer(RPC_MESSAGE*);
void __stdcall I_RpcRequestMutex(I_RPC_MUTEX*);
void __stdcall I_RpcClearMutex(I_RPC_MUTEX);
@ -110,7 +113,7 @@ void __stdcall I_RpcSsDontSerializeContext(void);
long __stdcall I_RpcServerRegisterForwardFunction(RPC_FORWARD_FUNCTION*);
long __stdcall I_RpcConnectionInqSockBuffSize(unsigned long*,unsigned long*);
long __stdcall I_RpcConnectionSetSockBuffSize(unsigned long,unsigned long);
long __stdcall I_RpcBindingSetAsync(HANDLE,RPC_BLOCKING_FUNCTION);
long __stdcall I_RpcBindingSetAsync(HANDLE,RPC_BLOCKING_FN);
long __stdcall I_RpcAsyncSendReceive(RPC_MESSAGE*,void*);
long __stdcall I_RpcGetThreadWindowHandle(void**);
long __stdcall I_RpcServerThreadPauseListening(void);

View file

@ -196,7 +196,7 @@ typedef struct _MIDL_STUB_MESSAGE {
unsigned long *SizePtrLengthArray;
void*pArgQueue;
unsigned long dwStubPhase;
unsigned long Reserved[5];
unsigned long w2kReserved[5];
} MIDL_STUB_MESSAGE,*PMIDL_STUB_MESSAGE;
#pragma pack(pop)
typedef void*(__RPC_API *GENERIC_BINDING_ROUTINE)(void*);
@ -226,6 +226,37 @@ typedef struct _COMM_FAULT_OFFSETS {
short CommOffset;
short FaultOffset;
} COMM_FAULT_OFFSETS;
typedef unsigned long (__RPC_USER *USER_MARSHAL_SIZING_ROUTINE)(unsigned long *,unsigned long,void *);
typedef unsigned char *(__RPC_USER *USER_MARSHAL_MARSHALLING_ROUTINE)(unsigned long *,unsigned char *,void *);
typedef unsigned char *(__RPC_USER *USER_MARSHAL_UNMARSHALLING_ROUTINE)(unsigned long *,unsigned char *,void *);
typedef void (__RPC_USER *USER_MARSHAL_FREEING_ROUTINE)(unsigned long *,void *);
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 void (__RPC_USER *NDR_NOTIFY_ROUTINE)(void);
typedef enum _IDL_CS_CONVERT {
IDL_CS_NO_CONVERT,
IDL_CS_IN_PLACE_CONVERT,
IDL_CS_NEW_BUFFER_CONVERT
} IDL_CS_CONVERT;
typedef void (__RPC_USER *CS_TYPE_NET_SIZE_ROUTINE)(RPC_BINDING_HANDLE,unsigned long,unsigned long,IDL_CS_CONVERT*,unsigned long*,error_status_t*);
typedef void (__RPC_USER *CS_TYPE_LOCAL_SIZE_ROUTINE)(RPC_BINDING_HANDLE,unsigned long,unsigned long,IDL_CS_CONVERT*,unsigned long*,error_status_t*);
typedef void (__RPC_USER *CS_TYPE_TO_NETCS_ROUTINE)(RPC_BINDING_HANDLE,unsigned long,void*,unsigned long,byte*,unsigned long*,error_status_t*);
typedef void (__RPC_USER *CS_TYPE_FROM_NETCS_ROUTINE)(RPC_BINDING_HANDLE,unsigned long,byte*,unsigned long,unsigned long,void*,unsigned long*,error_status_t*);
typedef void (__RPC_USER *CS_TAG_GETTING_ROUTINE)(RPC_BINDING_HANDLE,int,unsigned long*,unsigned long*,unsigned long*,error_status_t*);
typedef struct _NDR_CS_SIZE_CONVERT_ROUTINES {
CS_TYPE_NET_SIZE_ROUTINE pfnNetSize;
CS_TYPE_TO_NETCS_ROUTINE pfnToNetCs;
CS_TYPE_LOCAL_SIZE_ROUTINE pfnLocalSize;
CS_TYPE_FROM_NETCS_ROUTINE pfnFromNetCs;
} NDR_CS_SIZE_CONVERT_ROUTINES;
typedef struct _NDR_CS_ROUTINES {
NDR_CS_SIZE_CONVERT_ROUTINES *pSizeConvertRoutines;
CS_TAG_GETTING_ROUTINE *pTagGettingRoutines;
} NDR_CS_ROUTINES;
typedef struct _MIDL_STUB_DESC {
void*RpcInterfaceInformation;
void*(__RPC_API *pfnAllocate)(unsigned int);
@ -245,6 +276,12 @@ typedef struct _MIDL_STUB_DESC {
MALLOC_FREE_STRUCT *pMallocFreeStruct;
long MIDLVersion;
const COMM_FAULT_OFFSETS *CommFaultOffsets;
const USER_MARSHAL_ROUTINE_QUADRUPLE *aUserMarshalQuadruple;
const NDR_NOTIFY_ROUTINE *NotifyRoutineTable;
ULONG_PTR mFlags;
const NDR_CS_ROUTINES *CsRoutineTables;
void *Reserved4;
ULONG_PTR Reserved5;
} MIDL_STUB_DESC;
typedef const MIDL_STUB_DESC *PMIDL_STUB_DESC;
typedef void*PMIDL_XMIT_TYPE;
@ -467,6 +504,11 @@ void*RPC_ENTRY NdrAllocate(PMIDL_STUB_MESSAGE,unsigned int);
void RPC_ENTRY NdrClearOutParameters(PMIDL_STUB_MESSAGE,PFORMAT_STRING,void*);
void*RPC_ENTRY NdrOleAllocate(unsigned int);
void RPC_ENTRY NdrOleFree(void*);
unsigned char*RPC_ENTRY NdrUserMarshalMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
unsigned char*RPC_ENTRY NdrUserMarshalUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
void RPC_ENTRY NdrUserMarshalBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
unsigned long RPC_ENTRY NdrUserMarshalMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
void RPC_ENTRY NdrUserMarshalFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
#ifdef __cplusplus
}
#endif

View file

@ -152,6 +152,10 @@ typedef struct tagCStdStubBuffer {
const struct IRpcStubBufferVtbl * lpVtbl;
long RefCount;
struct IUnknown *pvServerObject;
const struct ICallFactoryVtbl * pCallFactoryVtbl;
const IID * pAsyncIID;
struct IPSFactoryBuffer * pPSFactory;
const struct IReleaseMarshalBuffersVtbl * pRMBVtbl;
} CStdStubBuffer;
typedef struct tagCStdPSFactoryBuffer {
const IPSFactoryBufferVtbl *lpVtbl;