1 /** 2 * @file rpcndr.h 3 * Copyright 2012, 2013 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 554