Source code of Windows XP (NT5)
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.

703 lines
19 KiB

  1. /*****************************************************************************/
  2. /** Microsoft LAN Manager **/
  3. /** Copyright(c) Microsoft Corp., 1987-1999 **/
  4. /*****************************************************************************/
  5. /*****************************************************************************
  6. File : errors.hxx
  7. Title : error include file
  8. Description : This file contains the definitions of errors generated
  9. By the MIDL compiler.
  10. History :
  11. VibhasC 23-Jul-1990 Created
  12. NateO 20-Sep-1990 Safeguards against double inclusion
  13. *****************************************************************************/
  14. /****************************************************************************
  15. *** D errors range :
  16. *** 1000-1999
  17. *** C errors range :
  18. *** 2000-9999
  19. ****************************************************************************/
  20. #ifndef __ERRORS_HXX__
  21. #define __ERRORS_HXX__
  22. // define the data structures needed for the error handler
  23. typedef struct _e_mask
  24. {
  25. unsigned char ucSwitchConfig;
  26. unsigned char ucWarningLevel;
  27. unsigned char ucErrorClass;
  28. char cMessageType;
  29. } E_MASK;
  30. // definition of mode switch configuration combinations
  31. #define ZZZ (0)
  32. #define ZZM (1 << 1)
  33. #define ZCZ (1 << 2)
  34. #define ZCM (1 << 3)
  35. #define AZZ (1 << 4)
  36. #define AZM (1 << 5)
  37. #define ACZ (1 << 6)
  38. #define ACM (1 << 7)
  39. // message type
  40. #define C_MSG ('C')
  41. #define D_MSG ('D')
  42. #define A_MSG ('A')
  43. // error class
  44. #define CLASS_ERROR (0)
  45. #define CLASS_WARN (1)
  46. #define CLASS_ADVICE (2)
  47. // extraction macros
  48. #define GET_ECLASS(x) ((x).ucErrorClass)
  49. #define GET_WL(x) ((x).ucWarningLevel)
  50. #define GET_SC(x) ((x).ucSwitchConfig)
  51. #define GET_MT(x) ((x).cMessageType)
  52. #define MAKE_E_MASK( sc, mt, ec, wl ) \
  53. { sc, wl, ec, mt }
  54. #define D_ERROR_BASE 1000
  55. #define C_ERROR_BASE 2000
  56. #define A_ERROR_BASE 3000
  57. #define I_ERROR_BASE 9000
  58. enum _status_t
  59. {
  60. STATUS_OK
  61. ,D_ERR_START = D_ERROR_BASE
  62. ,NO_INPUT_FILE = D_ERR_START // no input file specified
  63. ,INPUT_OPEN // error in opening file
  64. ,INPUT_READ // error in positioning file
  65. ,PREPROCESSOR_ERROR // error in preprocessing
  66. ,PREPROCESSOR_EXEC // cant exec preprocessor
  67. ,NO_PREPROCESSOR
  68. ,PREPROCESSOR_INVALID
  69. ,SWITCH_REDEFINED // redef of switch
  70. ,UNKNOWN_SWITCH
  71. ,UNKNOWN_ARGUMENT
  72. ,UNIMPLEMENTED_SWITCH
  73. ,MISSING_ARG
  74. ,ILLEGAL_ARGUMENT
  75. ,BAD_SWITCH_SYNTAX
  76. ,NO_CPP_OVERRIDES
  77. ,NO_WARN_OVERRIDES
  78. ,INTERMEDIATE_FILE_CREATE
  79. ,UNUSED_ERROR_CODE1
  80. ,OUT_OF_SYSTEM_FILE_HANDLES
  81. ,UNUSED_ERROR_CODE2
  82. ,CANNOT_OPEN_RESP_FILE
  83. ,ILLEGAL_CHAR_IN_RESP_FILE
  84. ,MISMATCHED_PREFIX_PAIR
  85. ,NESTED_RESP_FILE
  86. ,D_ERR_MAX
  87. ,C_ERR_START = C_ERROR_BASE
  88. // general errors. The ones which are hard to pin down into any category.
  89. ,ABSTRACT_DECL = C_ERR_START
  90. ,ACTUAL_DECLARATION
  91. ,C_STACK_OVERFLOW
  92. ,DUPLICATE_DEFINITION
  93. ,NO_HANDLE_DEFINED_FOR_PROC
  94. ,OUT_OF_MEMORY
  95. ,RECURSIVE_DEF
  96. ,REDUNDANT_IMPORT
  97. ,SPARSE_ENUM
  98. ,UNDEFINED_SYMBOL
  99. ,UNDEFINED_TYPE
  100. ,UNRESOLVED_TYPE
  101. ,WCHAR_CONSTANT_NOT_OSF
  102. ,WCHAR_STRING_NOT_OSF
  103. ,WCHAR_T_ILLEGAL
  104. ,TYPELIB_NOT_LOADED
  105. ,TWO_LIBRARIES
  106. ,NO_IDISPATCH
  107. ,ERR_TYPELIB
  108. ,ERR_TYPEINFO
  109. ,ERR_TYPELIB_GENERATION
  110. ,DUPLICATE_IID
  111. ,BAD_ENTRY_VALUE
  112. // syntax related errors
  113. ,ASSUMING_CHAR
  114. ,DISCARDING_CHAR
  115. ,BENIGN_SYNTAX_ERROR
  116. ,SYNTAX_ERROR
  117. // pragma related errors
  118. ,UNKNOWN_PRAGMA_OPTION
  119. // unimplemented messages
  120. ,UNIMPLEMENTED_FEATURE
  121. ,UNIMPLEMENTED_TYPE
  122. // expression errors
  123. ,EXPR_DEREF_ON_NON_POINTER
  124. ,EXPR_DIV_BY_ZERO
  125. ,EXPR_INCOMPATIBLE_TYPES
  126. ,EXPR_INDEXING_NON_ARRAY
  127. ,EXPR_LHS_NON_COMPOSITE
  128. ,EXPR_NOT_CONSTANT
  129. ,EXPR_NOT_EVALUATABLE
  130. ,EXPR_NOT_IMPLEMENTED
  131. // interface errors
  132. ,NO_PTR_DEFAULT_ON_INTERFACE
  133. ,NOT_OLEAUTOMATION_INTERFACE
  134. // parameter related errors
  135. ,DERIVES_FROM_PTR_TO_CONF
  136. ,DERIVES_FROM_UNSIZED_STRING
  137. ,NON_PTR_OUT
  138. ,OPEN_STRUCT_AS_PARAM
  139. ,OUT_CONTEXT_GENERIC_HANDLE
  140. ,CTXT_HDL_TRANSMIT_AS
  141. ,PARAM_IS_ELIPSIS
  142. ,VOID_PARAM_WITH_NAME
  143. ,DERIVES_FROM_COCLASS_OR_MODULE
  144. // procedure related semantic errors
  145. ,HANDLE_NOT_FIRST
  146. ,PROC_PARAM_COMM_STATUS
  147. ,LOCAL_ATTR_ON_PROC
  148. ,ILLEGAL_USE_OF_PROPERTY_ATTRIBUTE
  149. ,MULTIPLE_PROPERTY_ATTRIBUTES
  150. ,ILLEGAL_COMBINATION_OF_ATTRIBUTES
  151. // structure semantic errors
  152. ,CONFORMANT_ARRAY_NOT_LAST
  153. // union semantic errors
  154. ,DUPLICATE_CASE
  155. ,NO_UNION_DEFAULT
  156. // attribute semantic errors
  157. ,ATTRIBUTE_ID_UNRESOLVED
  158. ,ATTR_MUST_BE_INT
  159. ,BYTE_COUNT_INVALID
  160. ,BYTE_COUNT_NOT_OUT_PTR
  161. ,BYTE_COUNT_ON_CONF
  162. ,BYTE_COUNT_PARAM_NOT_IN
  163. ,BYTE_COUNT_PARAM_NOT_INTEGRAL
  164. ,BYTE_COUNT_WITH_SIZE_ATTR
  165. ,CASE_EXPR_NOT_CONST
  166. ,CASE_EXPR_NOT_INT
  167. ,CONTEXT_HANDLE_VOID_PTR
  168. ,ERROR_STATUS_T_REPEATED
  169. ,E_STAT_T_MUST_BE_PTR_TO_E
  170. ,ENDPOINT_SYNTAX
  171. ,INAPPLICABLE_ATTRIBUTE
  172. ,ALLOCATE_INVALID
  173. ,INVALID_ALLOCATE_MODE
  174. ,INVALID_SIZE_ATTR_ON_STRING
  175. ,LAST_AND_LENGTH
  176. ,MAX_AND_SIZE
  177. ,NO_SWITCH_IS
  178. ,NO_UUID_SPECIFIED
  179. ,UUID_LOCAL_BOTH_SPECIFIED
  180. ,SIZE_LENGTH_TYPE_MISMATCH
  181. ,STRING_NOT_ON_BYTE_CHAR
  182. ,SWITCH_TYPE_MISMATCH
  183. ,TRANSMIT_AS_CTXT_HANDLE
  184. ,TRANSMIT_AS_NON_RPCABLE
  185. ,TRANSMIT_AS_POINTER
  186. ,TRANSMIT_TYPE_CONF
  187. ,UUID_FORMAT
  188. ,UUID_NOT_HEX
  189. ,OPTIONAL_PARAMS_MUST_BE_LAST
  190. ,DLLNAME_REQUIRED
  191. ,INVALID_USE_OF_BINDABLE
  192. ,INVALID_USE_OF_PROPPUT
  193. ,DISPATCH_ID_REQUIRED
  194. // acf semantic errors
  195. ,ACF_INTERFACE_MISMATCH
  196. ,DUPLICATE_ATTR
  197. ,INVALID_COMM_STATUS_PARAM
  198. ,LOCAL_PROC_IN_ACF
  199. ,TYPE_HAS_NO_HANDLE
  200. ,UNDEFINED_PROC
  201. ,UNDEF_PARAM_IN_IDL
  202. // array and pointer semantic errors
  203. ,ARRAY_BOUNDS_CONSTRUCT_BAD
  204. ,ILLEGAL_ARRAY_BOUNDS
  205. ,ILLEGAL_CONFORMANT_ARRAY
  206. ,UNSIZED_ARRAY
  207. ,NOT_FIXED_ARRAY
  208. ,SAFEARRAY_USE
  209. // lex errors
  210. ,CHAR_CONST_NOT_TERMINATED
  211. ,EOF_IN_COMMENT
  212. ,EOF_IN_STRING
  213. ,ID_TRUNCATED
  214. ,NEWLINE_IN_STRING
  215. ,STRING_TOO_LONG
  216. ,IDENTIFIER_TOO_LONG
  217. ,CONSTANT_TOO_BIG
  218. ,ERROR_PARSING_NUMERICAL
  219. // backend related errors
  220. ,ERROR_OPENING_FILE
  221. ,ERR_BIND // couldn't bind to a function
  222. ,ERR_INIT // couldn't initialize OLE
  223. ,ERR_LOAD // couldn't load a library
  224. // more errors
  225. ,UNIQUE_FULL_PTR_OUT_ONLY
  226. ,BAD_ATTR_NON_RPC_UNION
  227. ,SIZE_SPECIFIER_CANT_BE_OUT
  228. ,LENGTH_SPECIFIER_CANT_BE_OUT
  229. // errors placed here because of the compiler mode switch changes.
  230. ,BAD_CON_INT
  231. ,BAD_CON_FIELD_VOID
  232. ,BAD_CON_ARRAY_VOID
  233. ,BAD_CON_MSC_CDECL
  234. ,BAD_CON_FIELD_FUNC
  235. ,BAD_CON_ARRAY_FUNC
  236. ,BAD_CON_PARAM_FUNC
  237. ,BAD_CON_BIT_FIELDS
  238. ,BAD_CON_BIT_FIELD_NON_ANSI
  239. ,BAD_CON_BIT_FIELD_NOT_INTEGRAL
  240. ,BAD_CON_CTXT_HDL_FIELD
  241. ,BAD_CON_CTXT_HDL_ARRAY
  242. ,BAD_CON_NON_RPC_UNION
  243. ,NON_RPC_PARAM_INT
  244. ,NON_RPC_PARAM_VOID
  245. ,NON_RPC_PARAM_BIT_FIELDS
  246. ,NON_RPC_PARAM_CDECL
  247. ,NON_RPC_PARAM_FUNC_PTR
  248. ,NON_RPC_UNION
  249. ,NON_RPC_RTYPE_INT
  250. ,NON_RPC_RTYPE_VOID
  251. ,NON_RPC_RTYPE_BIT_FIELDS
  252. ,NON_RPC_RTYPE_UNION
  253. ,NON_RPC_RTYPE_FUNC_PTR
  254. ,COMPOUND_INITS_NOT_SUPPORTED
  255. ,ACF_IN_IDL_NEEDS_APP_CONFIG
  256. ,SINGLE_LINE_COMMENT
  257. ,VERSION_FORMAT
  258. ,SIGNED_ILLEGAL
  259. ,ASSIGNMENT_TYPE_MISMATCH
  260. ,ILLEGAL_OSF_MODE_DECL
  261. ,OSF_DECL_NEEDS_CONST
  262. ,COMP_DEF_IN_PARAM_LIST
  263. ,ALLOCATE_NOT_ON_PTR_TYPE
  264. ,ARRAY_OF_UNIONS_ILLEGAL
  265. ,BAD_CON_E_STAT_T_FIELD
  266. ,CASE_LABELS_MISSING_IN_UNION
  267. ,BAD_CON_PARAM_RT_IGNORE
  268. ,MORE_THAN_ONE_PTR_ATTR
  269. ,RECURSION_THRU_REF
  270. ,BAD_CON_FIELD_VOID_PTR
  271. ,INVALID_OSF_ATTRIBUTE
  272. ,INVALID_NEWTLB_ATTRIBUTE
  273. ,WCHAR_T_INVALID_OSF
  274. ,BAD_CON_UNNAMED_FIELD
  275. ,BAD_CON_UNNAMED_FIELD_NO_STRUCT
  276. ,BAD_CON_UNION_FIELD_CONF
  277. ,PTR_WITH_NO_DEFAULT
  278. ,RHS_OF_ASSIGN_NOT_CONST
  279. ,SWITCH_IS_TYPE_IS_WRONG
  280. ,ILLEGAL_CONSTANT
  281. ,IGNORE_UNIMPLEMENTED_ATTRIBUTE
  282. ,BAD_CON_REF_RT
  283. ,ATTRIBUTE_ID_MUST_BE_VAR
  284. ,RECURSIVE_UNION
  285. ,BINDING_HANDLE_IS_OUT_ONLY
  286. ,PTR_TO_HDL_UNIQUE_OR_FULL
  287. ,HANDLE_T_NO_TRANSMIT
  288. ,UNEXPECTED_END_OF_FILE
  289. ,HANDLE_T_XMIT
  290. ,CTXT_HDL_GENERIC_HDL
  291. ,GENERIC_HDL_VOID
  292. ,NO_EXPLICIT_IN_OUT_ON_PARAM
  293. ,TRANSMIT_AS_VOID
  294. ,VOID_NON_FIRST_PARAM
  295. ,SWITCH_IS_ON_NON_UNION
  296. ,STRINGABLE_STRUCT_NOT_SUPPORTED
  297. ,SWITCH_TYPE_TYPE_BAD
  298. ,GENERIC_HDL_HANDLE_T
  299. ,HANDLE_T_CANNOT_BE_OUT
  300. ,SIZE_LENGTH_SW_UNIQUE_OR_FULL
  301. ,CPP_QUOTE_NOT_OSF
  302. ,QUOTED_UUID_NOT_OSF
  303. ,RETURN_OF_UNIONS_ILLEGAL
  304. ,RETURN_OF_CONF_STRUCT
  305. ,XMIT_AS_GENERIC_HANDLE
  306. ,GENERIC_HANDLE_XMIT_AS
  307. ,INVALID_CONST_TYPE
  308. ,INVALID_SIZEOF_OPERAND
  309. ,NAME_ALREADY_USED
  310. ,ERROR_STATUS_T_ILLEGAL
  311. ,CASE_VALUE_OUT_OF_RANGE
  312. ,WCHAR_T_NEEDS_MS_EXT_TO_RPC
  313. ,INTERFACE_ONLY_CALLBACKS
  314. ,REDUNDANT_ATTRIBUTE
  315. ,CTXT_HANDLE_USED_AS_IMPLICIT
  316. ,CONFLICTING_ALLOCATE_OPTIONS
  317. ,ERROR_WRITING_FILE
  318. ,NO_SWITCH_TYPE_AT_DEF
  319. ,ERRORS_PASS1_NO_PASS2
  320. ,HANDLES_WITH_CALLBACK
  321. ,PTR_NOT_FULLY_IMPLEMENTED
  322. ,PARAM_ALREADY_CTXT_HDL
  323. ,CTXT_HDL_HANDLE_T
  324. ,ARRAY_SIZE_EXCEEDS_64K
  325. ,STRUCT_SIZE_EXCEEDS_64K
  326. ,NE_UNION_FIELD_NE_UNION
  327. ,PTR_ATTRS_ON_EMBEDDED_ARRAY
  328. ,ALLOCATE_ON_TRANSMIT_AS
  329. ,SWITCH_TYPE_REQD_THIS_IMP_MODE
  330. ,IMPLICIT_HDL_ASSUMED_GENERIC
  331. ,E_STAT_T_ARRAY_ELEMENT
  332. ,ALLOCATE_ON_HANDLE
  333. ,TRANSMIT_AS_ON_E_STAT_T
  334. ,IGNORE_ON_DISCRIMINANT
  335. ,NOCODE_WITH_SERVER_STUBS
  336. ,NO_REMOTE_PROCS_NO_STUBS
  337. ,TWO_DEFAULT_CASES
  338. ,TWO_DEFAULT_INTERFACES
  339. ,DEFAULTVTABLE_REQUIRES_SOURCE
  340. ,UNION_NO_FIELDS
  341. ,VALUE_OUT_OF_RANGE
  342. ,CTXT_HDL_NON_PTR
  343. ,NON_RPC_RTYPE_HANDLE_T
  344. ,GEN_HDL_CTXT_HDL
  345. ,NON_RPC_FIELD_INT
  346. ,NON_RPC_FIELD_PTR_TO_VOID
  347. ,NON_RPC_FIELD_BIT_FIELDS
  348. ,NON_RPC_FIELD_NON_RPC_UNION
  349. ,NON_RPC_FIELD_FUNC_PTR
  350. ,PROC_PARAM_FAULT_STATUS
  351. ,NON_OI_BIG_RETURN
  352. ,NON_OI_BIG_GEN_HDL
  353. ,ALLOCATE_IN_OUT_PTR
  354. ,REF_PTR_IN_UNION
  355. ,NON_OI_CTXT_HDL
  356. ,NON_OI_ERR_STATS
  357. ,NON_OI_UNK_REP_AS
  358. ,NON_OI_XXX_AS_ON_RETURN
  359. ,NON_OI_XXX_AS_BY_VALUE
  360. ,CALLBACK_NOT_OSF
  361. ,CIRCULAR_INTERFACE_DEPENDENCY
  362. ,NOT_VALID_AS_BASE_INTF
  363. ,IID_IS_NON_POINTER
  364. ,INTF_NON_POINTER
  365. ,PTR_INTF_NO_GUID
  366. ,OUTSIDE_OF_INTERFACE
  367. ,MULTIPLE_INTF_NON_OSF
  368. ,CONFLICTING_INTF_HANDLES
  369. ,IMPLICIT_HANDLE_NON_HANDLE
  370. ,OBJECT_PROC_MUST_BE_WIN32
  371. ,_OBSOLETE_NON_OI_16BIT_CALLBACK
  372. ,NON_OI_TOPLEVEL_FLOAT
  373. ,CTXT_HDL_MUST_BE_DIRECT_RETURN
  374. ,OBJECT_PROC_NON_HRESULT_RETURN
  375. ,DUPLICATE_UUID
  376. ,ILLEGAL_INTERFACE_DERIVATION
  377. ,ILLEGAL_BASE_INTERFACE
  378. ,IID_IS_EXPR_NON_POINTER
  379. ,CALL_AS_NON_LOCAL_PROC
  380. ,CALL_AS_UNSPEC_IN_OBJECT
  381. ,ENCODE_AUTO_HANDLE
  382. ,RPC_PROC_IN_ENCODE
  383. ,ENCODE_CONF_OR_VAR
  384. ,CONST_ON_OUT_PARAM
  385. ,CONST_ON_RETVAL
  386. ,INVALID_USE_OF_RETVAL
  387. ,MULTIPLE_CALLING_CONVENTIONS
  388. ,INAPPROPRIATE_ON_OBJECT_PROC
  389. ,NON_INTF_PTR_PTR_OUT
  390. ,CALL_AS_USED_MULTIPLE_TIMES
  391. ,OBJECT_CALL_AS_LOCAL
  392. ,CODE_NOCODE_CONFLICT
  393. ,MAYBE_NO_OUT_RETVALS
  394. ,FUNC_NON_POINTER
  395. ,FUNC_NON_RPC
  396. ,NON_OI_RETVAL_64BIT
  397. ,MISMATCHED_PRAGMA_POP
  398. ,WRONG_TYPE_IN_STRING_STRUCT
  399. ,NON_OI_NOTIFY
  400. ,HANDLES_WITH_OBJECT
  401. ,NON_ANSI_MULTI_CONF_ARRAY
  402. ,NON_OI_UNION_PARM
  403. ,OBJECT_WITH_VERSION
  404. ,SIZING_ON_FIXED_ARRAYS
  405. ,PICKLING_INVALID_IN_OBJECT
  406. ,TYPE_PICKLING_INVALID_IN_OSF
  407. ,_OBSOLETE_INT_NOT_SUPPORTED_ON_INT16
  408. ,BSTRING_NOT_ON_PLAIN_PTR
  409. ,INVALID_ON_OBJECT_PROC
  410. ,INVALID_ON_OBJECT_INTF
  411. ,STACK_TOO_BIG
  412. ,NO_ATTRS_ON_ACF_TYPEDEF
  413. ,NON_OI_WRONG_CALL_CONV
  414. ,TOO_MANY_DELEGATED_PROCS
  415. ,_OBSOLETE_NO_MAC_AUTO_HANDLES
  416. ,ILLEGAL_IN_MKTYPLIB_MODE
  417. ,ILLEGAL_USE_OF_MKTYPLIB_SYNTAX
  418. ,ILLEGAL_SU_DEFINITION
  419. ,INTF_EXPLICIT_PTR_ATTR
  420. ,_OBSOLETE_NO_OI_ON_MPPC
  421. ,ILLEGAL_EXPRESSION_TYPE
  422. ,ILLEGAL_PIPE_TYPE
  423. ,REQUIRES_OI2
  424. ,ASYNC_REQUIRES_OI2
  425. ,CONFLICTING_OPTIMIZATION_REQUIREMENTS
  426. ,ILLEGAL_PIPE_EMBEDDING
  427. ,ILLEGAL_PIPE_CONTEXT
  428. ,CMD_REQUIRES_I2
  429. ,REQUIRES_I2
  430. ,CMD_REQUIRES_NT40 // unused: needed to get fix MSDN error numbers
  431. ,CMD_REQUIRES_NT351 // unused: needed to get fix MSDN error numbers
  432. ,REQUIRES_NT40 // unused: needed to get fix MSDN error numbers
  433. ,REQUIRES_NT351 // unused: needed to get fix MSDN error numbers
  434. ,CMD_OI1_PHASED_OUT
  435. ,CMD_OI2_OBSOLETE
  436. ,OI1_PHASED_OUT
  437. ,OI2_OBSOLETE
  438. ,ODL_OLD_NEW_OBSOLETE
  439. ,ILLEGAL_ARG_VALUE
  440. ,CONSTANT_TYPE_MISMATCH
  441. ,ENUM_TYPE_MISMATCH
  442. ,UNSATISFIED_FORWARD
  443. ,CONTRADICTORY_SWITCHES
  444. ,NO_SWITCH_IS_HOOKOLE
  445. ,NO_CASE_EXPR
  446. ,USER_MARSHAL_IN_OI
  447. ,PIPES_WITH_PICKLING
  448. ,PIPE_INTF_PTR_PTR
  449. ,IID_WITH_PIPE_INTF_PTR
  450. ,INVALID_LOCALE_ID
  451. ,CONFLICTING_LCID
  452. ,ILLEGAL_IMPORTLIB
  453. ,INVALID_FLOAT
  454. ,INVALID_MEMBER
  455. ,POSSIBLE_INVALID_MEMBER
  456. ,INTERFACE_PIPE_TYPE_MISMATCH
  457. ,PIPE_INCOMPATIBLE_PARAMS
  458. ,ASYNC_NOT_IN
  459. ,OBJECT_ASYNC_NOT_DOUBLE_PTR
  460. ,ASYNC_INCORRECT_TYPE
  461. ,INTERNAL_SWITCH_USED
  462. ,ASYNC_INCORRECT_BINDING_HANDLE
  463. ,ASYNC_INCORRECT_ERROR_STATUS_T
  464. ,NO_LIBRARY
  465. ,INVALID_TYPE_REDEFINITION
  466. ,NOT_VARARG_COMPATIBLE
  467. ,TOO_MANY_PROCS_FOR_NT4
  468. ,TOO_MANY_PROCS
  469. ,OBSOLETE_SWITCH
  470. ,CANNOT_INHERIT_IADVISESINK
  471. ,DEFAULTVALUE_NOT_ALLOWED
  472. ,_OBSOLETE_INVALID_TLB_ENV
  473. ,WARN_TYPELIB_GENERATION
  474. ,OI_STACK_SIZE_EXCEEDED
  475. ,ROBUST_REQUIRES_OICF
  476. ,INCORRECT_RANGE_DEFN
  477. ,ASYNC_INVALID_IN_OUT_PARAM_COMBO
  478. ,_OBSOLETE_PLATFORM_NOT_SUPPORTED
  479. ,OIC_SUPPORT_PHASED_OUT
  480. ,ROBUST_PICKLING_NO_OICF
  481. ,_OBSOLETE_OS_SUPPORT_PHASING_OUT
  482. ,CONFLICTING_ATTRIBUTES
  483. ,NO_CONTEXT_HANDLE
  484. ,FORMAT_STRING_LIMITS
  485. ,EMBEDDED_OPEN_STRUCT
  486. ,STACK_SIZE_TOO_BIG
  487. ,WIN64_INTERPRETED
  488. ,ARRAY_ELEMENT_TOO_BIG
  489. ,INVALID_USE_OF_LCID
  490. ,PRAGMA_SYNTAX_ERROR
  491. ,INVALID_MODE_FOR_INT3264
  492. ,UNSATISFIED_HREF
  493. ,ASYNC_PIPE_BY_REF
  494. ,STACK_FRAME_SIZE_EXCEEDED
  495. ,INVALID_ARRAY_ELEMENT
  496. ,DISPINTERFACE_MEMBERS
  497. ,LOCAL_NO_CALL_AS
  498. ,MULTI_DIM_VECTOR
  499. ,NETMON_REQUIRES_OICF
  500. ,NO_SUPPORT_IN_TLB
  501. ,NO_OLD_INTERPRETER_64B
  502. ,SWITCH_NOT_SUPPORTED_ANYMORE
  503. ,SPAWN_ERROR
  504. ,BAD_CMD_FILE
  505. // new oleautomation attribute sequencing error/warning
  506. ,INAPPLICABLE_OPTIONAL_ATTRIBUTE
  507. ,DEFAULTVALUE_WITH_OPTIONAL
  508. ,OPTIONAL_OUTSIDE_LIBRARY
  509. ,LCID_SHOULD_BE_LONG
  510. ,INVALID_PROP_PARAMS
  511. ,COMMFAULT_PICKLING_NO_OICF
  512. ,INCONSIST_VERSION
  513. ,NO_INTERMEDIATE_FILE
  514. ,FAILED_TO_GENERATE_PARAM
  515. ,FAILED_TO_GENERATE_FIELD
  516. ,FORMAT_STRING_OFFSET_IS_ZERO
  517. ,TYPE_OFFSET_IS_ZERO
  518. ,SAFEARRAY_NOT_SUPPORT_OUTSIDE_TLB
  519. ,FAILED_TO_GENERATE_BIT_FIELD
  520. ,PICKLING_RETVAL_FORCING_OI
  521. ,PICKLING_RETVAL_TO_COMPLEX64
  522. ,WIRE_HAS_FULL_PTR
  523. ,WIRE_NOT_DEFINED_SIZE
  524. ,INVALID_USE_OF_PROPGET
  525. ,UNABLE_TO_OPEN_CMD_FILE
  526. ,IN_TAG_WITHOUT_IN
  527. ,OUT_TAG_WITHOUT_OUT
  528. ,NO_TAGS_FOR_IN_CSTYPE
  529. ,NO_TAGS_FOR_OUT_CSTYPE
  530. ,CSCHAR_EXPR_MUST_BE_SIMPLE
  531. ,SHARED_CSCHAR_EXPR_VAR
  532. ,MSCDECL_INVALID_ALIGN
  533. ,DECLSPEC_ALIGN_IN_LIBRARY
  534. ,ENCAP_UNION_ARM_ALIGN_EXCEEDS_16
  535. ,ILLEGAL_MODIFIERS_BETWEEN_SEUKEYWORD_AND_BRACE
  536. ,TYPE_NOT_SUPPORTED
  537. ,UNSPECIFIED_EMBEDDED_REPRESENT_AS_NOT_SUPPORTED
  538. ,INVALID_PACKING_LEVEL
  539. ,RETURNVAL_TOO_COMPLEX_FORCE_OS
  540. ,NO_CONFORMANT_CSCHAR
  541. ,NO_MULTIDIM_CSCHAR
  542. ,BYTE_COUNT_IN_NDR64
  543. ,SIZE_EXCEEDS_2GB
  544. ,ARRAY_DIMENSIONS_EXCEEDS_255
  545. ,UNSPECIFIED_REP_OR_UMRSHL_IN_NDR64
  546. ,ASYNC_NDR64_ONLY
  547. ,UNSUPPORT_NDR64_FEATURE
  548. ,UNSUPPORTED_LARGE_GENERIC_HANDLE
  549. ,OS_IN_NDR64
  550. ,UNEXPECTED_OS_IN_NDR64
  551. ,NDR64_ONLY_TLB
  552. ,PARTIAL_IGNORE_IN_OUT
  553. ,PARTIAL_IGNORE_UNIQUE
  554. ,PARTIAL_IGNORE_PICKLING
  555. ,PARTIAL_IGNORE_NO_OI
  556. ,PARTIAL_IGNORE_IN_TLB
  557. ,CORRELATION_DERIVES_FROM_IGNORE_POINTER
  558. ,OUT_ONLY_FORCEALLOCATE
  559. ,FORCEALLOCATE_ON_PIPE
  560. ,FORCEALLOCATE_SUPPORTED_IN_OICF_ONLY
  561. ,INVALID_FEATURE_FOR_TARGET
  562. ,SAFEARRAY_IF_OUTSIDE_LIBRARY
  563. ,OLEAUT_NO_CROSSPLATFORM_TLB
  564. ,INVALID_PROPPUT
  565. ,UNSIZED_PARTIAL_IGNORE
  566. ,NOT_DUAL_INTERFACE
  567. ,NEWLYFOUND_INAPPLICABLE_ATTRIBUTE
  568. ,WIRE_COMPAT_WARNING
  569. ,INVALID_VOID_IN_DISPINTERFACE
  570. ,ACF_IN_OBJECT_INTERFACE
  571. ,C_ERR_MAX
  572. // advice messages
  573. ,A_ERR_START = A_ERROR_BASE
  574. ,A_ERR_MAX
  575. // internal errors
  576. ,I_ERR_START = I_ERROR_BASE
  577. ,I_ERR_NO_PEER = I_ERR_START // no more peers(siblings)
  578. ,I_ERR_NO_MEMBER // no more members(children)
  579. ,I_ERR_SYMTABLE_UNDERFLOW // symbol table underflow
  580. ,I_ERR_NULL_OUT_PARAM
  581. ,I_ERR_SYMBOL_NOT_FOUND
  582. ,I_ERR_NO_NEXT_SCOPE
  583. ,I_ERR_NO_PREV_SCOPE
  584. ,I_ERR_INVALID_NODE_TYPE
  585. ,I_ERR_UNEXPECTED_INTERNAL_PROBLEM // from exception handler in main
  586. };
  587. typedef enum _status_t STATUS_T;
  588. #define INDEX_D_ERROR() (0)
  589. #define INDEX_C_ERROR() (D_ERR_MAX - D_ERR_START)
  590. #define INDEX_A_ERROR() (C_ERR_MAX - C_ERR_START) + (D_ERR_MAX - D_ERR_START)
  591. #define INDEX_I_ERROR() (A_ERR_MAX - A_ERR_START) + (C_ERR_MAX - C_ERR_START) + (D_ERR_MAX - D_ERR_START);
  592. #define NOWARN (0)
  593. #define WARN_LEVEL_MAX (4)
  594. #ifdef RPCDEBUG
  595. #define CHECK_ERR(n) n,
  596. #else // RPCDEBUG
  597. #define CHECK_ERR(n)
  598. #endif // RPCDEBUG
  599. extern void RpcError(char *, short, STATUS_T , char *);
  600. extern void ParseError( STATUS_T , char *);
  601. extern void IncrementErrorCount();
  602. // semi-digested error information
  603. class ErrorInfo
  604. {
  605. public:
  606. struct errdb * pErrorRecord;
  607. STATUS_T ErrVal;
  608. ErrorInfo( STATUS_T ErrVal );
  609. int IsRelevant();
  610. void ReportError( char * pszFileName, short Line, char * suffix );
  611. };
  612. #endif // __ERRORS_HXX__