home *** CD-ROM | disk | FTP | other *** search
/ Beginning C++ Through Gam…rogramming (2nd Edition) / BCGP2E.ISO / bloodshed / devcpp-4.9.9.2_setup.exe / rpcndr.h < prev    next >
C/C++ Source or Header  |  2005-01-29  |  29KB  |  516 lines

  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 w2kReserved[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 unsigned long (__RPC_USER *USER_MARSHAL_SIZING_ROUTINE)(unsigned long *,unsigned long,void *);
  230. typedef unsigned char *(__RPC_USER *USER_MARSHAL_MARSHALLING_ROUTINE)(unsigned long *,unsigned char *,void *);
  231. typedef unsigned char *(__RPC_USER *USER_MARSHAL_UNMARSHALLING_ROUTINE)(unsigned long *,unsigned char *,void *);
  232. typedef void (__RPC_USER *USER_MARSHAL_FREEING_ROUTINE)(unsigned long *,void *);
  233. typedef struct _USER_MARSHAL_ROUTINE_QUADRUPLE {
  234.     USER_MARSHAL_SIZING_ROUTINE pfnBufferSize;
  235.     USER_MARSHAL_MARSHALLING_ROUTINE pfnMarshall;
  236.     USER_MARSHAL_UNMARSHALLING_ROUTINE pfnUnmarshall;
  237.     USER_MARSHAL_FREEING_ROUTINE pfnFree;
  238. } USER_MARSHAL_ROUTINE_QUADRUPLE;
  239. typedef void (__RPC_USER *NDR_NOTIFY_ROUTINE)(void);
  240. typedef enum _IDL_CS_CONVERT {
  241.     IDL_CS_NO_CONVERT,
  242.     IDL_CS_IN_PLACE_CONVERT,
  243.     IDL_CS_NEW_BUFFER_CONVERT
  244. } IDL_CS_CONVERT;
  245. typedef void (__RPC_USER *CS_TYPE_NET_SIZE_ROUTINE)(RPC_BINDING_HANDLE,unsigned long,unsigned long,IDL_CS_CONVERT*,unsigned long*,error_status_t*);
  246. typedef void (__RPC_USER *CS_TYPE_LOCAL_SIZE_ROUTINE)(RPC_BINDING_HANDLE,unsigned long,unsigned long,IDL_CS_CONVERT*,unsigned long*,error_status_t*);
  247. typedef void (__RPC_USER *CS_TYPE_TO_NETCS_ROUTINE)(RPC_BINDING_HANDLE,unsigned long,void*,unsigned long,byte*,unsigned long*,error_status_t*);
  248. 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*);
  249. typedef void (__RPC_USER *CS_TAG_GETTING_ROUTINE)(RPC_BINDING_HANDLE,int,unsigned long*,unsigned long*,unsigned long*,error_status_t*);
  250. typedef struct _NDR_CS_SIZE_CONVERT_ROUTINES {
  251.     CS_TYPE_NET_SIZE_ROUTINE pfnNetSize;
  252.     CS_TYPE_TO_NETCS_ROUTINE pfnToNetCs;
  253.     CS_TYPE_LOCAL_SIZE_ROUTINE pfnLocalSize;
  254.     CS_TYPE_FROM_NETCS_ROUTINE pfnFromNetCs;
  255. } NDR_CS_SIZE_CONVERT_ROUTINES;
  256. typedef struct _NDR_CS_ROUTINES {
  257.     NDR_CS_SIZE_CONVERT_ROUTINES *pSizeConvertRoutines;
  258.     CS_TAG_GETTING_ROUTINE *pTagGettingRoutines;
  259. } NDR_CS_ROUTINES;
  260. typedef struct _MIDL_STUB_DESC {
  261.     void*RpcInterfaceInformation;
  262.     void*(__RPC_API *pfnAllocate)(unsigned int);
  263.     void(__RPC_API *pfnFree)(void*);
  264.     union {
  265.         handle_t *pAutoHandle;
  266.         handle_t *pPrimitiveHandle;
  267.         PGENERIC_BINDING_INFO pGenericBindingInfo;
  268.     } IMPLICIT_HANDLE_INFO;
  269.     const NDR_RUNDOWN *apfnNdrRundownRoutines;
  270.     const GENERIC_BINDING_ROUTINE_PAIR *aGenericBindingRoutinePairs;
  271.     const EXPR_EVAL *apfnExprEval;
  272.     const XMIT_ROUTINE_QUINTUPLE *aXmitQuintuple;
  273.     const unsigned char *pFormatTypes;
  274.     int fCheckBounds;
  275.     unsigned long Version;
  276.     MALLOC_FREE_STRUCT *pMallocFreeStruct;
  277.     long MIDLVersion;
  278.     const COMM_FAULT_OFFSETS *CommFaultOffsets;
  279.     const USER_MARSHAL_ROUTINE_QUADRUPLE *aUserMarshalQuadruple;
  280.     const NDR_NOTIFY_ROUTINE *NotifyRoutineTable;
  281.     ULONG_PTR mFlags;
  282.     const NDR_CS_ROUTINES *CsRoutineTables;
  283.     void *Reserved4;
  284.     ULONG_PTR Reserved5;
  285. } MIDL_STUB_DESC;
  286. typedef const MIDL_STUB_DESC *PMIDL_STUB_DESC;
  287. typedef void*PMIDL_XMIT_TYPE;
  288. typedef struct _MIDL_FORMAT_STRING {
  289.     short Pad;
  290.     unsigned char Format[1];
  291. } MIDL_FORMAT_STRING;
  292. typedef void(__RPC_API *STUB_THUNK)(PMIDL_STUB_MESSAGE);
  293. typedef long(__RPC_API *SERVER_ROUTINE)(void);
  294. typedef struct _MIDL_SERVER_INFO_ {
  295.     PMIDL_STUB_DESC pStubDesc;
  296.     const SERVER_ROUTINE *DispatchTable;
  297.     PFORMAT_STRING ProcString;
  298.     const unsigned short *FmtStringOffset;
  299.     const STUB_THUNK *ThunkTable;
  300. } MIDL_SERVER_INFO,*PMIDL_SERVER_INFO;
  301. typedef struct _MIDL_STUBLESS_PROXY_INFO {
  302.     PMIDL_STUB_DESC pStubDesc;
  303.     PFORMAT_STRING ProcFormatString;
  304.     const unsigned short *FormatStringOffset;
  305. } MIDL_STUBLESS_PROXY_INFO;
  306. typedef MIDL_STUBLESS_PROXY_INFO *PMIDL_STUBLESS_PROXY_INFO;
  307. typedef union _CLIENT_CALL_RETURN {
  308.     void *Pointer;
  309.     long Simple;
  310. } CLIENT_CALL_RETURN;
  311. typedef enum { XLAT_SERVER = 1,XLAT_CLIENT } XLAT_SIDE;
  312. typedef struct _FULL_PTR_TO_REFID_ELEMENT {
  313.     struct _FULL_PTR_TO_REFID_ELEMENT *Next;
  314.     void*Pointer;
  315.     unsigned long RefId;
  316.     unsigned char State;
  317. } FULL_PTR_TO_REFID_ELEMENT,*PFULL_PTR_TO_REFID_ELEMENT;
  318. typedef struct _FULL_PTR_XLAT_TABLES {
  319.     struct {
  320.         void **XlatTable;
  321.         unsigned char *StateTable;
  322.         unsigned long NumberOfEntries;
  323.     } RefIdToPointer;
  324.     struct {
  325.         PFULL_PTR_TO_REFID_ELEMENT *XlatTable;
  326.         unsigned long NumberOfBuckets;
  327.         unsigned long HashMask;
  328.     } PointerToRefId;
  329.     unsigned long NextRefId;
  330.     XLAT_SIDE XlatSide;
  331. } FULL_PTR_XLAT_TABLES,*PFULL_PTR_XLAT_TABLES;
  332. void RPC_ENTRY NdrSimpleTypeMarshall(PMIDL_STUB_MESSAGE,unsigned char*,unsigned char);
  333. unsigned char *RPC_ENTRY NdrPointerMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING pFormat);
  334. unsigned char *RPC_ENTRY NdrSimpleStructMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  335. unsigned char *RPC_ENTRY NdrConformantStructMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  336. unsigned char *RPC_ENTRY NdrConformantVaryingStructMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  337. unsigned char *RPC_ENTRY NdrHardStructMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  338. unsigned char *RPC_ENTRY NdrComplexStructMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  339. unsigned char *RPC_ENTRY NdrFixedArrayMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  340. unsigned char *RPC_ENTRY NdrConformantArrayMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  341. unsigned char *RPC_ENTRY NdrConformantVaryingArrayMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  342. unsigned char *RPC_ENTRY NdrVaryingArrayMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  343. unsigned char *RPC_ENTRY NdrComplexArrayMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  344. unsigned char *RPC_ENTRY NdrNonConformantStringMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  345. unsigned char *RPC_ENTRY NdrConformantStringMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  346. unsigned char *RPC_ENTRY NdrEncapsulatedUnionMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  347. unsigned char *RPC_ENTRY NdrNonEncapsulatedUnionMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  348. unsigned char *RPC_ENTRY NdrByteCountPointerMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  349. unsigned char *RPC_ENTRY NdrXmitOrRepAsMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  350. unsigned char *RPC_ENTRY NdrInterfacePointerMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  351. void RPC_ENTRY NdrClientContextMarshall(PMIDL_STUB_MESSAGE,NDR_CCONTEXT,int);
  352. void RPC_ENTRY NdrServerContextMarshall(PMIDL_STUB_MESSAGE,NDR_SCONTEXT,NDR_RUNDOWN);
  353. void RPC_ENTRY NdrSimpleTypeUnmarshall(PMIDL_STUB_MESSAGE,unsigned char*,unsigned char);
  354. unsigned char *RPC_ENTRY NdrPointerUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
  355. unsigned char *RPC_ENTRY NdrSimpleStructUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
  356. unsigned char *RPC_ENTRY NdrConformantStructUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
  357. unsigned char *RPC_ENTRY NdrConformantVaryingStructUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
  358. unsigned char *RPC_ENTRY NdrHardStructUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
  359. unsigned char *RPC_ENTRY NdrComplexStructUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
  360. unsigned char *RPC_ENTRY NdrFixedArrayUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
  361. unsigned char *RPC_ENTRY NdrConformantArrayUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
  362. unsigned char *RPC_ENTRY NdrConformantVaryingArrayUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
  363. unsigned char *RPC_ENTRY NdrVaryingArrayUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
  364. unsigned char *RPC_ENTRY NdrComplexArrayUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
  365. unsigned char *RPC_ENTRY NdrNonConformantStringUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
  366. unsigned char *RPC_ENTRY NdrConformantStringUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
  367. unsigned char *RPC_ENTRY NdrEncapsulatedUnionUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
  368. unsigned char *RPC_ENTRY NdrNonEncapsulatedUnionUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
  369. unsigned char *RPC_ENTRY NdrByteCountPointerUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
  370. unsigned char *RPC_ENTRY NdrXmitOrRepAsUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
  371. unsigned char *RPC_ENTRY NdrInterfacePointerUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
  372. void RPC_ENTRY NdrClientContextUnmarshall(PMIDL_STUB_MESSAGE,NDR_CCONTEXT*,RPC_BINDING_HANDLE);
  373. NDR_SCONTEXT RPC_ENTRY NdrServerContextUnmarshall(PMIDL_STUB_MESSAGE);
  374. void RPC_ENTRY NdrPointerBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  375. void RPC_ENTRY NdrSimpleStructBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  376. void RPC_ENTRY NdrConformantStructBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  377. void RPC_ENTRY NdrConformantVaryingStructBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  378. void RPC_ENTRY NdrHardStructBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  379. void RPC_ENTRY NdrComplexStructBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  380. void RPC_ENTRY NdrFixedArrayBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  381. void RPC_ENTRY NdrConformantArrayBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  382. void RPC_ENTRY NdrConformantVaryingArrayBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  383. void RPC_ENTRY NdrVaryingArrayBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  384. void RPC_ENTRY NdrComplexArrayBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  385. void RPC_ENTRY NdrConformantStringBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  386. void RPC_ENTRY NdrNonConformantStringBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  387. void RPC_ENTRY NdrEncapsulatedUnionBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  388. void RPC_ENTRY NdrNonEncapsulatedUnionBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  389. void RPC_ENTRY NdrByteCountPointerBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  390. void RPC_ENTRY NdrXmitOrRepAsBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  391. void RPC_ENTRY NdrInterfacePointerBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  392. void RPC_ENTRY NdrContextHandleSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  393. unsigned long RPC_ENTRY NdrPointerMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
  394. unsigned long RPC_ENTRY NdrSimpleStructMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
  395. unsigned long RPC_ENTRY NdrConformantStructMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
  396. unsigned long RPC_ENTRY NdrConformantVaryingStructMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
  397. unsigned long RPC_ENTRY NdrHardStructMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
  398. unsigned long RPC_ENTRY NdrComplexStructMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
  399. unsigned long RPC_ENTRY NdrFixedArrayMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
  400. unsigned long RPC_ENTRY NdrConformantArrayMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
  401. unsigned long RPC_ENTRY NdrConformantVaryingArrayMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
  402. unsigned long RPC_ENTRY NdrVaryingArrayMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
  403. unsigned long RPC_ENTRY NdrComplexArrayMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
  404. unsigned long RPC_ENTRY NdrConformantStringMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
  405. unsigned long RPC_ENTRY NdrNonConformantStringMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
  406. unsigned long RPC_ENTRY NdrEncapsulatedUnionMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
  407. unsigned long RPC_ENTRY NdrNonEncapsulatedUnionMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
  408. unsigned long RPC_ENTRY NdrXmitOrRepAsMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
  409. unsigned long RPC_ENTRY NdrInterfacePointerMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
  410. void RPC_ENTRY NdrPointerFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  411. void RPC_ENTRY NdrSimpleStructFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  412. void RPC_ENTRY NdrConformantStructFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  413. void RPC_ENTRY NdrConformantVaryingStructFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  414. void RPC_ENTRY NdrHardStructFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  415. void RPC_ENTRY NdrComplexStructFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  416. void RPC_ENTRY NdrFixedArrayFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  417. void RPC_ENTRY NdrConformantArrayFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  418. void RPC_ENTRY NdrConformantVaryingArrayFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  419. void RPC_ENTRY NdrVaryingArrayFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  420. void RPC_ENTRY NdrComplexArrayFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  421. void RPC_ENTRY NdrEncapsulatedUnionFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  422. void RPC_ENTRY NdrNonEncapsulatedUnionFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  423. void RPC_ENTRY NdrByteCountPointerFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  424. void RPC_ENTRY NdrXmitOrRepAsFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  425. void RPC_ENTRY NdrInterfacePointerFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  426. void RPC_ENTRY NdrConvert(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
  427. void RPC_ENTRY NdrClientInitializeNew(PRPC_MESSAGE,PMIDL_STUB_MESSAGE,PMIDL_STUB_DESC,unsigned int);
  428. unsigned char *RPC_ENTRY NdrServerInitializeNew(PRPC_MESSAGE,PMIDL_STUB_MESSAGE,PMIDL_STUB_DESC);
  429. void RPC_ENTRY NdrClientInitialize(PRPC_MESSAGE,PMIDL_STUB_MESSAGE,PMIDL_STUB_DESC,unsigned int);
  430. unsigned char *RPC_ENTRY NdrServerInitialize(PRPC_MESSAGE,PMIDL_STUB_MESSAGE,PMIDL_STUB_DESC);
  431. unsigned char *RPC_ENTRY NdrServerInitializeUnmarshall(PMIDL_STUB_MESSAGE,PMIDL_STUB_DESC,PRPC_MESSAGE);
  432. void RPC_ENTRY NdrServerInitializeMarshall(PRPC_MESSAGE,PMIDL_STUB_MESSAGE);
  433. unsigned char *RPC_ENTRY NdrGetBuffer(PMIDL_STUB_MESSAGE,unsigned long,RPC_BINDING_HANDLE);
  434. unsigned char *RPC_ENTRY NdrNsGetBuffer(PMIDL_STUB_MESSAGE,unsigned long,RPC_BINDING_HANDLE);
  435. unsigned char *RPC_ENTRY NdrSendReceive(PMIDL_STUB_MESSAGE,unsigned char*);
  436. unsigned char *RPC_ENTRY NdrNsSendReceive(PMIDL_STUB_MESSAGE,unsigned char*,RPC_BINDING_HANDLE*);
  437. void RPC_ENTRY NdrFreeBuffer(PMIDL_STUB_MESSAGE);
  438. CLIENT_CALL_RETURN RPC_VAR_ENTRY NdrClientCall(PMIDL_STUB_DESC,PFORMAT_STRING,...);
  439. typedef enum {
  440.     STUB_UNMARSHAL,
  441.     STUB_CALL_SERVER,
  442.     STUB_MARSHAL,
  443.     STUB_CALL_SERVER_NO_HRESULT
  444. } STUB_PHASE;
  445. typedef enum {
  446.     PROXY_CALCSIZE,
  447.     PROXY_GETBUFFER,
  448.     PROXY_MARSHAL,
  449.     PROXY_SENDRECEIVE,
  450.     PROXY_UNMARSHAL
  451. } PROXY_PHASE;
  452. long RPC_ENTRY NdrStubCall(struct IRpcStubBuffer*,struct IRpcChannelBuffer*,PRPC_MESSAGE,unsigned long*);
  453. void RPC_ENTRY NdrServerCall(PRPC_MESSAGE);
  454. int RPC_ENTRY NdrServerUnmarshall(struct IRpcChannelBuffer*,PRPC_MESSAGE,PMIDL_STUB_MESSAGE,PMIDL_STUB_DESC,PFORMAT_STRING,void*);
  455. void RPC_ENTRY NdrServerMarshall(struct IRpcStubBuffer*,struct IRpcChannelBuffer*,PMIDL_STUB_MESSAGE,PFORMAT_STRING);
  456. RPC_STATUS RPC_ENTRY NdrMapCommAndFaultStatus(PMIDL_STUB_MESSAGE,unsigned long*,unsigned long*,RPC_STATUS);
  457. int RPC_ENTRY NdrSH_UPDecision(PMIDL_STUB_MESSAGE,unsigned char**,RPC_BUFPTR);
  458. int RPC_ENTRY NdrSH_TLUPDecision(PMIDL_STUB_MESSAGE,unsigned char**);
  459. int RPC_ENTRY NdrSH_TLUPDecisionBuffer(PMIDL_STUB_MESSAGE,unsigned char**);
  460. int RPC_ENTRY NdrSH_IfAlloc(PMIDL_STUB_MESSAGE,unsigned char**,unsigned long);
  461. int RPC_ENTRY NdrSH_IfAllocRef(PMIDL_STUB_MESSAGE,unsigned char**,unsigned long);
  462. int RPC_ENTRY NdrSH_IfAllocSet(PMIDL_STUB_MESSAGE,unsigned char**,unsigned long);
  463. RPC_BUFPTR RPC_ENTRY NdrSH_IfCopy(PMIDL_STUB_MESSAGE,unsigned char**,unsigned long);
  464. RPC_BUFPTR RPC_ENTRY NdrSH_IfAllocCopy(PMIDL_STUB_MESSAGE,unsigned char**,unsigned long);
  465. unsigned long RPC_ENTRY NdrSH_Copy(unsigned char*,unsigned char*,unsigned long);
  466. void RPC_ENTRY NdrSH_IfFree(PMIDL_STUB_MESSAGE,unsigned char*);
  467. RPC_BUFPTR RPC_ENTRY NdrSH_StringMarshall(PMIDL_STUB_MESSAGE,unsigned char*,unsigned long,int);
  468. RPC_BUFPTR RPC_ENTRY NdrSH_StringUnMarshall(PMIDL_STUB_MESSAGE,unsigned char**,int);
  469. typedef void *RPC_SS_THREAD_HANDLE;
  470. typedef void* __RPC_API RPC_CLIENT_ALLOC(unsigned int);
  471. typedef void __RPC_API RPC_CLIENT_FREE(void*);
  472. void*RPC_ENTRY RpcSsAllocate(unsigned int);
  473. void RPC_ENTRY RpcSsDisableAllocate(void);
  474. void RPC_ENTRY RpcSsEnableAllocate(void);
  475. void RPC_ENTRY RpcSsFree(void*);
  476. RPC_SS_THREAD_HANDLE RPC_ENTRY RpcSsGetThreadHandle(void);
  477. void RPC_ENTRY RpcSsSetClientAllocFree(RPC_CLIENT_ALLOC*,RPC_CLIENT_FREE*);
  478. void RPC_ENTRY RpcSsSetThreadHandle(RPC_SS_THREAD_HANDLE);
  479. void RPC_ENTRY RpcSsSwapClientAllocFree(RPC_CLIENT_ALLOC*,RPC_CLIENT_FREE*,RPC_CLIENT_ALLOC**,RPC_CLIENT_FREE**);
  480. void*RPC_ENTRY RpcSmAllocate(unsigned int,RPC_STATUS*);
  481. RPC_STATUS RPC_ENTRY RpcSmClientFree(void*);
  482. RPC_STATUS RPC_ENTRY RpcSmDestroyClientContext(void**);
  483. RPC_STATUS RPC_ENTRY RpcSmDisableAllocate(void);
  484. RPC_STATUS RPC_ENTRY RpcSmEnableAllocate(void);
  485. RPC_STATUS RPC_ENTRY RpcSmFree(void*);
  486. RPC_SS_THREAD_HANDLE RPC_ENTRY RpcSmGetThreadHandle(RPC_STATUS*);
  487. RPC_STATUS RPC_ENTRY RpcSmSetClientAllocFree(RPC_CLIENT_ALLOC*,RPC_CLIENT_FREE*);
  488. RPC_STATUS RPC_ENTRY RpcSmSetThreadHandle(RPC_SS_THREAD_HANDLE);
  489. RPC_STATUS RPC_ENTRY RpcSmSwapClientAllocFree(RPC_CLIENT_ALLOC*,RPC_CLIENT_FREE*,RPC_CLIENT_ALLOC**,RPC_CLIENT_FREE**);
  490. void RPC_ENTRY NdrRpcSsEnableAllocate(PMIDL_STUB_MESSAGE);
  491. void RPC_ENTRY NdrRpcSsDisableAllocate(PMIDL_STUB_MESSAGE);
  492. void RPC_ENTRY NdrRpcSmSetClientToOsf(PMIDL_STUB_MESSAGE);
  493. void*RPC_ENTRY NdrRpcSmClientAllocate(unsigned int);
  494. void RPC_ENTRY NdrRpcSmClientFree(void*);
  495. void*RPC_ENTRY NdrRpcSsDefaultAllocate(unsigned int);
  496. void RPC_ENTRY NdrRpcSsDefaultFree(void*);
  497. PFULL_PTR_XLAT_TABLES RPC_ENTRY NdrFullPointerXlatInit(unsigned long,XLAT_SIDE);
  498. void RPC_ENTRY NdrFullPointerXlatFree(PFULL_PTR_XLAT_TABLES);
  499. int RPC_ENTRY NdrFullPointerQueryPointer(PFULL_PTR_XLAT_TABLES,void*,unsigned char,unsigned long*);
  500. int RPC_ENTRY NdrFullPointerQueryRefId(PFULL_PTR_XLAT_TABLES,unsigned long,unsigned char,void**);
  501. void RPC_ENTRY NdrFullPointerInsertRefId(PFULL_PTR_XLAT_TABLES,unsigned long,void*);
  502. int RPC_ENTRY NdrFullPointerFree(PFULL_PTR_XLAT_TABLES,void*);
  503. void*RPC_ENTRY NdrAllocate(PMIDL_STUB_MESSAGE,unsigned int);
  504. void RPC_ENTRY NdrClearOutParameters(PMIDL_STUB_MESSAGE,PFORMAT_STRING,void*);
  505. void*RPC_ENTRY NdrOleAllocate(unsigned int);
  506. void RPC_ENTRY NdrOleFree(void*);
  507. unsigned char*RPC_ENTRY NdrUserMarshalMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  508. unsigned char*RPC_ENTRY NdrUserMarshalUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
  509. void RPC_ENTRY NdrUserMarshalBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  510. unsigned long RPC_ENTRY NdrUserMarshalMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
  511. void RPC_ENTRY NdrUserMarshalFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
  512. #ifdef __cplusplus
  513. }
  514. #endif
  515. #endif
  516.