Import w32api version 2.5 include files
[reactos.git] / reactos / w32api / include / rpcndr.h
1 #ifndef __RPCNDR_H__
2 #define __RPCNDR_H__
3 #if __GNUC__ >=3
4 #pragma GCC system_header
5 #endif
6
7 #ifndef __RPCNDR_H_VERSION__
8 #define __RPCNDR_H_VERSION__ ( 450 )
9 #endif /* __RPCNDR_H_VERSION__ */
10 #include <rpcnsip.h>
11 #ifdef __cplusplus
12 extern "C" {
13 #endif
14 #include <objfwd.h>
15 #define DECLSPEC_UUID(x)
16 #define MIDL_INTERFACE(x) struct
17 #define NDR_CHAR_REP_MASK (unsigned long)0xFL
18 #define NDR_INT_REP_MASK (unsigned long)0xF0L
19 #define NDR_FLOAT_REP_MASK (unsigned long)0xFF00L
20 #define NDR_LITTLE_ENDIAN (unsigned long)0x10L
21 #define NDR_BIG_ENDIAN (unsigned long)0
22 #define NDR_IEEE_FLOAT (unsigned long)0
23 #define NDR_VAX_FLOAT (unsigned long)0x100L
24 #define NDR_ASCII_CHAR (unsigned long)0
25 #define NDR_EBCDIC_CHAR (unsigned long)1
26 #define NDR_LOCAL_DATA_REPRESENTATION (unsigned long)0x10L
27 #define NDR_LOCAL_ENDIAN NDR_LITTLE_ENDIAN
28 #define __RPC_CALLEE __stdcall
29 #ifndef __MIDL_USER_DEFINED
30 #define midl_user_allocate MIDL_user_allocate
31 #define midl_user_free MIDL_user_free
32 #define __MIDL_USER_DEFINED
33 #endif
34 #define RPC_VAR_ENTRY __cdecl
35 #ifdef _M_IX86
36 #define __MIDL_DECLSPEC_DLLIMPORT __declspec(dllimport)
37 #define __MIDL_DECLSPEC_DLLEXPORT __declspec(dllexport)
38 #else
39 #define __MIDL_DECLSPEC_DLLIMPORT
40 #define __MIDL_DECLSPEC_DLLEXPORT
41 #endif
42 #if defined(_HAVE_INT64) || (defined(_INTEGRAL_MAX_BITS) && _INTEGRAL_MAX_BITS >= 64)
43 #define hyper __int64
44 #define MIDL_uhyper unsigned __int64
45 #else
46 #define hyper double
47 #define MIDL_uhyper double
48 #endif
49 #define small char
50 typedef unsigned char byte;
51 #define NDRSContextValue(hContext) (&(hContext)->userContext)
52 #define cbNDRContext 20
53 #define byte_from_ndr(source, target) { *(target) = *(*(char**)&(source)->Buffer)++; }
54 #define byte_array_from_ndr(Source, LowerIndex, UpperIndex, Target) { NDRcopy ((((char *)(Target))+(LowerIndex)), (Source)->Buffer, (unsigned int)((UpperIndex)-(LowerIndex))); *(unsigned long *)&(Source)->Buffer += ((UpperIndex)-(LowerIndex)); }
55 #define boolean_from_ndr(source, target) { *(target) = *(*(char**)&(source)->Buffer)++; }
56 #define boolean_array_from_ndr(Source, LowerIndex, UpperIndex, Target) { NDRcopy ((((char *)(Target))+(LowerIndex)), (Source)->Buffer, (unsigned int)((UpperIndex)-(LowerIndex))); *(unsigned long *)&(Source)->Buffer += ((UpperIndex)-(LowerIndex)); }
57 #define small_from_ndr(source, target) { *(target) = *(*(char**)&(source)->Buffer)++; }
58 #define small_from_ndr_temp(source, target, format) { *(target) = *(*(char**)(source))++; }
59 #define small_array_from_ndr(Source, LowerIndex, UpperIndex, Target) { NDRcopy ((((char *)(Target))+(LowerIndex)), (Source)->Buffer, (unsigned int)((UpperIndex)-(LowerIndex))); *(unsigned long *)&(Source)->Buffer += ((UpperIndex)-(LowerIndex)); }
60 #define MIDL_ascii_strlen(string) strlen(string)
61 #define MIDL_ascii_strcpy(target,source) strcpy(target,source)
62 #define MIDL_memset(s,c,n) memset(s,c,n)
63 #define _midl_ma1( p, cast ) *(*( cast **)&p)++
64 #define _midl_ma2( p, cast ) *(*( cast **)&p)++
65 #define _midl_ma4( p, cast ) *(*( cast **)&p)++
66 #define _midl_ma8( p, cast ) *(*( cast **)&p)++
67 #define _midl_unma1( p, cast ) *(( cast *)p)++
68 #define _midl_unma2( p, cast ) *(( cast *)p)++
69 #define _midl_unma3( p, cast ) *(( cast *)p)++
70 #define _midl_unma4( p, cast ) *(( cast *)p)++
71 #define _midl_fa2( p ) (p = (RPC_BUFPTR )((unsigned long)(p+1) & 0xfffffffe))
72 #define _midl_fa4( p ) (p = (RPC_BUFPTR )((unsigned long)(p+3) & 0xfffffffc))
73 #define _midl_fa8( p ) (p = (RPC_BUFPTR )((unsigned long)(p+7) & 0xfffffff8))
74 #define _midl_addp( p, n ) (p += n)
75 #define _midl_marsh_lhs( p, cast ) *(*( cast **)&p)++
76 #define _midl_marsh_up( mp, p ) *(*(unsigned long **)&mp)++ = (unsigned long)p
77 #define _midl_advmp( mp ) *(*(unsigned long **)&mp)++
78 #define _midl_unmarsh_up( p ) (*(*(unsigned long **)&p)++)
79 #define NdrMarshConfStringHdr( p, s, l ) (_midl_ma4( p, unsigned long) = s, _midl_ma4( p, unsigned long) = 0, _midl_ma4( p, unsigned long) = l)
80 #define NdrUnMarshConfStringHdr(p, s, l) ((s=_midl_unma4(p,unsigned long), (_midl_addp(p,4)), (l=_midl_unma4(p,unsigned long))
81 #define NdrMarshCCtxtHdl(pc,p) (NDRCContextMarshall( (NDR_CCONTEXT)pc, p ),p+20)
82 #define NdrUnMarshCCtxtHdl(pc,p,h,drep) (NDRCContextUnmarshall((NDR_CONTEXT)pc,h,p,drep), p+20)
83 #define NdrUnMarshSCtxtHdl(pc, p,drep) (pc = NdrSContextUnMarshall(p,drep ))
84 #define NdrMarshSCtxtHdl(pc,p,rd) (NdrSContextMarshall((NDR_SCONTEXT)pc,p, (NDR_RUNDOWN)rd)
85 #define NdrFieldOffset(s,f) (long)(& (((s *)0)->f))
86 #define NdrFieldPad(s,f,p,t) (NdrFieldOffset(s,f) - NdrFieldOffset(s,p) - sizeof(t))
87 #define NdrFcShort(s) (unsigned char)(s & 0xff), (unsigned char)(s >> 8)
88 #define NdrFcLong(s) (unsigned char)(s & 0xff), (unsigned char)((s & 0x0000ff00) >> 8), (unsigned char)((s & 0x00ff0000) >> 16), (unsigned char)(s >> 24)
89 #ifdef CONST_VTABLE
90 #define CONST_VTBL const
91 #else
92 #define CONST_VTBL
93 #endif
94 typedef void *NDR_CCONTEXT;
95 typedef struct {
96 void *pad[2];
97 void *userContext;
98 } *NDR_SCONTEXT;
99 typedef void (__RPC_USER *NDR_RUNDOWN)(void*);
100 typedef struct _SCONTEXT_QUEUE {
101 unsigned long NumberOfObjects;
102 NDR_SCONTEXT *ArrayOfObjects;
103 } SCONTEXT_QUEUE,*PSCONTEXT_QUEUE;
104 struct _MIDL_STUB_MESSAGE;
105 struct _MIDL_STUB_DESC;
106 struct _FULL_PTR_XLAT_TABLES;
107 typedef unsigned char *RPC_BUFPTR;
108 typedef unsigned long RPC_LENGTH;
109 typedef void(__RPC_USER *EXPR_EVAL)(struct _MIDL_STUB_MESSAGE*);
110 typedef const unsigned char *PFORMAT_STRING;
111 typedef struct {
112 long Dimension;
113 unsigned long *BufferConformanceMark;
114 unsigned long *BufferVarianceMark;
115 unsigned long *MaxCountArray;
116 unsigned long *OffsetArray;
117 unsigned long *ActualCountArray;
118 } ARRAY_INFO,*PARRAY_INFO;
119
120 RPC_BINDING_HANDLE RPC_ENTRY NDRCContextBinding(NDR_CCONTEXT);
121 void RPC_ENTRY NDRCContextMarshall(NDR_CCONTEXT,void*);
122 void RPC_ENTRY NDRCContextUnmarshall(NDR_CCONTEXT*,RPC_BINDING_HANDLE,void*,unsigned long);
123 void RPC_ENTRY NDRSContextMarshall(NDR_SCONTEXT,void*,NDR_RUNDOWN);
124 NDR_SCONTEXT RPC_ENTRY NDRSContextUnmarshall(void*pBuff,unsigned long);
125 void RPC_ENTRY RpcSsDestroyClientContext(void**);
126 void RPC_ENTRY NDRcopy(void*,void*,unsigned int);
127 unsigned int RPC_ENTRY MIDL_wchar_strlen(wchar_t*);
128 void RPC_ENTRY MIDL_wchar_strcpy(void*,wchar_t*);
129 void RPC_ENTRY char_from_ndr(PRPC_MESSAGE,unsigned char*);
130 void RPC_ENTRY char_array_from_ndr(PRPC_MESSAGE,unsigned long,unsigned long,unsigned char*);
131 void RPC_ENTRY short_from_ndr(PRPC_MESSAGE,unsigned short*);
132 void RPC_ENTRY short_array_from_ndr(PRPC_MESSAGE,unsigned long,unsigned long,unsigned short*);
133 void RPC_ENTRY short_from_ndr_temp(unsigned char**,unsigned short*,unsigned long);
134 void RPC_ENTRY long_from_ndr(PRPC_MESSAGE,unsigned long*);
135 void RPC_ENTRY long_array_from_ndr(PRPC_MESSAGE,unsigned long,unsigned long,unsigned long*);
136 void RPC_ENTRY long_from_ndr_temp(unsigned char**,unsigned long*,unsigned long);
137 void RPC_ENTRY enum_from_ndr(PRPC_MESSAGE,unsigned int*);
138 void RPC_ENTRY float_from_ndr(PRPC_MESSAGE,void*);
139 void RPC_ENTRY float_array_from_ndr(PRPC_MESSAGE,unsigned long,unsigned long,void*);
140 void RPC_ENTRY double_from_ndr(PRPC_MESSAGE,void*);
141 void RPC_ENTRY double_array_from_ndr(PRPC_MESSAGE,unsigned long,unsigned long,void*);
142 void RPC_ENTRY hyper_from_ndr(PRPC_MESSAGE,hyper*);
143 void RPC_ENTRY hyper_array_from_ndr(PRPC_MESSAGE,unsigned long,unsigned long,hyper*);
144 void RPC_ENTRY hyper_from_ndr_temp(unsigned char**,hyper*,unsigned long);
145 void RPC_ENTRY data_from_ndr(PRPC_MESSAGE,void*,char*,unsigned char);
146 void RPC_ENTRY data_into_ndr(void*,PRPC_MESSAGE,char*,unsigned char);
147 void RPC_ENTRY tree_into_ndr(void*,PRPC_MESSAGE,char*,unsigned char);
148 void RPC_ENTRY data_size_ndr(void*,PRPC_MESSAGE,char*,unsigned char);
149 void RPC_ENTRY tree_size_ndr(void*,PRPC_MESSAGE,char*,unsigned char);
150 void RPC_ENTRY tree_peek_ndr(PRPC_MESSAGE,unsigned char**,char*,unsigned char);
151 void *RPC_ENTRY midl_allocate(int);
152
153 #pragma pack(push,4)
154 typedef struct _MIDL_STUB_MESSAGE {
155 PRPC_MESSAGE RpcMsg;
156 unsigned char *Buffer;
157 unsigned char *BufferStart;
158 unsigned char *BufferEnd;
159 unsigned char *BufferMark;
160 unsigned long BufferLength;
161 unsigned long MemorySize;
162 unsigned char *Memory;
163 int IsClient;
164 int ReuseBuffer;
165 unsigned char *AllocAllNodesMemory;
166 unsigned char *AllocAllNodesMemoryEnd;
167 int IgnoreEmbeddedPointers;
168 unsigned char *PointerBufferMark;
169 unsigned char fBufferValid;
170 unsigned char Unused;
171 unsigned long MaxCount;
172 unsigned long Offset;
173 unsigned long ActualCount;
174 void*(__RPC_API *pfnAllocate)(unsigned int);
175 void(__RPC_API *pfnFree)(void*);
176 unsigned char *StackTop;
177 unsigned char *pPresentedType;
178 unsigned char *pTransmitType;
179 handle_t SavedHandle;
180 const struct _MIDL_STUB_DESC *StubDesc;
181 struct _FULL_PTR_XLAT_TABLES *FullPtrXlatTables;
182 unsigned long FullPtrRefId;
183 int fCheckBounds;
184 int fInDontFree :1;
185 int fDontCallFreeInst :1;
186 int fInOnlyParam :1;
187 int fHasReturn :1;
188 unsigned long dwDestContext;
189 void*pvDestContext;
190 NDR_SCONTEXT *SavedContextHandles;
191 long ParamNumber;
192 struct IRpcChannelBuffer *pRpcChannelBuffer;
193 PARRAY_INFO pArrayInfo;
194 unsigned long *SizePtrCountArray;
195 unsigned long *SizePtrOffsetArray;
196 unsigned long *SizePtrLengthArray;
197 void*pArgQueue;
198 unsigned long dwStubPhase;
199 unsigned long Reserved[5];
200 } MIDL_STUB_MESSAGE,*PMIDL_STUB_MESSAGE;
201 #pragma pack(pop)
202 typedef void*(__RPC_API *GENERIC_BINDING_ROUTINE)(void*);
203 typedef void (__RPC_API *GENERIC_UNBIND_ROUTINE)(void*,unsigned char*);
204 typedef struct _GENERIC_BINDING_ROUTINE_PAIR {
205 GENERIC_BINDING_ROUTINE pfnBind;
206 GENERIC_UNBIND_ROUTINE pfnUnbind;
207 } GENERIC_BINDING_ROUTINE_PAIR,*PGENERIC_BINDING_ROUTINE_PAIR;
208 typedef struct __GENERIC_BINDING_INFO {
209 void *pObj;
210 unsigned int Size;
211 GENERIC_BINDING_ROUTINE pfnBind;
212 GENERIC_UNBIND_ROUTINE pfnUnbind;
213 } GENERIC_BINDING_INFO,*PGENERIC_BINDING_INFO;
214 typedef void(__RPC_USER *XMIT_HELPER_ROUTINE)(PMIDL_STUB_MESSAGE);
215 typedef struct _XMIT_ROUTINE_QUINTUPLE {
216 XMIT_HELPER_ROUTINE pfnTranslateToXmit;
217 XMIT_HELPER_ROUTINE pfnTranslateFromXmit;
218 XMIT_HELPER_ROUTINE pfnFreeXmit;
219 XMIT_HELPER_ROUTINE pfnFreeInst;
220 } XMIT_ROUTINE_QUINTUPLE,*PXMIT_ROUTINE_QUINTUPLE;
221 typedef struct _MALLOC_FREE_STRUCT {
222 void*(__RPC_USER *pfnAllocate)(unsigned int);
223 void(__RPC_USER *pfnFree)(void*);
224 } MALLOC_FREE_STRUCT;
225 typedef struct _COMM_FAULT_OFFSETS {
226 short CommOffset;
227 short FaultOffset;
228 } COMM_FAULT_OFFSETS;
229 typedef struct _MIDL_STUB_DESC {
230 void*RpcInterfaceInformation;
231 void*(__RPC_API *pfnAllocate)(unsigned int);
232 void(__RPC_API *pfnFree)(void*);
233 union {
234 handle_t *pAutoHandle;
235 handle_t *pPrimitiveHandle;
236 PGENERIC_BINDING_INFO pGenericBindingInfo;
237 } IMPLICIT_HANDLE_INFO;
238 const NDR_RUNDOWN *apfnNdrRundownRoutines;
239 const GENERIC_BINDING_ROUTINE_PAIR *aGenericBindingRoutinePairs;
240 const EXPR_EVAL *apfnExprEval;
241 const XMIT_ROUTINE_QUINTUPLE *aXmitQuintuple;
242 const unsigned char *pFormatTypes;
243 int fCheckBounds;
244 unsigned long Version;
245 MALLOC_FREE_STRUCT *pMallocFreeStruct;
246 long MIDLVersion;
247 const COMM_FAULT_OFFSETS *CommFaultOffsets;
248 } MIDL_STUB_DESC;
249 typedef const MIDL_STUB_DESC *PMIDL_STUB_DESC;
250 typedef void*PMIDL_XMIT_TYPE;
251 typedef struct _MIDL_FORMAT_STRING {
252 short Pad;
253 unsigned char Format[1];
254 } MIDL_FORMAT_STRING;
255 typedef void(__RPC_API *STUB_THUNK)(PMIDL_STUB_MESSAGE);
256 typedef long(__RPC_API *SERVER_ROUTINE)(void);
257 typedef struct _MIDL_SERVER_INFO_ {
258 PMIDL_STUB_DESC pStubDesc;
259 const SERVER_ROUTINE *DispatchTable;
260 PFORMAT_STRING ProcString;
261 const unsigned short *FmtStringOffset;
262 const STUB_THUNK *ThunkTable;
263 } MIDL_SERVER_INFO,*PMIDL_SERVER_INFO;
264 typedef struct _MIDL_STUBLESS_PROXY_INFO {
265 PMIDL_STUB_DESC pStubDesc;
266 PFORMAT_STRING ProcFormatString;
267 const unsigned short *FormatStringOffset;
268 } MIDL_STUBLESS_PROXY_INFO;
269 typedef MIDL_STUBLESS_PROXY_INFO *PMIDL_STUBLESS_PROXY_INFO;
270 typedef union _CLIENT_CALL_RETURN {
271 void *Pointer;
272 long Simple;
273 } CLIENT_CALL_RETURN;
274 typedef enum { XLAT_SERVER = 1,XLAT_CLIENT } XLAT_SIDE;
275 typedef struct _FULL_PTR_TO_REFID_ELEMENT {
276 struct _FULL_PTR_TO_REFID_ELEMENT *Next;
277 void*Pointer;
278 unsigned long RefId;
279 unsigned char State;
280 } FULL_PTR_TO_REFID_ELEMENT,*PFULL_PTR_TO_REFID_ELEMENT;
281 typedef struct _FULL_PTR_XLAT_TABLES {
282 struct {
283 void **XlatTable;
284 unsigned char *StateTable;
285 unsigned long NumberOfEntries;
286 } RefIdToPointer;
287 struct {
288 PFULL_PTR_TO_REFID_ELEMENT *XlatTable;
289 unsigned long NumberOfBuckets;
290 unsigned long HashMask;
291 } PointerToRefId;
292 unsigned long NextRefId;
293 XLAT_SIDE XlatSide;
294 } FULL_PTR_XLAT_TABLES,*PFULL_PTR_XLAT_TABLES;
295 void RPC_ENTRY NdrSimpleTypeMarshall(PMIDL_STUB_MESSAGE,unsigned char*,unsigned char);
296 unsigned char *RPC_ENTRY NdrPointerMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING pFormat);
297 unsigned char *RPC_ENTRY NdrSimpleStructMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
298 unsigned char *RPC_ENTRY NdrConformantStructMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
299 unsigned char *RPC_ENTRY NdrConformantVaryingStructMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
300 unsigned char *RPC_ENTRY NdrHardStructMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
301 unsigned char *RPC_ENTRY NdrComplexStructMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
302 unsigned char *RPC_ENTRY NdrFixedArrayMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
303 unsigned char *RPC_ENTRY NdrConformantArrayMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
304 unsigned char *RPC_ENTRY NdrConformantVaryingArrayMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
305 unsigned char *RPC_ENTRY NdrVaryingArrayMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
306 unsigned char *RPC_ENTRY NdrComplexArrayMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
307 unsigned char *RPC_ENTRY NdrNonConformantStringMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
308 unsigned char *RPC_ENTRY NdrConformantStringMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
309 unsigned char *RPC_ENTRY NdrEncapsulatedUnionMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
310 unsigned char *RPC_ENTRY NdrNonEncapsulatedUnionMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
311 unsigned char *RPC_ENTRY NdrByteCountPointerMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
312 unsigned char *RPC_ENTRY NdrXmitOrRepAsMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
313 unsigned char *RPC_ENTRY NdrInterfacePointerMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
314 void RPC_ENTRY NdrClientContextMarshall(PMIDL_STUB_MESSAGE,NDR_CCONTEXT,int);
315 void RPC_ENTRY NdrServerContextMarshall(PMIDL_STUB_MESSAGE,NDR_SCONTEXT,NDR_RUNDOWN);
316 void RPC_ENTRY NdrSimpleTypeUnmarshall(PMIDL_STUB_MESSAGE,unsigned char*,unsigned char);
317 unsigned char *RPC_ENTRY NdrPointerUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
318 unsigned char *RPC_ENTRY NdrSimpleStructUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
319 unsigned char *RPC_ENTRY NdrConformantStructUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
320 unsigned char *RPC_ENTRY NdrConformantVaryingStructUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
321 unsigned char *RPC_ENTRY NdrHardStructUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
322 unsigned char *RPC_ENTRY NdrComplexStructUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
323 unsigned char *RPC_ENTRY NdrFixedArrayUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
324 unsigned char *RPC_ENTRY NdrConformantArrayUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
325 unsigned char *RPC_ENTRY NdrConformantVaryingArrayUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
326 unsigned char *RPC_ENTRY NdrVaryingArrayUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
327 unsigned char *RPC_ENTRY NdrComplexArrayUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
328 unsigned char *RPC_ENTRY NdrNonConformantStringUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
329 unsigned char *RPC_ENTRY NdrConformantStringUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
330 unsigned char *RPC_ENTRY NdrEncapsulatedUnionUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
331 unsigned char *RPC_ENTRY NdrNonEncapsulatedUnionUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
332 unsigned char *RPC_ENTRY NdrByteCountPointerUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
333 unsigned char *RPC_ENTRY NdrXmitOrRepAsUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
334 unsigned char *RPC_ENTRY NdrInterfacePointerUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
335 void RPC_ENTRY NdrClientContextUnmarshall(PMIDL_STUB_MESSAGE,NDR_CCONTEXT*,RPC_BINDING_HANDLE);
336 NDR_SCONTEXT RPC_ENTRY NdrServerContextUnmarshall(PMIDL_STUB_MESSAGE);
337 void RPC_ENTRY NdrPointerBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
338 void RPC_ENTRY NdrSimpleStructBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
339 void RPC_ENTRY NdrConformantStructBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
340 void RPC_ENTRY NdrConformantVaryingStructBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
341 void RPC_ENTRY NdrHardStructBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
342 void RPC_ENTRY NdrComplexStructBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
343 void RPC_ENTRY NdrFixedArrayBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
344 void RPC_ENTRY NdrConformantArrayBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
345 void RPC_ENTRY NdrConformantVaryingArrayBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
346 void RPC_ENTRY NdrVaryingArrayBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
347 void RPC_ENTRY NdrComplexArrayBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
348 void RPC_ENTRY NdrConformantStringBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
349 void RPC_ENTRY NdrNonConformantStringBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
350 void RPC_ENTRY NdrEncapsulatedUnionBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
351 void RPC_ENTRY NdrNonEncapsulatedUnionBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
352 void RPC_ENTRY NdrByteCountPointerBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
353 void RPC_ENTRY NdrXmitOrRepAsBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
354 void RPC_ENTRY NdrInterfacePointerBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
355 void RPC_ENTRY NdrContextHandleSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
356 unsigned long RPC_ENTRY NdrPointerMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
357 unsigned long RPC_ENTRY NdrSimpleStructMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
358 unsigned long RPC_ENTRY NdrConformantStructMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
359 unsigned long RPC_ENTRY NdrConformantVaryingStructMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
360 unsigned long RPC_ENTRY NdrHardStructMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
361 unsigned long RPC_ENTRY NdrComplexStructMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
362 unsigned long RPC_ENTRY NdrFixedArrayMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
363 unsigned long RPC_ENTRY NdrConformantArrayMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
364 unsigned long RPC_ENTRY NdrConformantVaryingArrayMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
365 unsigned long RPC_ENTRY NdrVaryingArrayMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
366 unsigned long RPC_ENTRY NdrComplexArrayMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
367 unsigned long RPC_ENTRY NdrConformantStringMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
368 unsigned long RPC_ENTRY NdrNonConformantStringMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
369 unsigned long RPC_ENTRY NdrEncapsulatedUnionMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
370 unsigned long RPC_ENTRY NdrNonEncapsulatedUnionMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
371 unsigned long RPC_ENTRY NdrXmitOrRepAsMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
372 unsigned long RPC_ENTRY NdrInterfacePointerMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
373 void RPC_ENTRY NdrPointerFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
374 void RPC_ENTRY NdrSimpleStructFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
375 void RPC_ENTRY NdrConformantStructFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
376 void RPC_ENTRY NdrConformantVaryingStructFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
377 void RPC_ENTRY NdrHardStructFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
378 void RPC_ENTRY NdrComplexStructFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
379 void RPC_ENTRY NdrFixedArrayFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
380 void RPC_ENTRY NdrConformantArrayFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
381 void RPC_ENTRY NdrConformantVaryingArrayFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
382 void RPC_ENTRY NdrVaryingArrayFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
383 void RPC_ENTRY NdrComplexArrayFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
384 void RPC_ENTRY NdrEncapsulatedUnionFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
385 void RPC_ENTRY NdrNonEncapsulatedUnionFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
386 void RPC_ENTRY NdrByteCountPointerFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
387 void RPC_ENTRY NdrXmitOrRepAsFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
388 void RPC_ENTRY NdrInterfacePointerFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
389 void RPC_ENTRY NdrConvert(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
390 void RPC_ENTRY NdrClientInitializeNew(PRPC_MESSAGE,PMIDL_STUB_MESSAGE,PMIDL_STUB_DESC,unsigned int);
391 unsigned char *RPC_ENTRY NdrServerInitializeNew(PRPC_MESSAGE,PMIDL_STUB_MESSAGE,PMIDL_STUB_DESC);
392 void RPC_ENTRY NdrClientInitialize(PRPC_MESSAGE,PMIDL_STUB_MESSAGE,PMIDL_STUB_DESC,unsigned int);
393 unsigned char *RPC_ENTRY NdrServerInitialize(PRPC_MESSAGE,PMIDL_STUB_MESSAGE,PMIDL_STUB_DESC);
394 unsigned char *RPC_ENTRY NdrServerInitializeUnmarshall(PMIDL_STUB_MESSAGE,PMIDL_STUB_DESC,PRPC_MESSAGE);
395 void RPC_ENTRY NdrServerInitializeMarshall(PRPC_MESSAGE,PMIDL_STUB_MESSAGE);
396 unsigned char *RPC_ENTRY NdrGetBuffer(PMIDL_STUB_MESSAGE,unsigned long,RPC_BINDING_HANDLE);
397 unsigned char *RPC_ENTRY NdrNsGetBuffer(PMIDL_STUB_MESSAGE,unsigned long,RPC_BINDING_HANDLE);
398 unsigned char *RPC_ENTRY NdrSendReceive(PMIDL_STUB_MESSAGE,unsigned char*);
399 unsigned char *RPC_ENTRY NdrNsSendReceive(PMIDL_STUB_MESSAGE,unsigned char*,RPC_BINDING_HANDLE*);
400 void RPC_ENTRY NdrFreeBuffer(PMIDL_STUB_MESSAGE);
401 CLIENT_CALL_RETURN RPC_VAR_ENTRY NdrClientCall(PMIDL_STUB_DESC,PFORMAT_STRING,...);
402 typedef enum {
403 STUB_UNMARSHAL,
404 STUB_CALL_SERVER,
405 STUB_MARSHAL,
406 STUB_CALL_SERVER_NO_HRESULT
407 } STUB_PHASE;
408 typedef enum {
409 PROXY_CALCSIZE,
410 PROXY_GETBUFFER,
411 PROXY_MARSHAL,
412 PROXY_SENDRECEIVE,
413 PROXY_UNMARSHAL
414 } PROXY_PHASE;
415 long RPC_ENTRY NdrStubCall(struct IRpcStubBuffer*,struct IRpcChannelBuffer*,PRPC_MESSAGE,unsigned long*);
416 void RPC_ENTRY NdrServerCall(PRPC_MESSAGE);
417 int RPC_ENTRY NdrServerUnmarshall(struct IRpcChannelBuffer*,PRPC_MESSAGE,PMIDL_STUB_MESSAGE,PMIDL_STUB_DESC,PFORMAT_STRING,void*);
418 void RPC_ENTRY NdrServerMarshall(struct IRpcStubBuffer*,struct IRpcChannelBuffer*,PMIDL_STUB_MESSAGE,PFORMAT_STRING);
419 RPC_STATUS RPC_ENTRY NdrMapCommAndFaultStatus(PMIDL_STUB_MESSAGE,unsigned long*,unsigned long*,RPC_STATUS);
420 int RPC_ENTRY NdrSH_UPDecision(PMIDL_STUB_MESSAGE,unsigned char**,RPC_BUFPTR);
421 int RPC_ENTRY NdrSH_TLUPDecision(PMIDL_STUB_MESSAGE,unsigned char**);
422 int RPC_ENTRY NdrSH_TLUPDecisionBuffer(PMIDL_STUB_MESSAGE,unsigned char**);
423 int RPC_ENTRY NdrSH_IfAlloc(PMIDL_STUB_MESSAGE,unsigned char**,unsigned long);
424 int RPC_ENTRY NdrSH_IfAllocRef(PMIDL_STUB_MESSAGE,unsigned char**,unsigned long);
425 int RPC_ENTRY NdrSH_IfAllocSet(PMIDL_STUB_MESSAGE,unsigned char**,unsigned long);
426 RPC_BUFPTR RPC_ENTRY NdrSH_IfCopy(PMIDL_STUB_MESSAGE,unsigned char**,unsigned long);
427 RPC_BUFPTR RPC_ENTRY NdrSH_IfAllocCopy(PMIDL_STUB_MESSAGE,unsigned char**,unsigned long);
428 unsigned long RPC_ENTRY NdrSH_Copy(unsigned char*,unsigned char*,unsigned long);
429 void RPC_ENTRY NdrSH_IfFree(PMIDL_STUB_MESSAGE,unsigned char*);
430 RPC_BUFPTR RPC_ENTRY NdrSH_StringMarshall(PMIDL_STUB_MESSAGE,unsigned char*,unsigned long,int);
431 RPC_BUFPTR RPC_ENTRY NdrSH_StringUnMarshall(PMIDL_STUB_MESSAGE,unsigned char**,int);
432 typedef void *RPC_SS_THREAD_HANDLE;
433 typedef void* __RPC_API RPC_CLIENT_ALLOC(unsigned int);
434 typedef void __RPC_API RPC_CLIENT_FREE(void*);
435 void*RPC_ENTRY RpcSsAllocate(unsigned int);
436 void RPC_ENTRY RpcSsDisableAllocate(void);
437 void RPC_ENTRY RpcSsEnableAllocate(void);
438 void RPC_ENTRY RpcSsFree(void*);
439 RPC_SS_THREAD_HANDLE RPC_ENTRY RpcSsGetThreadHandle(void);
440 void RPC_ENTRY RpcSsSetClientAllocFree(RPC_CLIENT_ALLOC*,RPC_CLIENT_FREE*);
441 void RPC_ENTRY RpcSsSetThreadHandle(RPC_SS_THREAD_HANDLE);
442 void RPC_ENTRY RpcSsSwapClientAllocFree(RPC_CLIENT_ALLOC*,RPC_CLIENT_FREE*,RPC_CLIENT_ALLOC**,RPC_CLIENT_FREE**);
443 void*RPC_ENTRY RpcSmAllocate(unsigned int,RPC_STATUS*);
444 RPC_STATUS RPC_ENTRY RpcSmClientFree(void*);
445 RPC_STATUS RPC_ENTRY RpcSmDestroyClientContext(void**);
446 RPC_STATUS RPC_ENTRY RpcSmDisableAllocate(void);
447 RPC_STATUS RPC_ENTRY RpcSmEnableAllocate(void);
448 RPC_STATUS RPC_ENTRY RpcSmFree(void*);
449 RPC_SS_THREAD_HANDLE RPC_ENTRY RpcSmGetThreadHandle(RPC_STATUS*);
450 RPC_STATUS RPC_ENTRY RpcSmSetClientAllocFree(RPC_CLIENT_ALLOC*,RPC_CLIENT_FREE*);
451 RPC_STATUS RPC_ENTRY RpcSmSetThreadHandle(RPC_SS_THREAD_HANDLE);
452 RPC_STATUS RPC_ENTRY RpcSmSwapClientAllocFree(RPC_CLIENT_ALLOC*,RPC_CLIENT_FREE*,RPC_CLIENT_ALLOC**,RPC_CLIENT_FREE**);
453 void RPC_ENTRY NdrRpcSsEnableAllocate(PMIDL_STUB_MESSAGE);
454 void RPC_ENTRY NdrRpcSsDisableAllocate(PMIDL_STUB_MESSAGE);
455 void RPC_ENTRY NdrRpcSmSetClientToOsf(PMIDL_STUB_MESSAGE);
456 void*RPC_ENTRY NdrRpcSmClientAllocate(unsigned int);
457 void RPC_ENTRY NdrRpcSmClientFree(void*);
458 void*RPC_ENTRY NdrRpcSsDefaultAllocate(unsigned int);
459 void RPC_ENTRY NdrRpcSsDefaultFree(void*);
460 PFULL_PTR_XLAT_TABLES RPC_ENTRY NdrFullPointerXlatInit(unsigned long,XLAT_SIDE);
461 void RPC_ENTRY NdrFullPointerXlatFree(PFULL_PTR_XLAT_TABLES);
462 int RPC_ENTRY NdrFullPointerQueryPointer(PFULL_PTR_XLAT_TABLES,void*,unsigned char,unsigned long*);
463 int RPC_ENTRY NdrFullPointerQueryRefId(PFULL_PTR_XLAT_TABLES,unsigned long,unsigned char,void**);
464 void RPC_ENTRY NdrFullPointerInsertRefId(PFULL_PTR_XLAT_TABLES,unsigned long,void*);
465 int RPC_ENTRY NdrFullPointerFree(PFULL_PTR_XLAT_TABLES,void*);
466 void*RPC_ENTRY NdrAllocate(PMIDL_STUB_MESSAGE,unsigned int);
467 void RPC_ENTRY NdrClearOutParameters(PMIDL_STUB_MESSAGE,PFORMAT_STRING,void*);
468 void*RPC_ENTRY NdrOleAllocate(unsigned int);
469 void RPC_ENTRY NdrOleFree(void*);
470 #ifdef __cplusplus
471 }
472 #endif
473 #endif