Leaked source code of windows server 2003
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.

99 lines
2.3 KiB

  1. //+---------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. // Copyright (c) Microsoft Corporation. All rights reserved.
  5. //
  6. // File: idlmulti.h
  7. //
  8. // Contents: preprocessor trickery to make our .idl/.tdl files compile
  9. // with MIDL or APBU Mktyplib.
  10. //
  11. // History: 27-May-94 DonCl Created
  12. // 20-Jul-94 ErikGav Remove SDKTOOLS support
  13. //
  14. //----------------------------------------------------------------------------
  15. #ifndef __IDLMULTI_H__
  16. #define __IDLMULTI_H__
  17. #define ENDCOCLASS };
  18. #ifndef __MKTYPLIB__
  19. #define TYPEDEF(guid) \
  20. typedef
  21. #define LOCAL_INTERFACE(guid) \
  22. [ \
  23. local, \
  24. object, \
  25. uuid(guid), \
  26. pointer_default(unique) \
  27. ]
  28. #define REMOTED_INTERFACE(guid) \
  29. [ \
  30. object, \
  31. uuid(guid), \
  32. pointer_default(unique) \
  33. ]
  34. #define BEGINEVENTSET(es) \
  35. eventset es \
  36. { \
  37. #define ENDEVENTSET };
  38. #define COCLASS(name, dispint, events) \
  39. cotype name \
  40. { \
  41. dispinterface dispint; \
  42. eventset events;
  43. #else // __MKTYPLIB__
  44. #define TYPEDEF(guid) typedef [uuid(guid)]
  45. #define cpp_quote(string)
  46. #define const
  47. #define LOCAL_INTERFACE(guid) \
  48. [ \
  49. uuid(guid), \
  50. odl \
  51. ]
  52. #define REMOTED_INTERFACE(guid) \
  53. [ \
  54. uuid(guid), \
  55. odl \
  56. ]
  57. #define BEGINEVENTSET(es) \
  58. dispinterface es \
  59. { \
  60. properties: \
  61. \
  62. methods: \
  63. #define ENDEVENTSET };
  64. #define COCLASS(name, dispint, events) \
  65. coclass name \
  66. { \
  67. [default] dispinterface dispint; \
  68. [source, default] dispinterface events; \
  69. #endif /// MKTYPLIB
  70. #endif // __IDLMULTI_H__