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.

110 lines
2.4 KiB

  1. /*
  2. ** --_entryid.h----------------------------------------------------------------
  3. **
  4. ** Header file describing internal structure of EntryIDs returned
  5. ** by Exchange Address Book provider.
  6. **
  7. **
  8. ** Copyright (c) Microsoft Corp. 1986-1996. All Rights Reserved.
  9. **
  10. ** ----------------------------------------------------------------------------
  11. */
  12. #ifndef _ENTRYID_
  13. #define _ENTRYID_
  14. /*
  15. * The version of this ABPs entryids
  16. */
  17. #define EMS_VERSION 0x000000001
  18. /*
  19. * The version of the entryids supported by the CreateEntry method in this
  20. * ABP.
  21. */
  22. #define NEW_OBJ_EID_VERSION 0x00000002
  23. /*
  24. * Valid values for the entry id's Type field are Mapi Display Types, plus:
  25. */
  26. #define AB_DT_CONTAINER 0x000000100
  27. #define AB_DT_TEMPLATE 0x000000101
  28. #define AB_DT_OOUSER 0x000000102
  29. #define AB_DT_SEARCH 0x000000200
  30. /*
  31. * The EMS ABPs MAPIUID
  32. *
  33. * This MAPIUID must be unique (see the Service Provider Writer's Guide on
  34. * Constructing Entry IDs)
  35. */
  36. #define MUIDEMSAB {0xDC, 0xA7, 0x40, 0xC8, 0xC0, 0x42, 0x10, 0x1A, \
  37. 0xB4, 0xB9, 0x08, 0x00, 0x2B, 0x2F, 0xE1, 0x82}
  38. /*
  39. * Directory entry id structure
  40. *
  41. * This entryid is permanent.
  42. */
  43. #ifdef TEMPLATE_LCID
  44. typedef UNALIGNED struct _dir_entryid
  45. #else
  46. typedef struct _dir_entryid
  47. #endif
  48. {
  49. BYTE abFlags[4];
  50. MAPIUID muid;
  51. ULONG ulVersion;
  52. ULONG ulType;
  53. } DIR_ENTRYID, FAR * LPDIR_ENTRYID;
  54. #define CBDIR_ENTRYID sizeof(DIR_ENTRYID)
  55. /*
  56. * Mail user entry id structure
  57. *
  58. * This entryid is ephemeral.
  59. */
  60. #ifdef TEMPLATE_LCID
  61. typedef UNALIGNED struct _usr_entryid
  62. #else
  63. typedef struct _usr_entryid
  64. #endif
  65. {
  66. BYTE abFlags[4];
  67. MAPIUID muid;
  68. ULONG ulVersion;
  69. ULONG ulType;
  70. DWORD dwEph;
  71. } USR_ENTRYID, FAR * LPUSR_ENTRYID;
  72. /*
  73. * This entryid is permanent.
  74. */
  75. /* turn off the warning for the unsized array */
  76. #pragma warning (disable:4200)
  77. #ifdef TEMPLATE_LCID
  78. typedef UNALIGNED struct _usr_permid
  79. #else
  80. typedef struct _usr_permid
  81. #endif
  82. {
  83. BYTE abFlags[4];
  84. MAPIUID muid;
  85. ULONG ulVersion;
  86. ULONG ulType;
  87. char szAddr[];
  88. } USR_PERMID, FAR * LPUSR_PERMID;
  89. #pragma warning (default:4200)
  90. #define CBUSR_ENTRYID sizeof(USR_ENTRYID)
  91. #define CBUSR_PERMID sizeof(USR_PERMID)
  92. #define EPHEMERAL (UCHAR)(~( MAPI_NOTRECIP \
  93. | MAPI_THISSESSION \
  94. | MAPI_NOW \
  95. | MAPI_NOTRESERVED))
  96. #endif /* _ENTRYID_ */