1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
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__ */
|