home *** CD-ROM | disk | FTP | other *** search
/ Magazyn Internet 2000 May / MICD_2000_05.iso / CBuilder5 / INSTALL / DATA1.CAB / Program_Built_Files / Include / _entryid.h < prev    next >
C/C++ Source or Header  |  2000-02-01  |  3KB  |  113 lines

  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.  
  13. #ifndef _ENTRYID_
  14. #pragma option push -b -a8 -pc -A- /*P_O_Push*/
  15. #define _ENTRYID_
  16.  
  17. /*
  18.  *  The version of this ABPs entryids
  19.  */
  20. #define EMS_VERSION         0x000000001
  21.  
  22. /*
  23.  * The version of the entryids supported by the CreateEntry method in this 
  24.  * ABP.
  25.  */
  26. #define NEW_OBJ_EID_VERSION 0x00000002
  27.  
  28. /*
  29.  *  Valid values for the entry id's Type field are Mapi Display Types, plus:
  30.  */
  31. #define AB_DT_CONTAINER     0x000000100
  32. #define AB_DT_TEMPLATE      0x000000101
  33. #define AB_DT_OOUSER        0x000000102
  34. #define AB_DT_SEARCH        0x000000200
  35.  
  36. /*
  37.  *  The EMS ABPs MAPIUID
  38.  *
  39.  *  This MAPIUID must be unique (see the Service Provider Writer's Guide on
  40.  *  Constructing Entry IDs)
  41.  */
  42. #define MUIDEMSAB {0xDC, 0xA7, 0x40, 0xC8, 0xC0, 0x42, 0x10, 0x1A, \
  43.                0xB4, 0xB9, 0x08, 0x00, 0x2B, 0x2F, 0xE1, 0x82}
  44.  
  45. /*
  46.  *  Directory entry id structure
  47.  *
  48.  *  This entryid is permanent.
  49.  */
  50. #ifdef TEMPLATE_LCID
  51. typedef UNALIGNED struct _dir_entryid
  52. #else
  53. typedef struct _dir_entryid
  54. #endif
  55. {
  56.     BYTE abFlags[4];
  57.     MAPIUID muid;
  58.     ULONG ulVersion;
  59.     ULONG ulType;
  60. } DIR_ENTRYID, FAR * LPDIR_ENTRYID;
  61.  
  62. #define CBDIR_ENTRYID sizeof(DIR_ENTRYID)
  63.  
  64. /*
  65.  *  Mail user entry id structure
  66.  *
  67.  *  This entryid is ephemeral.
  68.  */
  69. #ifdef TEMPLATE_LCID
  70. typedef UNALIGNED struct _usr_entryid
  71. #else
  72. typedef struct _usr_entryid
  73. #endif
  74. {
  75.     BYTE abFlags[4];
  76.     MAPIUID muid;
  77.     ULONG ulVersion;
  78.     ULONG ulType;
  79.     DWORD dwEph;
  80. } USR_ENTRYID, FAR * LPUSR_ENTRYID;
  81.  
  82. /*
  83.  *  This entryid is permanent.
  84.  */
  85. /* turn off the warning for the unsized array */
  86. #pragma warning (disable:4200)
  87. #ifdef TEMPLATE_LCID
  88. typedef UNALIGNED struct _usr_permid
  89. #else
  90. typedef struct _usr_permid
  91. #endif
  92. {
  93.     BYTE abFlags[4];
  94.     MAPIUID muid;
  95.     ULONG ulVersion;
  96.     ULONG ulType;
  97.     char  szAddr[];
  98. } USR_PERMID, FAR * LPUSR_PERMID;
  99. #pragma warning (default:4200)
  100.  
  101. #define CBUSR_ENTRYID sizeof(USR_ENTRYID)
  102. #define CBUSR_PERMID sizeof(USR_PERMID)
  103.  
  104. #define EPHEMERAL   (UCHAR)(~(  MAPI_NOTRECIP      \
  105.                               | MAPI_THISSESSION   \
  106.                               | MAPI_NOW           \
  107.                               | MAPI_NOTRESERVED))
  108.  
  109.  
  110. #pragma option pop /*P_O_Pop*/
  111. #endif  /* _ENTRYID_ */
  112.  
  113.