OSDN Git Service

Redo the filters based on assumptions discussed in mingw-dvlpr list.
[mingw/mingw-org-wsl.git] / include / rpcndr.h
1 /**
2  * @file rpcndr.h
3  * @copy 2012 MinGW.org project
4  *
5  * Permission is hereby granted, free of charge, to any person obtaining a
6  * copy of this software and associated documentation files (the "Software"),
7  * to deal in the Software without restriction, including without limitation
8  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9  * and/or sell copies of the Software, and to permit persons to whom the
10  * Software is furnished to do so, subject to the following conditions:
11  * 
12  * The above copyright notice and this permission notice (including the next
13  * paragraph) shall be included in all copies or substantial portions of the
14  * Software.
15  * 
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22  * DEALINGS IN THE SOFTWARE.
23  */
24 #ifndef _RPCNDR_H
25 #define _RPCNDR_H
26 #define __RPCNDR_H__
27 #pragma GCC system_header
28 #include <_mingw.h>
29
30 #ifndef __RPCNDR_H_VERSION__
31 #define __RPCNDR_H_VERSION__        ( 450 )
32 #endif /* __RPCNDR_H_VERSION__ */
33
34 #include <rpcnsip.h>
35
36 #ifdef __cplusplus
37 extern "C" {
38 #endif
39
40 #include <objfwd.h>
41
42 #define DECLSPEC_UUID(x)
43 #define MIDL_INTERFACE(x) struct
44 #define NDR_CHAR_REP_MASK (unsigned long)0xFL
45 #define NDR_INT_REP_MASK (unsigned long)0xF0L
46 #define NDR_FLOAT_REP_MASK (unsigned long)0xFF00L
47 #define NDR_LITTLE_ENDIAN (unsigned long)0x10L
48 #define NDR_BIG_ENDIAN (unsigned long)0
49 #define NDR_IEEE_FLOAT (unsigned long)0
50 #define NDR_VAX_FLOAT (unsigned long)0x100L
51 #define NDR_ASCII_CHAR (unsigned long)0
52 #define NDR_EBCDIC_CHAR (unsigned long)1
53 #define NDR_LOCAL_DATA_REPRESENTATION (unsigned long)0x10L
54 #define NDR_LOCAL_ENDIAN NDR_LITTLE_ENDIAN
55 #define __RPC_CALLEE __stdcall
56
57 #ifndef __MIDL_USER_DEFINED
58 #define midl_user_allocate MIDL_user_allocate
59 #define midl_user_free MIDL_user_free
60 #define __MIDL_USER_DEFINED
61 #endif
62
63 #define RPC_VAR_ENTRY __cdecl
64
65 #ifdef _M_IX86
66 #define __MIDL_DECLSPEC_DLLIMPORT __declspec(dllimport)
67 #define __MIDL_DECLSPEC_DLLEXPORT __declspec(dllexport)
68 #else
69 #define __MIDL_DECLSPEC_DLLIMPORT
70 #define __MIDL_DECLSPEC_DLLEXPORT
71 #endif
72
73 #if defined(_HAVE_INT64) || (defined(_INTEGRAL_MAX_BITS) && _INTEGRAL_MAX_BITS >= 64)
74 #define hyper __int64
75 #define MIDL_uhyper unsigned __int64
76 #else
77 #define hyper double
78 #define MIDL_uhyper double
79 #endif
80
81 #define small char
82 typedef unsigned char byte;
83 typedef unsigned char boolean;
84 #define NDRSContextValue(hContext) (&(hContext)->userContext)
85 #define cbNDRContext 20
86 #define byte_from_ndr(source, target) { *(target) = *(*(char**)&(source)->Buffer)++; }
87 #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)); }
88 #define boolean_from_ndr(source, target) { *(target) = *(*(char**)&(source)->Buffer)++; }
89 #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)); }
90 #define small_from_ndr(source, target) { *(target) = *(*(char**)&(source)->Buffer)++; }
91 #define small_from_ndr_temp(source, target, format) { *(target) = *(*(char**)(source))++; }
92 #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)); }
93 #define MIDL_ascii_strlen(string) strlen(string)
94 #define MIDL_ascii_strcpy(target,source) strcpy(target,source)
95 #define MIDL_memset(s,c,n) memset(s,c,n)
96 #define _midl_ma1( p, cast ) *(*( cast **)&p)++
97 #define _midl_ma2( p, cast ) *(*( cast **)&p)++
98 #define _midl_ma4( p, cast ) *(*( cast **)&p)++
99 #define _midl_ma8( p, cast ) *(*( cast **)&p)++
100 #define _midl_unma1( p, cast ) *(( cast *)p)++
101 #define _midl_unma2( p, cast ) *(( cast *)p)++
102 #define _midl_unma3( p, cast ) *(( cast *)p)++
103 #define _midl_unma4( p, cast ) *(( cast *)p)++
104 #define _midl_fa2( p ) (p = (RPC_BUFPTR )((unsigned long)(p+1) & 0xfffffffe))
105 #define _midl_fa4( p ) (p = (RPC_BUFPTR )((unsigned long)(p+3) & 0xfffffffc))
106 #define _midl_fa8( p ) (p = (RPC_BUFPTR )((unsigned long)(p+7) & 0xfffffff8))
107 #define _midl_addp( p, n ) (p += n)
108 #define _midl_marsh_lhs( p, cast ) *(*( cast **)&p)++
109 #define _midl_marsh_up( mp, p ) *(*(unsigned long **)&mp)++ = (unsigned long)p
110 #define _midl_advmp( mp ) *(*(unsigned long **)&mp)++
111 #define _midl_unmarsh_up( p ) (*(*(unsigned long **)&p)++)
112 #define NdrMarshConfStringHdr( p, s, l ) (_midl_ma4( p, unsigned long) = s, _midl_ma4( p, unsigned long) = 0, _midl_ma4( p, unsigned long) = l)
113 #define NdrUnMarshConfStringHdr(p, s, l) (s=_midl_unma4(p,unsigned long), (_midl_addp(p,4)), (l=_midl_unma4(p,unsigned long)))
114 #define NdrMarshCCtxtHdl(pc,p) (NDRCContextMarshall( (NDR_CCONTEXT)pc, p ),p+20)
115 #define NdrUnMarshCCtxtHdl(pc,p,h,drep) (NDRCContextUnmarshall((NDR_CCONTEXT)pc,h,p,drep), p+20)
116 #define NdrUnMarshSCtxtHdl(pc, p,drep) (pc = NdrSContextUnMarshall(p,drep ))
117 #define NdrMarshSCtxtHdl(pc,p,rd) (NdrSContextMarshall((NDR_SCONTEXT)pc,p, (NDR_RUNDOWN)rd))
118 #define NdrFieldOffset(s,f) (long)(& (((s *)0)->f))
119 #define NdrFieldPad(s,f,p,t) (NdrFieldOffset(s,f) - NdrFieldOffset(s,p) - sizeof(t))
120 #define NdrFcShort(s) (unsigned char)(s & 0xff), (unsigned char)(s >> 8)
121 #define NdrFcLong(s) (unsigned char)(s & 0xff), (unsigned char)((s & 0x0000ff00) >> 8), (unsigned char)((s & 0x00ff0000) >> 16), (unsigned char)(s >> 24)
122
123 #ifdef CONST_VTABLE
124 #define CONST_VTBL const
125 #else
126 #define CONST_VTBL
127 #endif
128
129 typedef void *NDR_CCONTEXT;
130 typedef struct {
131         void *pad[2];
132         void *userContext;
133 } *NDR_SCONTEXT;
134 typedef void (__RPC_USER *NDR_RUNDOWN)(void*);
135 typedef struct _SCONTEXT_QUEUE {
136         unsigned long NumberOfObjects;
137         NDR_SCONTEXT *ArrayOfObjects;
138 } SCONTEXT_QUEUE,*PSCONTEXT_QUEUE;
139 struct _MIDL_STUB_MESSAGE;
140 struct _MIDL_STUB_DESC;
141 struct _FULL_PTR_XLAT_TABLES;
142 typedef unsigned char *RPC_BUFPTR;
143 typedef unsigned long RPC_LENGTH;
144 typedef void(__RPC_USER *EXPR_EVAL)(struct _MIDL_STUB_MESSAGE*);
145 typedef const unsigned char *PFORMAT_STRING;
146 typedef struct {
147         long Dimension;
148         unsigned long *BufferConformanceMark;
149         unsigned long *BufferVarianceMark;
150         unsigned long *MaxCountArray;
151         unsigned long *OffsetArray;
152         unsigned long *ActualCountArray;
153 } ARRAY_INFO,*PARRAY_INFO;
154
155 RPC_BINDING_HANDLE RPC_ENTRY NDRCContextBinding(NDR_CCONTEXT);
156 void RPC_ENTRY NDRCContextMarshall(NDR_CCONTEXT,void*);
157 void RPC_ENTRY NDRCContextUnmarshall(NDR_CCONTEXT*,RPC_BINDING_HANDLE,void*,unsigned long);
158 void RPC_ENTRY NDRSContextMarshall(NDR_SCONTEXT,void*,NDR_RUNDOWN);
159 NDR_SCONTEXT RPC_ENTRY NDRSContextUnmarshall(void*pBuff,unsigned long);
160 void RPC_ENTRY RpcSsDestroyClientContext(void**);
161 void RPC_ENTRY NDRcopy(void*,void*,unsigned int);
162 unsigned int RPC_ENTRY MIDL_wchar_strlen(wchar_t*);
163 void RPC_ENTRY MIDL_wchar_strcpy(void*,wchar_t*);
164 void RPC_ENTRY char_from_ndr(PRPC_MESSAGE,unsigned char*);
165 void RPC_ENTRY char_array_from_ndr(PRPC_MESSAGE,unsigned long,unsigned long,unsigned char*);
166 void RPC_ENTRY short_from_ndr(PRPC_MESSAGE,unsigned short*);
167 void RPC_ENTRY short_array_from_ndr(PRPC_MESSAGE,unsigned long,unsigned long,unsigned short*);
168 void RPC_ENTRY short_from_ndr_temp(unsigned char**,unsigned short*,unsigned long);
169 void RPC_ENTRY long_from_ndr(PRPC_MESSAGE,unsigned long*);
170 void RPC_ENTRY long_array_from_ndr(PRPC_MESSAGE,unsigned long,unsigned long,unsigned long*);
171 void RPC_ENTRY long_from_ndr_temp(unsigned char**,unsigned long*,unsigned long);
172 void RPC_ENTRY enum_from_ndr(PRPC_MESSAGE,unsigned int*);
173 void RPC_ENTRY float_from_ndr(PRPC_MESSAGE,void*);
174 void RPC_ENTRY float_array_from_ndr(PRPC_MESSAGE,unsigned long,unsigned long,void*);
175 void RPC_ENTRY double_from_ndr(PRPC_MESSAGE,void*);
176 void RPC_ENTRY double_array_from_ndr(PRPC_MESSAGE,unsigned long,unsigned long,void*);
177 void RPC_ENTRY hyper_from_ndr(PRPC_MESSAGE,hyper*);
178 void RPC_ENTRY hyper_array_from_ndr(PRPC_MESSAGE,unsigned long,unsigned long,hyper*);
179 void RPC_ENTRY hyper_from_ndr_temp(unsigned char**,hyper*,unsigned long);
180 void RPC_ENTRY data_from_ndr(PRPC_MESSAGE,void*,char*,unsigned char);
181 void RPC_ENTRY data_into_ndr(void*,PRPC_MESSAGE,char*,unsigned char);
182 void RPC_ENTRY tree_into_ndr(void*,PRPC_MESSAGE,char*,unsigned char);
183 void RPC_ENTRY data_size_ndr(void*,PRPC_MESSAGE,char*,unsigned char);
184 void RPC_ENTRY tree_size_ndr(void*,PRPC_MESSAGE,char*,unsigned char);
185 void RPC_ENTRY tree_peek_ndr(PRPC_MESSAGE,unsigned char**,char*,unsigned char);
186 void *RPC_ENTRY midl_allocate(int);
187
188 #pragma pack(push,4)
189 typedef struct _MIDL_STUB_MESSAGE {
190         PRPC_MESSAGE RpcMsg;
191         unsigned char *Buffer;
192         unsigned char *BufferStart;
193         unsigned char *BufferEnd;
194         unsigned char *BufferMark;
195         unsigned long BufferLength;
196         unsigned long MemorySize;
197         unsigned char *Memory;
198         int IsClient;
199         int ReuseBuffer;
200         unsigned char *AllocAllNodesMemory;
201         unsigned char *AllocAllNodesMemoryEnd;
202         int IgnoreEmbeddedPointers;
203         unsigned char *PointerBufferMark;
204         unsigned char fBufferValid;
205         unsigned char Unused;
206         unsigned long MaxCount;
207         unsigned long Offset;
208         unsigned long ActualCount;
209         void*(__RPC_API *pfnAllocate)(unsigned int);
210         void(__RPC_API *pfnFree)(void*);
211         unsigned char *StackTop;
212         unsigned char *pPresentedType;
213         unsigned char *pTransmitType;
214         handle_t SavedHandle;
215         const struct _MIDL_STUB_DESC *StubDesc;
216         struct _FULL_PTR_XLAT_TABLES *FullPtrXlatTables;
217         unsigned long FullPtrRefId;
218         int fCheckBounds;
219         int fInDontFree :1;
220         int fDontCallFreeInst :1;
221         int fInOnlyParam :1;
222         int fHasReturn :1;
223         unsigned long dwDestContext;
224         void*pvDestContext;
225         NDR_SCONTEXT *SavedContextHandles;
226         long ParamNumber;
227         struct IRpcChannelBuffer *pRpcChannelBuffer;
228         PARRAY_INFO pArrayInfo;
229         unsigned long *SizePtrCountArray;
230         unsigned long *SizePtrOffsetArray;
231         unsigned long *SizePtrLengthArray;
232         void*pArgQueue;
233         unsigned long dwStubPhase;
234         unsigned long w2kReserved[5];
235 } MIDL_STUB_MESSAGE,*PMIDL_STUB_MESSAGE;
236 #pragma pack(pop)
237 typedef void*(__RPC_API *GENERIC_BINDING_ROUTINE)(void*);
238 typedef void (__RPC_API *GENERIC_UNBIND_ROUTINE)(void*,unsigned char*);
239 typedef struct _GENERIC_BINDING_ROUTINE_PAIR {
240         GENERIC_BINDING_ROUTINE pfnBind;
241         GENERIC_UNBIND_ROUTINE pfnUnbind;
242 } GENERIC_BINDING_ROUTINE_PAIR,*PGENERIC_BINDING_ROUTINE_PAIR;
243 typedef struct __GENERIC_BINDING_INFO {
244         void *pObj;
245         unsigned int Size;
246         GENERIC_BINDING_ROUTINE pfnBind;
247         GENERIC_UNBIND_ROUTINE pfnUnbind;
248 } GENERIC_BINDING_INFO,*PGENERIC_BINDING_INFO;
249 typedef void(__RPC_USER *XMIT_HELPER_ROUTINE)(PMIDL_STUB_MESSAGE);
250 typedef struct _XMIT_ROUTINE_QUINTUPLE {
251         XMIT_HELPER_ROUTINE pfnTranslateToXmit;
252         XMIT_HELPER_ROUTINE pfnTranslateFromXmit;
253         XMIT_HELPER_ROUTINE pfnFreeXmit;
254         XMIT_HELPER_ROUTINE pfnFreeInst;
255 } XMIT_ROUTINE_QUINTUPLE,*PXMIT_ROUTINE_QUINTUPLE;
256 typedef struct _MALLOC_FREE_STRUCT {
257 void*(__RPC_USER *pfnAllocate)(unsigned int);
258 void(__RPC_USER *pfnFree)(void*);
259 } MALLOC_FREE_STRUCT;
260 typedef struct _COMM_FAULT_OFFSETS {
261         short CommOffset;
262         short FaultOffset;
263 } COMM_FAULT_OFFSETS;
264 typedef unsigned long (__RPC_USER *USER_MARSHAL_SIZING_ROUTINE)(unsigned long *,unsigned long,void *);
265 typedef unsigned char *(__RPC_USER *USER_MARSHAL_MARSHALLING_ROUTINE)(unsigned long *,unsigned char *,void *);
266 typedef unsigned char *(__RPC_USER *USER_MARSHAL_UNMARSHALLING_ROUTINE)(unsigned long *,unsigned char *,void *);
267 typedef void (__RPC_USER *USER_MARSHAL_FREEING_ROUTINE)(unsigned long *,void *);
268 typedef struct _USER_MARSHAL_ROUTINE_QUADRUPLE {
269         USER_MARSHAL_SIZING_ROUTINE pfnBufferSize;
270         USER_MARSHAL_MARSHALLING_ROUTINE pfnMarshall;
271         USER_MARSHAL_UNMARSHALLING_ROUTINE pfnUnmarshall;
272         USER_MARSHAL_FREEING_ROUTINE pfnFree;
273 } USER_MARSHAL_ROUTINE_QUADRUPLE;
274 typedef void (__RPC_USER *NDR_NOTIFY_ROUTINE)(void);
275 typedef enum _IDL_CS_CONVERT {
276         IDL_CS_NO_CONVERT,
277         IDL_CS_IN_PLACE_CONVERT,
278         IDL_CS_NEW_BUFFER_CONVERT
279 } IDL_CS_CONVERT;
280 typedef void (__RPC_USER *CS_TYPE_NET_SIZE_ROUTINE)(RPC_BINDING_HANDLE,unsigned long,unsigned long,IDL_CS_CONVERT*,unsigned long*,error_status_t*);
281 typedef void (__RPC_USER *CS_TYPE_LOCAL_SIZE_ROUTINE)(RPC_BINDING_HANDLE,unsigned long,unsigned long,IDL_CS_CONVERT*,unsigned long*,error_status_t*);
282 typedef void (__RPC_USER *CS_TYPE_TO_NETCS_ROUTINE)(RPC_BINDING_HANDLE,unsigned long,void*,unsigned long,byte*,unsigned long*,error_status_t*);
283 typedef void (__RPC_USER *CS_TYPE_FROM_NETCS_ROUTINE)(RPC_BINDING_HANDLE,unsigned long,byte*,unsigned long,unsigned long,void*,unsigned long*,error_status_t*);
284 typedef void (__RPC_USER *CS_TAG_GETTING_ROUTINE)(RPC_BINDING_HANDLE,int,unsigned long*,unsigned long*,unsigned long*,error_status_t*);
285 typedef struct _NDR_CS_SIZE_CONVERT_ROUTINES {
286         CS_TYPE_NET_SIZE_ROUTINE pfnNetSize;
287         CS_TYPE_TO_NETCS_ROUTINE pfnToNetCs;
288         CS_TYPE_LOCAL_SIZE_ROUTINE pfnLocalSize;
289         CS_TYPE_FROM_NETCS_ROUTINE pfnFromNetCs;
290 } NDR_CS_SIZE_CONVERT_ROUTINES;
291 typedef struct _NDR_CS_ROUTINES {
292         NDR_CS_SIZE_CONVERT_ROUTINES *pSizeConvertRoutines;
293         CS_TAG_GETTING_ROUTINE *pTagGettingRoutines;
294 } NDR_CS_ROUTINES;
295 typedef struct _MIDL_STUB_DESC {
296         void*RpcInterfaceInformation;
297         void*(__RPC_API *pfnAllocate)(unsigned int);
298         void(__RPC_API *pfnFree)(void*);
299         union {
300                 handle_t *pAutoHandle;
301                 handle_t *pPrimitiveHandle;
302                 PGENERIC_BINDING_INFO pGenericBindingInfo;
303         } IMPLICIT_HANDLE_INFO;
304         const NDR_RUNDOWN *apfnNdrRundownRoutines;
305         const GENERIC_BINDING_ROUTINE_PAIR *aGenericBindingRoutinePairs;
306         const EXPR_EVAL *apfnExprEval;
307         const XMIT_ROUTINE_QUINTUPLE *aXmitQuintuple;
308         const unsigned char *pFormatTypes;
309         int fCheckBounds;
310         unsigned long Version;
311         MALLOC_FREE_STRUCT *pMallocFreeStruct;
312         long MIDLVersion;
313         const COMM_FAULT_OFFSETS *CommFaultOffsets;
314         const USER_MARSHAL_ROUTINE_QUADRUPLE *aUserMarshalQuadruple;
315         const NDR_NOTIFY_ROUTINE *NotifyRoutineTable;
316         ULONG_PTR mFlags;
317         const NDR_CS_ROUTINES *CsRoutineTables;
318         void *Reserved4;
319         ULONG_PTR Reserved5;
320 } MIDL_STUB_DESC;
321 typedef const MIDL_STUB_DESC *PMIDL_STUB_DESC;
322 typedef void*PMIDL_XMIT_TYPE;
323 typedef struct _MIDL_FORMAT_STRING {
324         short Pad;
325         unsigned char Format[1];
326 } MIDL_FORMAT_STRING;
327 typedef void(__RPC_API *STUB_THUNK)(PMIDL_STUB_MESSAGE);
328 typedef long(__RPC_API *SERVER_ROUTINE)(void);
329 typedef struct _MIDL_SERVER_INFO_ {
330         PMIDL_STUB_DESC pStubDesc;
331         const SERVER_ROUTINE *DispatchTable;
332         PFORMAT_STRING ProcString;
333         const unsigned short *FmtStringOffset;
334         const STUB_THUNK *ThunkTable;
335 } MIDL_SERVER_INFO,*PMIDL_SERVER_INFO;
336 typedef struct _MIDL_STUBLESS_PROXY_INFO {
337         PMIDL_STUB_DESC pStubDesc;
338         PFORMAT_STRING ProcFormatString;
339         const unsigned short *FormatStringOffset;
340 } MIDL_STUBLESS_PROXY_INFO;
341 typedef MIDL_STUBLESS_PROXY_INFO *PMIDL_STUBLESS_PROXY_INFO;
342 typedef union _CLIENT_CALL_RETURN {
343         void *Pointer;
344         long Simple;
345 } CLIENT_CALL_RETURN;
346 typedef enum { XLAT_SERVER = 1,XLAT_CLIENT } XLAT_SIDE;
347 typedef struct _FULL_PTR_TO_REFID_ELEMENT {
348         struct _FULL_PTR_TO_REFID_ELEMENT *Next;
349         void*Pointer;
350         unsigned long RefId;
351         unsigned char State;
352 } FULL_PTR_TO_REFID_ELEMENT,*PFULL_PTR_TO_REFID_ELEMENT;
353 typedef struct _FULL_PTR_XLAT_TABLES {
354         struct {
355                 void **XlatTable;
356                 unsigned char *StateTable;
357                 unsigned long NumberOfEntries;
358         } RefIdToPointer;
359         struct {
360                 PFULL_PTR_TO_REFID_ELEMENT *XlatTable;
361                 unsigned long NumberOfBuckets;
362                 unsigned long HashMask;
363         } PointerToRefId;
364         unsigned long NextRefId;
365         XLAT_SIDE XlatSide;
366 } FULL_PTR_XLAT_TABLES,*PFULL_PTR_XLAT_TABLES;
367 void RPC_ENTRY NdrSimpleTypeMarshall(PMIDL_STUB_MESSAGE,unsigned char*,unsigned char);
368 unsigned char *RPC_ENTRY NdrPointerMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING pFormat);
369 unsigned char *RPC_ENTRY NdrSimpleStructMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
370 unsigned char *RPC_ENTRY NdrConformantStructMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
371 unsigned char *RPC_ENTRY NdrConformantVaryingStructMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
372 unsigned char *RPC_ENTRY NdrHardStructMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
373 unsigned char *RPC_ENTRY NdrComplexStructMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
374 unsigned char *RPC_ENTRY NdrFixedArrayMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
375 unsigned char *RPC_ENTRY NdrConformantArrayMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
376 unsigned char *RPC_ENTRY NdrConformantVaryingArrayMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
377 unsigned char *RPC_ENTRY NdrVaryingArrayMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
378 unsigned char *RPC_ENTRY NdrComplexArrayMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
379 unsigned char *RPC_ENTRY NdrNonConformantStringMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
380 unsigned char *RPC_ENTRY NdrConformantStringMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
381 unsigned char *RPC_ENTRY NdrEncapsulatedUnionMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
382 unsigned char *RPC_ENTRY NdrNonEncapsulatedUnionMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
383 unsigned char *RPC_ENTRY NdrByteCountPointerMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
384 unsigned char *RPC_ENTRY NdrXmitOrRepAsMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
385 unsigned char *RPC_ENTRY NdrInterfacePointerMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
386 void RPC_ENTRY NdrClientContextMarshall(PMIDL_STUB_MESSAGE,NDR_CCONTEXT,int);
387 void RPC_ENTRY NdrServerContextMarshall(PMIDL_STUB_MESSAGE,NDR_SCONTEXT,NDR_RUNDOWN);
388 void RPC_ENTRY NdrSimpleTypeUnmarshall(PMIDL_STUB_MESSAGE,unsigned char*,unsigned char);
389 unsigned char *RPC_ENTRY NdrPointerUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
390 unsigned char *RPC_ENTRY NdrSimpleStructUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
391 unsigned char *RPC_ENTRY NdrConformantStructUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
392 unsigned char *RPC_ENTRY NdrConformantVaryingStructUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
393 unsigned char *RPC_ENTRY NdrHardStructUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
394 unsigned char *RPC_ENTRY NdrComplexStructUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
395 unsigned char *RPC_ENTRY NdrFixedArrayUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
396 unsigned char *RPC_ENTRY NdrConformantArrayUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
397 unsigned char *RPC_ENTRY NdrConformantVaryingArrayUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
398 unsigned char *RPC_ENTRY NdrVaryingArrayUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
399 unsigned char *RPC_ENTRY NdrComplexArrayUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
400 unsigned char *RPC_ENTRY NdrNonConformantStringUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
401 unsigned char *RPC_ENTRY NdrConformantStringUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
402 unsigned char *RPC_ENTRY NdrEncapsulatedUnionUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
403 unsigned char *RPC_ENTRY NdrNonEncapsulatedUnionUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
404 unsigned char *RPC_ENTRY NdrByteCountPointerUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
405 unsigned char *RPC_ENTRY NdrXmitOrRepAsUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
406 unsigned char *RPC_ENTRY NdrInterfacePointerUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
407 void RPC_ENTRY NdrClientContextUnmarshall(PMIDL_STUB_MESSAGE,NDR_CCONTEXT*,RPC_BINDING_HANDLE);
408 NDR_SCONTEXT RPC_ENTRY NdrServerContextUnmarshall(PMIDL_STUB_MESSAGE);
409 void RPC_ENTRY NdrPointerBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
410 void RPC_ENTRY NdrSimpleStructBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
411 void RPC_ENTRY NdrConformantStructBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
412 void RPC_ENTRY NdrConformantVaryingStructBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
413 void RPC_ENTRY NdrHardStructBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
414 void RPC_ENTRY NdrComplexStructBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
415 void RPC_ENTRY NdrFixedArrayBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
416 void RPC_ENTRY NdrConformantArrayBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
417 void RPC_ENTRY NdrConformantVaryingArrayBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
418 void RPC_ENTRY NdrVaryingArrayBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
419 void RPC_ENTRY NdrComplexArrayBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
420 void RPC_ENTRY NdrConformantStringBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
421 void RPC_ENTRY NdrNonConformantStringBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
422 void RPC_ENTRY NdrEncapsulatedUnionBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
423 void RPC_ENTRY NdrNonEncapsulatedUnionBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
424 void RPC_ENTRY NdrByteCountPointerBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
425 void RPC_ENTRY NdrXmitOrRepAsBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
426 void RPC_ENTRY NdrInterfacePointerBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
427 void RPC_ENTRY NdrContextHandleSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
428 unsigned long RPC_ENTRY NdrPointerMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
429 unsigned long RPC_ENTRY NdrSimpleStructMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
430 unsigned long RPC_ENTRY NdrConformantStructMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
431 unsigned long RPC_ENTRY NdrConformantVaryingStructMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
432 unsigned long RPC_ENTRY NdrHardStructMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
433 unsigned long RPC_ENTRY NdrComplexStructMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
434 unsigned long RPC_ENTRY NdrFixedArrayMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
435 unsigned long RPC_ENTRY NdrConformantArrayMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
436 unsigned long RPC_ENTRY NdrConformantVaryingArrayMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
437 unsigned long RPC_ENTRY NdrVaryingArrayMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
438 unsigned long RPC_ENTRY NdrComplexArrayMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
439 unsigned long RPC_ENTRY NdrConformantStringMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
440 unsigned long RPC_ENTRY NdrNonConformantStringMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
441 unsigned long RPC_ENTRY NdrEncapsulatedUnionMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
442 unsigned long RPC_ENTRY NdrNonEncapsulatedUnionMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
443 unsigned long RPC_ENTRY NdrXmitOrRepAsMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
444 unsigned long RPC_ENTRY NdrInterfacePointerMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
445 void RPC_ENTRY NdrPointerFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
446 void RPC_ENTRY NdrSimpleStructFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
447 void RPC_ENTRY NdrConformantStructFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
448 void RPC_ENTRY NdrConformantVaryingStructFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
449 void RPC_ENTRY NdrHardStructFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
450 void RPC_ENTRY NdrComplexStructFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
451 void RPC_ENTRY NdrFixedArrayFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
452 void RPC_ENTRY NdrConformantArrayFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
453 void RPC_ENTRY NdrConformantVaryingArrayFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
454 void RPC_ENTRY NdrVaryingArrayFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
455 void RPC_ENTRY NdrComplexArrayFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
456 void RPC_ENTRY NdrEncapsulatedUnionFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
457 void RPC_ENTRY NdrNonEncapsulatedUnionFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
458 void RPC_ENTRY NdrByteCountPointerFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
459 void RPC_ENTRY NdrXmitOrRepAsFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
460 void RPC_ENTRY NdrInterfacePointerFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
461 void RPC_ENTRY NdrConvert(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
462 void RPC_ENTRY NdrClientInitializeNew(PRPC_MESSAGE,PMIDL_STUB_MESSAGE,PMIDL_STUB_DESC,unsigned int);
463 unsigned char *RPC_ENTRY NdrServerInitializeNew(PRPC_MESSAGE,PMIDL_STUB_MESSAGE,PMIDL_STUB_DESC);
464 void RPC_ENTRY NdrClientInitialize(PRPC_MESSAGE,PMIDL_STUB_MESSAGE,PMIDL_STUB_DESC,unsigned int);
465 unsigned char *RPC_ENTRY NdrServerInitialize(PRPC_MESSAGE,PMIDL_STUB_MESSAGE,PMIDL_STUB_DESC);
466 unsigned char *RPC_ENTRY NdrServerInitializeUnmarshall(PMIDL_STUB_MESSAGE,PMIDL_STUB_DESC,PRPC_MESSAGE);
467 void RPC_ENTRY NdrServerInitializeMarshall(PRPC_MESSAGE,PMIDL_STUB_MESSAGE);
468 unsigned char *RPC_ENTRY NdrGetBuffer(PMIDL_STUB_MESSAGE,unsigned long,RPC_BINDING_HANDLE);
469 unsigned char *RPC_ENTRY NdrNsGetBuffer(PMIDL_STUB_MESSAGE,unsigned long,RPC_BINDING_HANDLE);
470 unsigned char *RPC_ENTRY NdrSendReceive(PMIDL_STUB_MESSAGE,unsigned char*);
471 unsigned char *RPC_ENTRY NdrNsSendReceive(PMIDL_STUB_MESSAGE,unsigned char*,RPC_BINDING_HANDLE*);
472 void RPC_ENTRY NdrFreeBuffer(PMIDL_STUB_MESSAGE);
473 CLIENT_CALL_RETURN RPC_VAR_ENTRY NdrClientCall(PMIDL_STUB_DESC,PFORMAT_STRING,...);
474 CLIENT_CALL_RETURN RPC_VAR_ENTRY NdrClientCall2(PMIDL_STUB_DESC,PFORMAT_STRING,...);
475 typedef enum {
476         STUB_UNMARSHAL,
477         STUB_CALL_SERVER,
478         STUB_MARSHAL,
479         STUB_CALL_SERVER_NO_HRESULT
480 } STUB_PHASE;
481 typedef enum {
482         PROXY_CALCSIZE,
483         PROXY_GETBUFFER,
484         PROXY_MARSHAL,
485         PROXY_SENDRECEIVE,
486         PROXY_UNMARSHAL
487 } PROXY_PHASE;
488 long RPC_ENTRY NdrStubCall(struct IRpcStubBuffer*,struct IRpcChannelBuffer*,PRPC_MESSAGE,unsigned long*);
489 void RPC_ENTRY NdrServerCall(PRPC_MESSAGE);
490 int RPC_ENTRY NdrServerUnmarshall(struct IRpcChannelBuffer*,PRPC_MESSAGE,PMIDL_STUB_MESSAGE,PMIDL_STUB_DESC,PFORMAT_STRING,void*);
491 void RPC_ENTRY NdrServerMarshall(struct IRpcStubBuffer*,struct IRpcChannelBuffer*,PMIDL_STUB_MESSAGE,PFORMAT_STRING);
492 RPC_STATUS RPC_ENTRY NdrMapCommAndFaultStatus(PMIDL_STUB_MESSAGE,unsigned long*,unsigned long*,RPC_STATUS);
493 int RPC_ENTRY NdrSH_UPDecision(PMIDL_STUB_MESSAGE,unsigned char**,RPC_BUFPTR);
494 int RPC_ENTRY NdrSH_TLUPDecision(PMIDL_STUB_MESSAGE,unsigned char**);
495 int RPC_ENTRY NdrSH_TLUPDecisionBuffer(PMIDL_STUB_MESSAGE,unsigned char**);
496 int RPC_ENTRY NdrSH_IfAlloc(PMIDL_STUB_MESSAGE,unsigned char**,unsigned long);
497 int RPC_ENTRY NdrSH_IfAllocRef(PMIDL_STUB_MESSAGE,unsigned char**,unsigned long);
498 int RPC_ENTRY NdrSH_IfAllocSet(PMIDL_STUB_MESSAGE,unsigned char**,unsigned long);
499 RPC_BUFPTR RPC_ENTRY NdrSH_IfCopy(PMIDL_STUB_MESSAGE,unsigned char**,unsigned long);
500 RPC_BUFPTR RPC_ENTRY NdrSH_IfAllocCopy(PMIDL_STUB_MESSAGE,unsigned char**,unsigned long);
501 unsigned long RPC_ENTRY NdrSH_Copy(unsigned char*,unsigned char*,unsigned long);
502 void RPC_ENTRY NdrSH_IfFree(PMIDL_STUB_MESSAGE,unsigned char*);
503 RPC_BUFPTR RPC_ENTRY NdrSH_StringMarshall(PMIDL_STUB_MESSAGE,unsigned char*,unsigned long,int);
504 RPC_BUFPTR RPC_ENTRY NdrSH_StringUnMarshall(PMIDL_STUB_MESSAGE,unsigned char**,int);
505 typedef void *RPC_SS_THREAD_HANDLE;
506 typedef void* __RPC_API RPC_CLIENT_ALLOC(unsigned int);
507 typedef void __RPC_API RPC_CLIENT_FREE(void*);
508 void*RPC_ENTRY RpcSsAllocate(unsigned int);
509 void RPC_ENTRY RpcSsDisableAllocate(void);
510 void RPC_ENTRY RpcSsEnableAllocate(void);
511 void RPC_ENTRY RpcSsFree(void*);
512 RPC_SS_THREAD_HANDLE RPC_ENTRY RpcSsGetThreadHandle(void);
513 void RPC_ENTRY RpcSsSetClientAllocFree(RPC_CLIENT_ALLOC*,RPC_CLIENT_FREE*);
514 void RPC_ENTRY RpcSsSetThreadHandle(RPC_SS_THREAD_HANDLE);
515 void RPC_ENTRY RpcSsSwapClientAllocFree(RPC_CLIENT_ALLOC*,RPC_CLIENT_FREE*,RPC_CLIENT_ALLOC**,RPC_CLIENT_FREE**);
516 void*RPC_ENTRY RpcSmAllocate(unsigned int,RPC_STATUS*);
517 RPC_STATUS RPC_ENTRY RpcSmClientFree(void*);
518 RPC_STATUS RPC_ENTRY RpcSmDestroyClientContext(void**);
519 RPC_STATUS RPC_ENTRY RpcSmDisableAllocate(void);
520 RPC_STATUS RPC_ENTRY RpcSmEnableAllocate(void);
521 RPC_STATUS RPC_ENTRY RpcSmFree(void*);
522 RPC_SS_THREAD_HANDLE RPC_ENTRY RpcSmGetThreadHandle(RPC_STATUS*);
523 RPC_STATUS RPC_ENTRY RpcSmSetClientAllocFree(RPC_CLIENT_ALLOC*,RPC_CLIENT_FREE*);
524 RPC_STATUS RPC_ENTRY RpcSmSetThreadHandle(RPC_SS_THREAD_HANDLE);
525 RPC_STATUS RPC_ENTRY RpcSmSwapClientAllocFree(RPC_CLIENT_ALLOC*,RPC_CLIENT_FREE*,RPC_CLIENT_ALLOC**,RPC_CLIENT_FREE**);
526 void RPC_ENTRY NdrRpcSsEnableAllocate(PMIDL_STUB_MESSAGE);
527 void RPC_ENTRY NdrRpcSsDisableAllocate(PMIDL_STUB_MESSAGE);
528 void RPC_ENTRY NdrRpcSmSetClientToOsf(PMIDL_STUB_MESSAGE);
529 void*RPC_ENTRY NdrRpcSmClientAllocate(unsigned int);
530 void RPC_ENTRY NdrRpcSmClientFree(void*);
531 void*RPC_ENTRY NdrRpcSsDefaultAllocate(unsigned int);
532 void RPC_ENTRY NdrRpcSsDefaultFree(void*);
533 PFULL_PTR_XLAT_TABLES RPC_ENTRY NdrFullPointerXlatInit(unsigned long,XLAT_SIDE);
534 void RPC_ENTRY NdrFullPointerXlatFree(PFULL_PTR_XLAT_TABLES);
535 int RPC_ENTRY NdrFullPointerQueryPointer(PFULL_PTR_XLAT_TABLES,void*,unsigned char,unsigned long*);
536 int RPC_ENTRY NdrFullPointerQueryRefId(PFULL_PTR_XLAT_TABLES,unsigned long,unsigned char,void**);
537 void RPC_ENTRY NdrFullPointerInsertRefId(PFULL_PTR_XLAT_TABLES,unsigned long,void*);
538 int RPC_ENTRY NdrFullPointerFree(PFULL_PTR_XLAT_TABLES,void*);
539 void*RPC_ENTRY NdrAllocate(PMIDL_STUB_MESSAGE,unsigned int);
540 void RPC_ENTRY NdrClearOutParameters(PMIDL_STUB_MESSAGE,PFORMAT_STRING,void*);
541 void*RPC_ENTRY NdrOleAllocate(unsigned int);
542 void RPC_ENTRY NdrOleFree(void*);
543 unsigned char*RPC_ENTRY NdrUserMarshalMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
544 unsigned char*RPC_ENTRY NdrUserMarshalUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
545 void RPC_ENTRY NdrUserMarshalBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
546 unsigned long RPC_ENTRY NdrUserMarshalMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
547 void RPC_ENTRY NdrUserMarshalFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
548
549 #ifdef __cplusplus
550 }
551 #endif
552
553 #endif