2 * NDR Serialization Services
4 * Copyright (c) 2007 Robert Shearman for CodeWeavers
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.
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.
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
21 #ifndef __WINE_MIDLES_H__
22 #define __WINE_MIDLES_H__
39 MES_INCREMENTAL_HANDLE
,
40 MES_FIXED_BUFFER_HANDLE
,
41 MES_DYNAMIC_BUFFER_HANDLE
42 } MIDL_ES_HANDLE_STYLE
;
44 typedef void (__RPC_USER
* MIDL_ES_ALLOC
)(void *,char **,unsigned int *);
45 typedef void (__RPC_USER
* MIDL_ES_WRITE
)(void *,char *,unsigned int);
46 typedef void (__RPC_USER
* MIDL_ES_READ
)(void *,char **,unsigned int *);
48 typedef struct _MIDL_ES_MESSAGE
50 MIDL_STUB_MESSAGE StubMsg
;
51 MIDL_ES_CODE Operation
;
54 ULONG HandleStyle
: 8;
55 ULONG HandleFlags
: 8;
60 unsigned char *Buffer
;
62 unsigned char **pDynBuffer
;
64 RPC_SYNTAX_IDENTIFIER InterfaceId
;
69 } MIDL_ES_MESSAGE
, *PMIDL_ES_MESSAGE
;
71 typedef PMIDL_ES_MESSAGE MIDL_ES_HANDLE
;
73 typedef struct _MIDL_TYPE_PICKLING_INFO
78 } MIDL_TYPE_PICKLING_INFO
, *PMIDL_TYPE_PICKLING_INFO
;
81 MesEncodeIncrementalHandleCreate(void *,MIDL_ES_ALLOC
,MIDL_ES_WRITE
,handle_t
*);
83 MesDecodeIncrementalHandleCreate(void *,MIDL_ES_READ
,handle_t
*);
85 MesIncrementalHandleReset(handle_t
,void *,MIDL_ES_ALLOC
,MIDL_ES_WRITE
,MIDL_ES_READ
,MIDL_ES_CODE
);
88 MesEncodeFixedBufferHandleCreate(char *,ULONG
,ULONG
*,handle_t
*);
90 MesEncodeDynBufferHandleCreate(char **,ULONG
*,handle_t
*);
92 MesDecodeBufferHandleCreate(char *,ULONG
,handle_t
*);
94 MesBufferHandleReset(handle_t
,ULONG
,MIDL_ES_CODE
,char **,ULONG
,ULONG
*);
97 MesHandleFree(handle_t
);
100 MesInqProcEncodingId(handle_t
,PRPC_SYNTAX_IDENTIFIER
,ULONG
*);
103 NdrMesSimpleTypeAlignSize(handle_t
);
105 NdrMesSimpleTypeDecode(handle_t
,void *,short);
107 NdrMesSimpleTypeEncode(handle_t
,const MIDL_STUB_DESC
*,const void *,short);
110 NdrMesTypeAlignSize(handle_t
,const MIDL_STUB_DESC
*,PFORMAT_STRING
,const void *);
112 NdrMesTypeEncode(handle_t
,const MIDL_STUB_DESC
*,PFORMAT_STRING
,const void *);
114 NdrMesTypeDecode(handle_t
,const MIDL_STUB_DESC
*,PFORMAT_STRING
,void *);
117 NdrMesTypeAlignSize2(handle_t
,const MIDL_TYPE_PICKLING_INFO
*,const MIDL_STUB_DESC
*,PFORMAT_STRING
,const void *);
119 NdrMesTypeEncode2(handle_t
,const MIDL_TYPE_PICKLING_INFO
*,const MIDL_STUB_DESC
*,PFORMAT_STRING
,const void *);
121 NdrMesTypeDecode2(handle_t
,const MIDL_TYPE_PICKLING_INFO
*,const MIDL_STUB_DESC
*,PFORMAT_STRING
,void *);
123 NdrMesTypeFree2(handle_t
,const MIDL_TYPE_PICKLING_INFO
*,const MIDL_STUB_DESC
*,PFORMAT_STRING
,void *);
126 NdrMesProcEncodeDecode(handle_t
,const MIDL_STUB_DESC
*,PFORMAT_STRING
,...);
127 CLIENT_CALL_RETURN RPC_VAR_ENTRY
128 NdrMesProcEncodeDeocde2(handle_t
,const MIDL_STUB_DESC
*,PFORMAT_STRING
,...);
134 #endif /* __WINE_MIDLES_H__ */