Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

530 lines
17 KiB

4 years ago
  1. /*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2. Copyright (c) 1989 Microsoft Corporation
  3. Module Name:
  4. cgcommon.hxx
  5. Abstract:
  6. common definitions across back-end and analysis modules.
  7. Notes:
  8. History:
  9. VibhasC Aug-15-1993 Created.
  10. ----------------------------------------------------------------------------*/
  11. #ifndef __CGCOMMON_HXX__
  12. #define __CGCOMMON_HXX__
  13. // If we want temporary Oi server stubs in order to make stress failure
  14. // debugging easier uncomment the following line
  15. // #define TEMPORARY_OI_SERVER_STUBS
  16. /////////////////////////////////////////////////////////////////////////////
  17. // Code generation phase identification.
  18. /////////////////////////////////////////////////////////////////////////////
  19. //
  20. // This enumeration specifies the codegen or analysis side.
  21. //
  22. typedef enum _side
  23. {
  24. C_SIDE, // client
  25. S_SIDE, // server side
  26. A_SIDE // aux routines
  27. } SIDE;
  28. //
  29. // This enumeration identifies the code generation or analysis phase.
  30. //
  31. typedef enum _cgphase
  32. {
  33. CGPHASE_MARSHALL
  34. ,CGPHASE_UNMARSHALL
  35. //
  36. // This is actually the count of phases
  37. //
  38. ,CGPHASE_COUNT
  39. } CGPHASE;
  40. //////////////////////////////////////////////////////////////////////////////
  41. // Code generation side (client/server) identification.
  42. //////////////////////////////////////////////////////////////////////////////
  43. //
  44. // This enumeration identifies which side code is currently being
  45. // generated for.
  46. //
  47. typedef enum _cgside
  48. {
  49. CGSIDE_CLIENT
  50. ,CGSIDE_SERVER
  51. ,CGSIDE_AUX
  52. } CGSIDE;
  53. //
  54. // The standard resource identifier is a quick means of identifying the
  55. // resource.
  56. //
  57. typedef enum _standard_res_id
  58. {
  59. ST_LOCAL_RESOURCE_START
  60. ,ST_RES_RPC_MESSAGE_VARIABLE = ST_LOCAL_RESOURCE_START
  61. ,ST_RES_STUB_MESSAGE_VARIABLE
  62. ,ST_RES_STUB_DESC_VARIABLE
  63. ,ST_RES_BUFFER_POINTER_VARIABLE
  64. ,ST_RES_RPC_STATUS_VARIABLE
  65. ,ST_RES_LENGTH_VARIABLE
  66. ,ST_RES_BH_VARIABLE
  67. ,ST_RES_PXMIT_VARIABLE
  68. ,ST_LOCAL_RESOURCE_END
  69. ,ST_PARAM_RESOURCE_START = ST_LOCAL_RESOURCE_END
  70. ,ST_RES_PRPC_MESSAGE = ST_PARAM_RESOURCE_START
  71. ,ST_PARAM_RESOURCE_END
  72. ,ST_GLOBAL_RESOURCE_START= ST_PARAM_RESOURCE_END
  73. ,ST_RES_AUTO_BH_VARIABLE = ST_GLOBAL_RESOURCE_START
  74. ,ST_RES_FORMAT_STRING_VARIABLE
  75. ,ST_GLOBAL_RESOURCE_END
  76. } STANDARD_RES_ID;
  77. #define IS_STANDARD_LOCAL_RESOURCE( ResID ) \
  78. ((ResID >= ST_LOCAL_RESOURCE_START) && (ResID < ST_LOCAL_RESOURCE_END))
  79. #define IS_STANDARD_PARAM_RESOURCE( ResID ) \
  80. ((ResID >= ST_PARAM_RESOURCE_START) && (ResID < ST_PARAM_RESOURCE_END))
  81. #define IS_STANDARD_GLOBAL_RESOURCE( ResID ) \
  82. ((ResID >= ST_GLOBAL_RESOURCE_START) && (ResID < ST_GLOBAL_RESOURCE_END))
  83. //////////////////////////////////////////////////////////////////////////////
  84. // stub resource name and type name strings.
  85. // Note:: If uou add a standard resource name here, add to the standard
  86. // resource id enumeration list too !
  87. //////////////////////////////////////////////////////////////////////////////
  88. #define LOCAL_NAME_POINTER_MANGLE "_p_"
  89. #define LOCAL_NAME_ARRAY_MANGLE "_a_"
  90. #define PRPC_MESSAGE_TYPE_NAME "PRPC_MESSAGE"
  91. #define PRPC_MESSAGE_VAR_NAME "_pRpcMessage"
  92. #define RPC_MESSAGE_TYPE_NAME "RPC_MESSAGE"
  93. #define RPC_MESSAGE_VAR_NAME "_RpcMessage"
  94. #define RPC_MESSAGE_HANDLE_VAR_NAME RPC_MESSAGE_VAR_NAME".Handle"
  95. #define PRPC_MESSAGE_HANDLE_VAR_NAME PRPC_MESSAGE_VAR_NAME"->Handle"
  96. #define PRPC_MESSAGE_MANAGER_EPV_NAME PRPC_MESSAGE_VAR_NAME"->ManagerEpv"
  97. #define RPC_MESSAGE_DATA_REP RPC_MESSAGE_VAR_NAME".DataRepresentation"
  98. #define PRPC_MESSAGE_DATA_REP PRPC_MESSAGE_VAR_NAME"->DataRepresentation"
  99. #define STUB_MESSAGE_TYPE_NAME "MIDL_STUB_MESSAGE"
  100. #define STUB_MESSAGE_VAR_NAME "_StubMsg"
  101. #define PSTUB_MESSAGE_TYPE_NAME "PMIDL_STUB_MESSAGE"
  102. #define PSTUB_MESSAGE_VAR_NAME "_pStubMsg"
  103. #define PSTUB_MESSAGE_PAR_NAME "pStubMsg"
  104. #define STUB_MSG_LENGTH_VAR_NAME STUB_MESSAGE_VAR_NAME".BufferLength"
  105. #define PSTUB_MSG_LENGTH_VAR_NAME PSTUB_MESSAGE_PAR_NAME"->BufferLength"
  106. #define STUB_MSG_BUFFER_VAR_NAME STUB_MESSAGE_VAR_NAME".Buffer"
  107. #define STUB_MSG_BUFFER_END_VAR_NAME STUB_MESSAGE_VAR_NAME".BufferEnd"
  108. #define RETURN_VALUE_VAR_NAME "_RetVal"
  109. #define STUB_DESC_STRUCT_TYPE_NAME "MIDL_STUB_DESC"
  110. #define STUB_DESC_STRUCT_VAR_NAME "_StubDesc"
  111. #define PSTUB_DESC_STRUCT_TYPE_NAME "PMIDL_STUB_DESC"
  112. #define SERVER_INFO_TYPE_NAME "MIDL_SERVER_INFO"
  113. #define SERVER_INFO_VAR_NAME "_ServerInfo"
  114. #define SERVER_ROUTINE_TYPE_NAME "SERVER_ROUTINE"
  115. #define SERVER_ROUTINE_TABLE_NAME "_ServerRoutineTable"
  116. #define FORMAT_STRING_OFFSET_TABLE_NAME "_FormatStringOffsetTable"
  117. #define LOCAL_FORMAT_STRING_OFFSET_TABLE_NAME "_LocalFormatStringOffsetTable"
  118. #define STUB_THUNK_TYPE_NAME "STUB_THUNK"
  119. #define STUB_THUNK_TABLE_NAME "_StubThunkTable"
  120. #define BUFFER_POINTER_TYPE_NAME "RPC_BUFPTR"
  121. #define BUFFER_POINTER_VAR_NAME "_pBuffer"
  122. #define RPC_STATUS_TYPE_NAME "RPC_STATUS"
  123. #define RPC_STATUS_VAR_NAME "_Status"
  124. #define BH_LOCAL_VAR_TYPE_NAME "RPC_BINDING_HANDLE"
  125. #define BH_LOCAL_VAR_NAME "_Handle"
  126. #define LENGTH_VAR_NAME "_Length"
  127. #define LENGTH_VAR_TYPE_NAME "RPC_LENGTH"
  128. #define RPC_C_INT_INFO_TYPE_NAME "RPC_CLIENT_INTERFACE"
  129. #define RPC_C_INT_INFO_STRUCT_NAME "___RpcClientInterface"
  130. #define RPC_S_INT_INFO_TYPE_NAME "RPC_SERVER_INTERFACE"
  131. #define RPC_S_INT_INFO_STRUCT_NAME "___RpcServerInterface"
  132. #define FORMAT_STRING_TYPE_NAME "MIDL_TYPE_FORMAT_STRING"
  133. #define PFORMAT_STRING_TYPE_NAME "PFORMAT_STRING"
  134. #define FORMAT_STRING_STRUCT_NAME "__MIDL_TypeFormatString"
  135. #define FORMAT_STRING_STRING_FIELD FORMAT_STRING_STRUCT_NAME ".Format"
  136. #define PROC_FORMAT_STRING_TYPE_NAME "MIDL_PROC_FORMAT_STRING"
  137. #define PPROC_FORMAT_STRING_TYPE_NAME FORMAT_STRING_TYPE_NAME
  138. #define PROC_FORMAT_STRING_STRUCT_NAME "__MIDL_ProcFormatString"
  139. #define PROC_FORMAT_STRING_STRING_FIELD PROC_FORMAT_STRING_STRUCT_NAME ".Format"
  140. #define LOCAL_FORMAT_STRING_TYPE_NAME "MIDL_LOCAL_TYPE_FORMAT_STRING"
  141. #define PLOCAL_FORMAT_STRING_TYPE_NAME "PLOCAL_FORMAT_STRING"
  142. #define LOCAL_FORMAT_STRING_STRUCT_NAME "__MIDL_LocalTypeFormatString"
  143. #define LOCAL_FORMAT_STRING_STRING_FIELD LOCAL_FORMAT_STRING_STRUCT_NAME ".Format"
  144. #define LOCAL_PROC_FORMAT_STRING_TYPE_NAME "MIDL_LOCAL_PROC_FORMAT_STRING"
  145. #define PLOCAL_PROC_FORMAT_STRING_TYPE_NAME LOCAL_FORMAT_STRING_TYPE_NAME
  146. #define LOCAL_PROC_FORMAT_STRING_STRUCT_NAME "__MIDL_LocalProcFormatString"
  147. #define LOCAL_PROC_FORMAT_STRING_STRING_FIELD LOCAL_PROC_FORMAT_STRING_STRUCT_NAME ".Format"
  148. #define RUNDOWN_ROUTINE_TABLE_TYPE "NDR_RUNDOWN"
  149. #define RUNDOWN_ROUTINE_TABLE_VAR "RundownRoutines"
  150. #define BINDING_ROUTINE_TABLE_TYPE "GENERIC_BINDING_ROUTINE_PAIR"
  151. #define BINDING_ROUTINE_TABLE_VAR "BindingRoutines"
  152. #define EXPR_EVAL_ROUTINE_TABLE_TYPE "EXPR_EVAL"
  153. #define EXPR_EVAL_ROUTINE_TABLE_VAR "ExprEvalRoutines"
  154. #define XMIT_AS_ROUTINE_TABLE_TYPE "XMIT_ROUTINE_QUINTUPLE"
  155. #define XMIT_AS_ROUTINE_TABLE_VAR "TransmitAsRoutines"
  156. #define XMIT_TO_XMIT "_XmitTranslateToXmit"
  157. #define XMIT_FROM_XMIT "_XmitTranslateFromXmit"
  158. #define XMIT_FREE_XMIT "_XmitFreeXmit"
  159. #define XMIT_FREE_INST "_XmitFreeInst"
  160. #define REP_AS_ROUTINE_TABLE_TYPE "XMIT_ROUTINE_QUINTUPLE"
  161. #define REP_AS_ROUTINE_TABLE_VAR "RepresentAsRoutines"
  162. #define REP_FROM_LOCAL "_RepAsTranslateFromLocal"
  163. #define REP_TO_LOCAL "_RepAsTranslateToLocal"
  164. #define REP_FREE_INST "_RepAsFreeInst"
  165. #define REP_FREE_LOCAL "_RepAsFreeLocal"
  166. #define USER_MARSHAL_ROUTINE_TABLE_TYPE "USER_MARSHAL_ROUTINE_QUADRUPLE"
  167. #define USER_MARSHAL_ROUTINE_TABLE_VAR "UserMarshalRoutines"
  168. #define USER_MARSHAL_SIZE "_UserSize"
  169. #define USER_MARSHAL_MARSHALL "_UserMarshal"
  170. #define USER_MARSHAL_UNMARSHALL "_UserUnmarshal"
  171. #define USER_MARSHAL_FREE "_UserFree"
  172. #define FC_FIELD_OFFSET_MACRO "NdrFieldOffset"
  173. #define FC_FIELD_PAD_MACRO "NdrFieldPad"
  174. #define GENERIC_BINDING_ROUTINE_TYPE "GENERIC_BINDING_ROUTINE"
  175. #define GENERIC_UNBINDING_ROUTINE_TYPE "GENERIC_UNBIND_ROUTINE"
  176. #define GENERIC_BINDING_INFO_TYPE "GENERIC_BINDING_INFO"
  177. #define GENERIC_BINDING_INFO_VAR "GenericBindingInfo"
  178. #define PXMIT_VAR_NAME "_pXmit"
  179. #define PXMIT_VAR_TYPE_NAME "PMIDL_XMIT_TYPE"
  180. #define PARAM_STRUCT_TYPE_NAME "struct _PARAM_STRUCT"
  181. #define MALLOC_FREE_STRUCT_TYPE_NAME "MALLOC_FREE_STRUCT"
  182. #define MALLOC_FREE_STRUCT_VAR_NAME "_MallocFreeStruct"
  183. /////////////////////////////////////////////////////////////////////////////
  184. // standard routine names.
  185. /////////////////////////////////////////////////////////////////////////////
  186. #define FULL_POINTER_INIT_RTN_NAME "NdrFullPointerXlatInit"
  187. #define FULL_POINTER_FREE_RTN_NAME "NdrFullPointerXlatFree"
  188. #define RPC_SS_ENABLE_ALLOCATE_RTN_NAME "NdrRpcSsEnableAllocate"
  189. #define RPC_SS_DISABLE_ALLOCATE_RTN_NAME "NdrRpcSsDisableAllocate"
  190. #define RPC_SM_SET_CLIENT_TO_OSF_RTN_NAME "NdrRpcSmSetClientToOsf"
  191. #define RPC_SS_SERVER_ALLOCATE_RTN_NAME "RpcSsAllocate"
  192. #define RPC_SS_SERVER_FREE_RTN_NAME "RpcSsFree"
  193. #define RPC_SM_CLIENT_ALLOCATE_RTN_NAME "NdrRpcSmClientAllocate"
  194. #define RPC_SM_CLIENT_FREE_RTN_NAME "NdrRpcSmClientFree"
  195. #define DEFAULT_ALLOC_OSF_RTN_NAME "NdrRpcSsDefaultAllocate"
  196. #define DEFAULT_FREE_OSF_RTN_NAME "NdrRpcSsDefaultFree"
  197. #define DEFAULT_ALLOC_RTN_NAME "MIDL_user_allocate"
  198. #define DEFAULT_FREE_RTN_NAME "MIDL_user_free"
  199. #define OLE_ALLOC_RTN_NAME "NdrOleAllocate"
  200. #define OLE_FREE_RTN_NAME "NdrOleFree"
  201. #define NDR_CONVERT_RTN_NAME "NdrConvert"
  202. #define NDR_CONVERT_RTN_NAME_V2 "NdrConvert2"
  203. #define DEFAULT_GB_RTN_NAME "I_RpcGetBuffer"
  204. #define DEFAULT_SR_RTN_NAME "I_RpcSendReceive"
  205. #define DEFAULT_FB_RTN_NAME "I_RpcFreeBuffer"
  206. #define DEFAULT_NDR_SR_RTN_NAME "NdrSendReceive"
  207. #define DEFAULT_NDR_FB_RTN_NAME "NdrFreeBuffer"
  208. #define DEFAULT_NDR_GB_RTN_NAME "NdrGetBuffer"
  209. #define AUTO_GB_RTN_NAME "I_RpcNsGetBuffer"
  210. #define AUTO_SR_RTN_NAME "I_RpcNsSendReceive"
  211. #define AUTO_FB_RTN_NAME "I_RpcFreeBuffer"
  212. #define CALLBACK_HANDLE_RTN_NAME "I_RpcGetCurrentCallHandle"
  213. #define AUTO_NDR_SR_RTN_NAME "NdrNsSendReceive"
  214. #define AUTO_NDR_GB_RTN_NAME "NdrNsGetBuffer"
  215. #define AUTO_BH_VAR_NAME "__MIDL_AutoBindHandle"
  216. #define AUTO_BH_TYPE_NAME "RPC_BINDING_HANDLE"
  217. #define CSTUB_INIT_RTN_NAME "NdrClientInitializeNew"
  218. #define SSTUB_INIT_RTN_NAME "NdrServerInitializeNew"
  219. #define S_NDR_CALL_RTN_NAME "NdrServerCall"
  220. #define C_NDR_CALL_RTN_NAME "NdrClientCall"
  221. #define S_NDR_CALL_RTN_NAME_V2 "NdrServerCall2"
  222. #define C_NDR_CALL_RTN_NAME_V2 "NdrClientCall2"
  223. #define S_OBJECT_NDR_CALL_RTN_NAME "NdrStubCall"
  224. #define C_OBJECT_NDR_CALL_RTN_NAME "NdrClientCall"
  225. #define S_OBJECT_NDR_CALL_RTN_NAME_V2 "NdrStubCall2"
  226. #define C_OBJECT_NDR_CALL_RTN_NAME_V2 "NdrClientCall2"
  227. #define S_NDR_MARSHALL_RTN_NAME "NdrServerMarshall"
  228. #define S_NDR_UNMARSHALL_RTN_NAME "NdrServerUnmarshall"
  229. #define C_NDR_CLEAR_OUT_PARAMS_RTN_NAME "NdrClearOutParameters"
  230. #define AUTO_SR_NDR_RTN_NAME "NdrAHSendReceive"
  231. #define NORMAL_SR_NDR_RTN_NAME "NdrSendReceive"
  232. #define NORMAL_FB_NDR_RTN_NAME "NdrFreeBuffer"
  233. #define ALIGN_2_RTN_NAME "_midl_fa2"
  234. #define ALIGN_4_RTN_NAME "_midl_fa4"
  235. #define ALIGN_8_RTN_NAME "_midl_fa8"
  236. #define MARSHALL_1_RTN_NAME "_midl_ma1"
  237. #define MARSHALL_2_RTN_NAME "_midl_ma2"
  238. #define MARSHALL_4_RTN_NAME "_midl_ma4"
  239. #define MARSHALL_8_RTN_NAME "_midl_ma8"
  240. #define UNMARSHALL_1_RTN_NAME "_midl_unma1"
  241. #define UNMARSHALL_2_RTN_NAME "_midl_unma2"
  242. #define UNMARSHALL_4_RTN_NAME "_midl_unma4"
  243. #define UNMARSHALL_8_RTN_NAME "_midl_unma8"
  244. #define ADD_PTR_RTN_NAME "_midl_addp"
  245. #define MARSHALL_UNIQUE_PTR_RTN_NAME "_midl_marsh_up"
  246. #define CHECK_UNIQUE_PTR_IN_BUFFER "_midl_unmarsh_up"
  247. #define RAISE_EXCEPTION_RTN_NAME "RpcRaiseException"
  248. #define STUB_MSG_ALLOCATE_RTN_NAME STUB_MESSAGE_VAR_NAME".pfnAllocate"
  249. #define STUB_MSG_FREE_RTN_NAME STUB_MESSAGE_VAR_NAME".pfnFree"
  250. #define PSTUB_MSG_ALLOCATE_RTN_NAME PSTUB_MESSAGE_PAR_NAME"->pfnAllocate"
  251. #define ENGINE_CHECKED_ALLOC_RTN_NAME "NdrAllocate"
  252. #define MIDL_MEMSET_RTN_NAME "MIDL_memset"
  253. /////////////////////////////////////////////////////////////////////////////
  254. // context handle related stuff.
  255. /////////////////////////////////////////////////////////////////////////////
  256. #define CTXT_HDL_C_CONTEXT_TYPE_NAME "NDR_CCONTEXT"
  257. #define CTXT_HDL_S_CONTEXT_TYPE_NAME "NDR_SCONTEXT"
  258. #define CTXT_HDL_RUNDOWN_TYPE_NAME "NDR_RUNDOWN"
  259. #define CTXT_HDL_BIND_RTN_NAME "NDRCContextBinding"
  260. #define CTXT_HDL_C_MARSHALL_RTN_NAME "NDRCContextMarshall"
  261. #define CTXT_HDL_C_UNMARSHALL_RTN_NAME "NDRCContextUnmarshall"
  262. #define CTXT_HDL_S_UNMARSHALL_RTN_NAME "NDRSContextUnmarshall"
  263. #define CTXT_HDL_S_MARSHALL_RTN_NAME "NDRSContextMarshall"
  264. //
  265. // Stuff emitted in the client and server stub files.
  266. //
  267. #define SIZEOF_RPC_CLIENT_INTERFACE "sizeof("RPC_C_INT_INFO_TYPE_NAME")"
  268. #define SIZEOF_RPC_SERVER_INTERFACE "sizeof("RPC_S_INT_INFO_TYPE_NAME")"
  269. #define PROTSEQ_EP_TYPE_NAME "RPC_PROTSEQ_ENDPOINT"
  270. #define PROTSEQ_EP_VAR_NAME "___RpcProtseqEndpoint"
  271. #define TRANSFER_SYNTAX_GUID_STR_1 "8A885D04"
  272. #define TRANSFER_SYNTAX_GUID_STR_2 "1CEB"
  273. #define TRANSFER_SYNTAX_GUID_STR_3 "11C9"
  274. #define TRANSFER_SYNTAX_GUID_STR_4 "9FE8"
  275. #define TRANSFER_SYNTAX_GUID_STR_5 "08002B104860"
  276. #define RPC_DISPATCH_FUNCTION_TYPE_NAME "RPC_DISPATCH_FUNCTION"
  277. #define RPC_DISPATCH_TABLE_TYPE_NAME "RPC_DISPATCH_TABLE"
  278. #define STRUCT_PTR_NAME "_pStruct"
  279. #define STRICT_VARARGS_IFDEF "#ifdef STRICT_VARARGS"
  280. #define ALPHA_IFDEF "#if defined( _ALPHA_ )"
  281. #define ELSE_IF_PPC_OR_MIPS "#elif defined( _PPC_ ) || defined( _MIPS_ )"
  282. #define VA_LIST_TYPE_NAME "va_list"
  283. #define VLIST_VAR_NAME "vlist"
  284. #define VA_START_PROC_NAME "va_start"
  285. #define VLIST_A0 "vlist.a0"
  286. //
  287. // File names of standard include files.
  288. //
  289. #define RPCNDR_H_INC_FILE_NAME "rpcndr.h"
  290. #define STRING_H_INC_FILE_NAME "string.h"
  291. #define MEMORY_H_INC_FILE_NAME "memory.h"
  292. #define STDARG_H_INC_FILE_NAME "stdarg.h"
  293. //
  294. // xfer syntax version
  295. //
  296. #define NDR_UUID_MAJOR_VERSION 2
  297. #define NDR_UUID_MINOR_VERSION 0
  298. // encode / decode specific definitions.
  299. #define NO_FREEING_FOR_PICKLING TRUE
  300. // functions.
  301. #define NDR_MES_TYPE_ALIGN_SIZE "NdrMesTypeAlignSize"
  302. #define NDR_MES_TYPE_ENCODE "NdrMesTypeEncode"
  303. #define NDR_MES_TYPE_DECODE "NdrMesTypeDecode"
  304. #define NDR_MES_TYPE_FREE "NdrMesTypeFree"
  305. #define PROC_ENCODE_DECODE_RTN_NAME "NdrMesProcEncodeDecode"
  306. // types.
  307. #define MIDL_ES_HANDLE_TYPE_NAME "handle_t"
  308. #define MIDL_ES_HANDLE_VAR_NAME "_MidlEsHandle"
  309. #define PTYPE_VAR_NAME "_pType"
  310. // notify related stuff
  311. #define NOTIFY_SUFFIX "_notify"
  312. #define NOTIFY_FLAG_SUFFIX "_notify_flag"
  313. #define SIZEOF_NOTIFY_FLAG_SUFFIX strlen( NOTIFY_FLAG_SUFFIX )
  314. #define NOTIFY_FLAG_VAR_NAME "__MIDL_NotifyFlag"
  315. //////////////////////////////////////////////////////////////////////////////
  316. // sundry definitions
  317. //////////////////////////////////////////////////////////////////////////////
  318. typedef char * PNAME;
  319. typedef char * PFILENAME;
  320. /////////////////////////////////////////////////////////////////////////////
  321. // Binding related definitions.
  322. /////////////////////////////////////////////////////////////////////////////
  323. //
  324. // The handle usage refers to handle usage being explicit or implicit. This
  325. // is deliberately defined as an unsigned long, so we can use a bit field.
  326. // Otherwise it could be defined as an enum.
  327. //
  328. typedef unsigned long HANDLE_USAGE;
  329. //
  330. // binding handle usage.
  331. //
  332. #define HU_EXPLICIT 0x0
  333. #define HU_IMPLICIT 0x1
  334. /////////////////////////////////////////////////////////////////////////////
  335. // Some definitions relating to code generation that are used only for ndr
  336. // classes.
  337. /////////////////////////////////////////////////////////////////////////////
  338. //
  339. // This definition specifies the location where the param will be allocated
  340. // on the server stub.
  341. //
  342. typedef unsigned long S_STUB_ALLOC_LOCATION;
  343. #define S_STUB_ALLOC_LOCATION_UNKNOWN 0x0
  344. #define S_STUB_ALLOC_LOCATION_ON_STACK 0x1
  345. #define S_STUB_ALLOC_LOCATION_IN_HEAP 0x2
  346. #define S_STUB_ALLOC_LOCATION_NOT_NEEDED 0x3
  347. //
  348. // This definition specifies the actual entity allocated, whether it is a
  349. // reference to the entity or the entity itself.
  350. //
  351. typedef unsigned long S_STUB_ALLOC_TYPE;
  352. #define S_STUB_ALLOC_TYPE_NONE 0x0
  353. #define S_STUB_ALLOC_TYPE_REFERENCE 0x1
  354. #define S_STUB_ALLOC_TYPE_TYPE 0x2
  355. #define S_STUB_ALLOC_TYPE_DONT_CARE 0x3
  356. //
  357. // This definition specifies if initialization is needed for the parameter
  358. // on the server side before unmarshalling. This is used only for out params.
  359. //
  360. typedef unsigned long S_STUB_INIT_NEED;
  361. #define S_STUB_INIT_NOT_NEEDED 0x0
  362. #define S_STUB_INIT_NEEDED 0x1
  363. //////////////////////////////////////////////////////////////////////////////
  364. // other module definitions.
  365. //////////////////////////////////////////////////////////////////////////////
  366. // #include "optprop.hxx"
  367. #endif // __CGCOMMON_HXX__