Reactos
at master 134 lines 4.5 kB view raw
1/* 2 * NDR Serialization Services 3 * 4 * Copyright (c) 2007 Robert Shearman for CodeWeavers 5 * 6 * This library is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU Lesser General Public 8 * License as published by the Free Software Foundation; either 9 * version 2.1 of the License, or (at your option) any later version. 10 * 11 * This library is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * Lesser General Public License for more details. 15 * 16 * You should have received a copy of the GNU Lesser General Public 17 * License along with this library; if not, write to the Free Software 18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 19 */ 20 21#ifndef __WINE_MIDLES_H__ 22#define __WINE_MIDLES_H__ 23 24#include <rpcndr.h> 25 26#ifdef __cplusplus 27extern "C" { 28#endif 29 30typedef enum 31{ 32 MES_ENCODE, 33 MES_DECODE, 34 MES_ENCODE_NDR64 35} MIDL_ES_CODE; 36 37typedef enum 38{ 39 MES_INCREMENTAL_HANDLE, 40 MES_FIXED_BUFFER_HANDLE, 41 MES_DYNAMIC_BUFFER_HANDLE 42} MIDL_ES_HANDLE_STYLE; 43 44typedef void (__RPC_USER * MIDL_ES_ALLOC)(void *,char **,unsigned int *); 45typedef void (__RPC_USER * MIDL_ES_WRITE)(void *,char *,unsigned int); 46typedef void (__RPC_USER * MIDL_ES_READ)(void *,char **,unsigned int *); 47 48typedef struct _MIDL_ES_MESSAGE 49{ 50 MIDL_STUB_MESSAGE StubMsg; 51 MIDL_ES_CODE Operation; 52 void *UserState; 53 ULONG MesVersion : 8; 54 ULONG HandleStyle : 8; 55 ULONG HandleFlags : 8; 56 ULONG Reserve : 8; 57 MIDL_ES_ALLOC Alloc; 58 MIDL_ES_WRITE Write; 59 MIDL_ES_READ Read; 60 unsigned char *Buffer; 61 ULONG BufferSize; 62 unsigned char **pDynBuffer; 63 ULONG *pEncodedSize; 64 RPC_SYNTAX_IDENTIFIER InterfaceId; 65 ULONG ProcNumber; 66 ULONG AlienDataRep; 67 ULONG IncrDataSize; 68 ULONG ByteCount; 69} MIDL_ES_MESSAGE, *PMIDL_ES_MESSAGE; 70 71typedef PMIDL_ES_MESSAGE MIDL_ES_HANDLE; 72 73typedef struct _MIDL_TYPE_PICKLING_INFO 74{ 75 ULONG Version; 76 ULONG Flags; 77 UINT_PTR Reserved[3]; 78} MIDL_TYPE_PICKLING_INFO, *PMIDL_TYPE_PICKLING_INFO; 79 80RPC_STATUS RPC_ENTRY 81 MesEncodeIncrementalHandleCreate(void *,MIDL_ES_ALLOC,MIDL_ES_WRITE,handle_t *); 82RPC_STATUS RPC_ENTRY 83 MesDecodeIncrementalHandleCreate(void *,MIDL_ES_READ,handle_t *); 84RPC_STATUS RPC_ENTRY 85 MesIncrementalHandleReset(handle_t,void *,MIDL_ES_ALLOC,MIDL_ES_WRITE,MIDL_ES_READ,MIDL_ES_CODE); 86 87RPC_STATUS RPC_ENTRY 88 MesEncodeFixedBufferHandleCreate(char *,ULONG,ULONG *,handle_t *); 89RPC_STATUS RPC_ENTRY 90 MesEncodeDynBufferHandleCreate(char **,ULONG *,handle_t *); 91RPC_STATUS RPC_ENTRY 92 MesDecodeBufferHandleCreate(char *,ULONG,handle_t *); 93RPC_STATUS RPC_ENTRY 94 MesBufferHandleReset(handle_t,ULONG,MIDL_ES_CODE,char **,ULONG,ULONG *); 95 96RPC_STATUS RPC_ENTRY 97 MesHandleFree(handle_t); 98 99RPC_STATUS RPC_ENTRY 100 MesInqProcEncodingId(handle_t,PRPC_SYNTAX_IDENTIFIER,ULONG *); 101 102SIZE_T RPC_ENTRY 103 NdrMesSimpleTypeAlignSize(handle_t); 104void RPC_ENTRY 105 NdrMesSimpleTypeDecode(handle_t,void *,short); 106void RPC_ENTRY 107 NdrMesSimpleTypeEncode(handle_t,const MIDL_STUB_DESC *,const void *,short); 108 109SIZE_T RPC_ENTRY 110 NdrMesTypeAlignSize(handle_t,const MIDL_STUB_DESC *,PFORMAT_STRING,const void *); 111void RPC_ENTRY 112 NdrMesTypeEncode(handle_t,const MIDL_STUB_DESC *,PFORMAT_STRING,const void *); 113void RPC_ENTRY 114 NdrMesTypeDecode(handle_t,const MIDL_STUB_DESC *,PFORMAT_STRING,void *); 115 116SIZE_T RPC_ENTRY 117 NdrMesTypeAlignSize2(handle_t,const MIDL_TYPE_PICKLING_INFO *,const MIDL_STUB_DESC *,PFORMAT_STRING,const void *); 118void RPC_ENTRY 119 NdrMesTypeEncode2(handle_t,const MIDL_TYPE_PICKLING_INFO *,const MIDL_STUB_DESC *,PFORMAT_STRING,const void *); 120void RPC_ENTRY 121 NdrMesTypeDecode2(handle_t,const MIDL_TYPE_PICKLING_INFO *,const MIDL_STUB_DESC *,PFORMAT_STRING,void *); 122void RPC_ENTRY 123 NdrMesTypeFree2(handle_t,const MIDL_TYPE_PICKLING_INFO *,const MIDL_STUB_DESC *,PFORMAT_STRING,void *); 124 125void RPC_VAR_ENTRY 126 NdrMesProcEncodeDecode(handle_t,const MIDL_STUB_DESC *,PFORMAT_STRING,...); 127CLIENT_CALL_RETURN RPC_VAR_ENTRY 128 NdrMesProcEncodeDeocde2(handle_t,const MIDL_STUB_DESC *,PFORMAT_STRING,...); 129 130#ifdef __cplusplus 131} 132#endif 133 134#endif /* __WINE_MIDLES_H__ */