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__
38 MES_INCREMENTAL_HANDLE
,
39 MES_FIXED_BUFFER_HANDLE
,
40 MES_DYNAMIC_BUFFER_HANDLE
41 } MIDL_ES_HANDLE_STYLE
;
43 typedef void (__RPC_USER
* MIDL_ES_ALLOC
)(void *,char **,unsigned int *);
44 typedef void (__RPC_USER
* MIDL_ES_WRITE
)(void *,char *,unsigned int);
45 typedef void (__RPC_USER
* MIDL_ES_READ
)(void *,char **,unsigned int *);
47 typedef struct _MIDL_ES_MESSAGE
49 MIDL_STUB_MESSAGE StubMsg
;
50 MIDL_ES_CODE Operation
;
53 ULONG HandleStyle
: 8;
54 ULONG HandleFlags
: 8;
59 unsigned char *Buffer
;
61 unsigned char **pDynBuffer
;
62 unsigned char *pEncodedSize
;
63 RPC_SYNTAX_IDENTIFIER InterfaceId
;
68 } MIDL_ES_MESSAGE
, *PMIDL_ES_MESSAGE
;
70 typedef PMIDL_ES_MESSAGE MIDL_ES_HANDLE
;
72 typedef struct _MIDL_TYPE_PICKLING_INFO
77 } MIDL_TYPE_PICKLING_INFO
, *PMIDL_TYPE_PICKLING_INFO
;
80 MesEncodeIncrementalHandleCreate(void *,MIDL_ES_ALLOC
,MIDL_ES_WRITE
,handle_t
*);
82 MesDecodeIncrementalHandleCreate(void *,MIDL_ES_READ
,handle_t
*);
84 MesIncrementalHandleReset(handle_t
,void *,MIDL_ES_ALLOC
,MIDL_ES_WRITE
,MIDL_ES_READ
,MIDL_ES_CODE
);
87 MesEncodeFixedBufferHandleCreate(char *,ULONG
,ULONG
*,handle_t
*);
89 MesEncodeDynBufferHandleCreate(char **,ULONG
*,handle_t
*);
91 MesDecodeBufferHandleCreate(char *,ULONG
,handle_t
*);
93 MesBufferHandleReset(handle_t
,ULONG
,MIDL_ES_CODE
,char **,ULONG
,ULONG
*);
96 MesHandleFree(handle_t
);
99 MesInqProcEncodingId(handle_t
,PRPC_SYNTAX_IDENTIFIER
,ULONG
*);
102 NdrMesSimpleTypeAlignSize(handle_t
);
104 NdrMesSimpleTypeDecode(handle_t
,void *,short);
106 NdrMesSimpleTypeEncode(handle_t
,const MIDL_STUB_DESC
*,const void *,short);
109 NdrMesTypeAlignSize(handle_t
,const MIDL_STUB_DESC
*,PFORMAT_STRING
,const void *);
111 NdrMesTypeEncode(handle_t
,const MIDL_STUB_DESC
*,PFORMAT_STRING
,const void *);
113 NdrMesTypeDecode(handle_t
,const MIDL_STUB_DESC
*,PFORMAT_STRING
,void *);
116 NdrMesTypeAlignSize2(handle_t
,const MIDL_TYPE_PICKLING_INFO
*,const MIDL_STUB_DESC
*,PFORMAT_STRING
,const void *);
118 NdrMesTypeEncode2(handle_t
,const MIDL_TYPE_PICKLING_INFO
*,const MIDL_STUB_DESC
*,PFORMAT_STRING
,const void *);
120 NdrMesTypeDecode2(handle_t
,const MIDL_TYPE_PICKLING_INFO
*,const MIDL_STUB_DESC
*,PFORMAT_STRING
,void *);
122 NdrMesTypeFree2(handle_t
,const MIDL_TYPE_PICKLING_INFO
*,const MIDL_STUB_DESC
*,PFORMAT_STRING
,void *);
125 NdrMesProcEncodeDecode(handle_t
,const MIDL_STUB_DESC
*,PFORMAT_STRING
,...);
126 CLIENT_CALL_RETURN RPC_VAR_ENTRY
127 NdrMesProcEncodeDeocde2(handle_t
,const MIDL_STUB_DESC
*,PFORMAT_STRING
,...);
133 #endif /* __WINE_MIDLES_H__ */