home *** CD-ROM | disk | FTP | other *** search
/ Team Palmtops 7 / Palmtops_numero07.iso / WinCE / SDKWindowsCE / AutoPC / apcsdk10.exe / data1.cab / Emulation_Include_Files / addrmapi.h < prev    next >
Encoding:
C/C++ Source or Header  |  1999-05-13  |  11.4 KB  |  195 lines

  1. /*++
  2.  
  3. Copyright (c) 1995  Microsoft Corporation
  4.  
  5. Module Name:
  6.  
  7.     addrmapi.h
  8.  
  9. Purpose:
  10.  
  11.     List of properties used in the address book database.
  12.  
  13. --*/
  14.  
  15. #ifndef _ADDRMAPI_
  16. #define _ADDRMAPI_
  17.  
  18. #ifndef HHPR_TAG_ONLY
  19.  
  20. // Here are the MAPI property types, taken from MAPIDEFS.H.
  21. #define MV_FLAG         0x1000                                                  // multi-value flag
  22. #define PT_UNSPECIFIED  ((ULONG)  0)  // (reserved for interface use) type doesn't matter to caller
  23. #define PT_NULL         ((ULONG)  1)                                         // NULL property value
  24. #define PT_I2           ((ULONG)  2)                                         // signed 16-bit value
  25. #define PT_LONG         ((ULONG)  3)                                         // signed 32-bit value
  26. #define PT_R4           ((ULONG)  4)                                       // 4-byte floating point
  27. #define PT_DOUBLE       ((ULONG)  5)                                       // floating point double
  28. #define PT_CURRENCY     ((ULONG)  6) // signed 64-bit int (decimal w/ 4 digits right of decimal pt)
  29. #define PT_APPTIME      ((ULONG)  7)                                            // application time
  30. #define PT_ERROR        ((ULONG) 10)                                          // 32-bit error value
  31. // our store doesn't understand PT_BOOLEAN
  32. //#define PT_BOOLEAN      ((ULONG) 11)                              // 16-bit boolean (non-zero true)
  33. #define PT_OBJECT       ((ULONG) 13)                               // embedded object in a property
  34. #define PT_I8           ((ULONG) 20)                                       // 8-byte signed integer
  35. #define PT_STRING8      ((ULONG) 30)                      // null terminated 8-bit character string
  36. #define PT_UNICODE      ((ULONG) 31)                              // null terminated Unicode string
  37. #define PT_SYSTIME      ((ULONG) 64) // FILETIME 64-bit int (num of 100ns periods since Jan 1,1601)
  38. #define PT_CLSID        ((ULONG) 72)                                                    // OLE GUID
  39. #define PT_BINARY       ((ULONG) 258)                         // uninterpreted (counted byte array)
  40.  
  41. // Alternate property type names for ease of use.
  42. #define PT_BOOLEAN  PT_I2
  43. #define PT_SHORT    PT_I2
  44. #define PT_I4       PT_LONG
  45. #define PT_FLOAT    PT_R4
  46. #define PT_R8       PT_DOUBLE
  47. #define PT_LONGLONG PT_I8
  48.  
  49. // Property Tags.  By convention, MAPI never uses 0 or FFFF as a property ID.  Use as null values,
  50. // initializers, sentinels, or what have you.
  51. #define PROP_TYPE_MASK        ((ULONG)0x0000FFFF)  /* Mask for Property type */
  52. #define PROP_TYPE(ulPropTag)  (((ULONG)(ulPropTag))&PROP_TYPE_MASK)
  53. #define PROP_ID(ulPropTag)    (((ULONG)(ulPropTag))>>16)
  54. #define PROP_TAG(ulPropType,ulPropID)  ((((ULONG)(ulPropID))<<16)|((ULONG)(ulPropType)))
  55. #define PROP_ID_NULL       0
  56. #define PROP_ID_INVALID       0xFFFF
  57. #define PR_NULL               PROP_TAG( PT_NULL, PROP_ID_NULL)
  58. #define CHANGE_PROP_TYPE(ulPropTag, ulPropType) (((ULONG)0xFFFF0000 & ulPropTag) | ulPropType)
  59.  
  60. // Here are properties defined by MAPI, taken from MAPITAGS.H.
  61. #define PR_BODY_W                             PROP_TAG( PT_UNICODE,   0x1000)
  62. #define PR_BUSINESS_FAX_NUMBER_W              PROP_TAG( PT_UNICODE,   0x3A24)
  63. #define PR_BUSINESS_TELEPHONE_NUMBER_W        PROP_TAG( PT_UNICODE,   0x3A08)
  64. #define PR_CALLBACK_TELEPHONE_NUMBER_W        PROP_TAG( PT_UNICODE,   0x3A02)
  65. #define PR_CAR_TELEPHONE_NUMBER_W             PROP_TAG( PT_UNICODE,   0x3A1E)
  66. #define PR_COMPANY_NAME_W                     PROP_TAG( PT_UNICODE,   0x3A16)
  67. #define PR_CONTENT_UNREAD                     PROP_TAG( PT_LONG,      0x3603)
  68. #define PR_CREATION_TIME                      PROP_TAG( PT_SYSTIME,   0x3007)
  69. #define PR_DEPARTMENT_NAME_W                  PROP_TAG( PT_UNICODE,   0x3A18)
  70. #define PR_DISPLAY_BCC_W                      PROP_TAG( PT_UNICODE,   0x0E02)
  71. #define PR_DISPLAY_CC_W                       PROP_TAG( PT_UNICODE,   0x0E03)
  72. #define PR_DISPLAY_TO_W                       PROP_TAG( PT_UNICODE,   0x0E04)
  73. #define PR_GENERATION_W                       PROP_TAG( PT_UNICODE,   0x3A05)
  74. #define PR_GIVEN_NAME_W                       PROP_TAG( PT_UNICODE,   0x3A06)
  75. #ifdef JAPAN
  76. #define PR_YOMI_FIRSTNAME_W                   PROP_TAG( PT_UNICODE,   0x4011)
  77. #endif //JAPAN
  78. #define PR_GOVERNMENT_ID_NUMBER_W             PROP_TAG( PT_UNICODE,   0x3A07)
  79. #define PR_HOME2_TELEPHONE_NUMBER_W           PROP_TAG( PT_UNICODE,   0x3A2F)
  80. #define PR_HOME_FAX_NUMBER_W                  PROP_TAG( PT_UNICODE,   0x3A25)
  81. #define PR_HOME_TELEPHONE_NUMBER_W            PROP_TAG( PT_UNICODE,   0x3A09)
  82. #define PR_IMPORTANCE                         PROP_TAG( PT_LONG,      0x0017)
  83. #define PR_KEYWORD_W                          PROP_TAG( PT_UNICODE,   0x3A0B)
  84. #define PR_LAST_MODIFICATION_TIME             PROP_TAG( PT_SYSTIME,   0x3008)
  85. #define PR_MESSAGE_DELIVERY_TIME              PROP_TAG( PT_SYSTIME,   0x0E06)
  86. #define PR_MESSAGE_FLAGS                      PROP_TAG( PT_LONG,      0x0E07)
  87. #define PR_MESSAGE_SIZE                       PROP_TAG( PT_LONG,      0x0E08)
  88. #define PR_MOBILE_TELEPHONE_NUMBER_W          PROP_TAG( PT_UNICODE,   0x3A1C)
  89. #define PR_CELLULAR_TELEPHONE_NUMBER_W        PR_MOBILE_TELEPHONE_NUMBER_W
  90. #define PR_RADIO_TELEPHONE_NUMBER_W           PROP_TAG( PT_UNICODE,   0x3A1D)
  91. #define PR_OFFICE_LOCATION_W                  PROP_TAG( PT_UNICODE,   0x3A19)
  92. #define PR_OFFICE_TELEPHONE_NUMBER_W          PR_BUSINESS_TELEPHONE_NUMBER_W
  93. #define PR_OTHER_TELEPHONE_NUMBER_W           PROP_TAG( PT_UNICODE,   0x3A1F)
  94. #define PR_PRIMARY_FAX_NUMBER_W               PROP_TAG( PT_UNICODE,   0x3A23)
  95. #define PR_PRIMARY_TELEPHONE_NUMBER_W         PROP_TAG( PT_UNICODE,   0x3A1A)
  96. #define PR_PRIORITY                           PROP_TAG( PT_LONG,      0x0026)
  97. #define PR_REPLY_RECIPIENT_NAMES_W            PROP_TAG( PT_UNICODE,   0x0050)
  98. #define PR_REPLY_REQUESTED                    PROP_TAG( PT_BOOLEAN,   0x0C17)
  99. #define PR_REPLY_TIME                         PROP_TAG( PT_SYSTIME,   0x0030)
  100. #define PR_RESPONSE_REQUESTED                 PROP_TAG( PT_BOOLEAN,   0x0063)
  101. #define PR_SECURITY                           PROP_TAG( PT_LONG,      0x0034)
  102. #define PR_SENSITIVITY                        PROP_TAG( PT_LONG,      0x0036)
  103. #define PR_SUBJECT_W                          PROP_TAG( PT_UNICODE,   0x0037)
  104. #define PR_SURNAME_W                          PROP_TAG( PT_UNICODE,   0x3A11)
  105. #ifdef JAPAN
  106. #define PR_YOMI_LASTNAME_W                    PROP_TAG( PT_UNICODE,   0x4010)
  107. #endif //JAPAN
  108. #define PR_TELEX_NUMBER_W                     PROP_TAG( PT_UNICODE,   0x3A2C)
  109. #define PR_TITLE_W                            PROP_TAG( PT_UNICODE,   0x3A17)
  110.  
  111. #endif  // HHPR_TAG_ONLY
  112.  
  113. // Here are our property tags.  Note that we use the MAPI tags when they are defined, otherwise we
  114. // use the MAPI dispid's, which are store-specific.  The numbers used here (8xxx) were obtained by
  115. // examining the MAPI database entries created by Ren.  For these we rely on replication to do the
  116. // appropriate conversions.  Note also that we use the _W form of their string properties, as we
  117. // are a unicode system.  Your mileage may vary.
  118.  
  119. typedef ULONG HHPRTAG;                                                    // this is a property tag
  120.  
  121. // Please do NOT use PT_BOOLEAN, use PEGVT_I2 instead. because this file is shared by both
  122. // pegasus and desktop (which uses MAPI with a different valued PT_BOOLEAN) replication.
  123.  
  124. #define HHPR_ANNIVERSARY                      PROP_TAG(PT_SYSTIME, 0x4003)
  125. #define HHPR_ASSISTANT_NAME                   PROP_TAG(PT_UNICODE, 0x4002)
  126. #define HHPR_ASSISTANT_TELEPHONE_NUMBER       PROP_TAG(PT_UNICODE, 0x4004)
  127. #define HHPR_BIRTHDAY                         PROP_TAG(PT_SYSTIME, 0x4001)
  128. #define HHPR_BUSINESS_FAX_NUMBER              PR_BUSINESS_FAX_NUMBER_W
  129. #define HHPR_CAR_TELEPHONE_NUMBER             PR_CAR_TELEPHONE_NUMBER_W
  130. #define HHPR_CATEGORY                         PROP_TAG(PT_UNICODE, 0x4005)
  131. #define HHPR_CHILDREN_NAME                    PROP_TAG(PT_UNICODE, 0x4006)
  132. #define HHPR_COMPANY_NAME                     PR_COMPANY_NAME_W
  133. #define HHPR_CUSTOM_DISPLAY_FIELDS            PROP_TAG(PT_UNICODE, 0x4317)  //$$BUGBUG -- this should stay 4317, not 8317
  134. // 10 so far
  135. #define HHPR_DEPARTMENT_NAME                  PR_DEPARTMENT_NAME_W
  136. #define HHPR_EMAIL1_EMAIL_ADDRESS             PROP_TAG(PT_UNICODE, 0x4083)
  137. #define HHPR_EMAIL2_EMAIL_ADDRESS             PROP_TAG(PT_UNICODE, 0x4093)
  138. #define HHPR_EMAIL3_EMAIL_ADDRESS             PROP_TAG(PT_UNICODE, 0x40A3)
  139. #define HHPR_GENERATION                       PR_GENERATION_W
  140. #define HHPR_GIVEN_NAME                       PR_GIVEN_NAME_W
  141. #ifdef JAPAN
  142. #define HHPR_YOMI_FIRSTNAME                   PR_YOMI_FIRSTNAME_W
  143. #endif //JAPAN
  144. #define HHPR_HOME2_TELEPHONE_NUMBER           PR_HOME2_TELEPHONE_NUMBER_W
  145. #define HHPR_HOME_ADDRESS_CITY                PROP_TAG(PT_UNICODE, 0x4041)
  146. #define HHPR_HOME_ADDRESS_COUNTRY             PROP_TAG(PT_UNICODE, 0x4044)
  147. #define HHPR_HOME_ADDRESS_POSTAL_CODE         PROP_TAG(PT_UNICODE, 0x4043)
  148. // 20 so far
  149. #define HHPR_HOME_ADDRESS_STATE               PROP_TAG(PT_UNICODE, 0x4042)
  150. #define HHPR_HOME_ADDRESS_STREET              PROP_TAG(PT_UNICODE, 0x4040)
  151. #define HHPR_HOME_FAX_NUMBER                  PR_HOME_FAX_NUMBER_W
  152. #define HHPR_HOME_TELEPHONE_NUMBER            PR_HOME_TELEPHONE_NUMBER_W
  153. #define HHPR_MIDDLE_NAME                      PROP_TAG(PT_UNICODE, 0x4024)
  154. #define HHPR_MOBILE_TELEPHONE_NUMBER          PR_MOBILE_TELEPHONE_NUMBER_W
  155. #define HHPR_NAME_PREFIX                      PROP_TAG(PT_UNICODE, 0x4023)
  156. #define HHPR_NOTES                            PR_BODY_W
  157. #define HHPR_OFFICE_ADDRESS_CITY              PROP_TAG(PT_UNICODE, 0x4046)
  158. #define HHPR_OFFICE_ADDRESS_COUNTRY           PROP_TAG(PT_UNICODE, 0x4049)
  159. // 30 so far
  160. #define HHPR_OFFICE_ADDRESS_POSTAL_CODE       PROP_TAG(PT_UNICODE, 0x4048)
  161. #define HHPR_OFFICE_ADDRESS_STATE             PROP_TAG(PT_UNICODE, 0x4047)
  162. #define HHPR_OFFICE_ADDRESS_STREET            PROP_TAG(PT_UNICODE, 0x4045)
  163. #define HHPR_OFFICE_LOCATION                  PR_OFFICE_LOCATION_W
  164. #define HHPR_OFFICE_TELEPHONE_NUMBER          PR_OFFICE_TELEPHONE_NUMBER_W
  165. #define HHPR_OFFICE2_TELEPHONE_NUMBER         PROP_TAG(PT_UNICODE, 0x4007)
  166. #define HHPR_OTHER_ADDRESS_CITY               PROP_TAG(PT_UNICODE, 0x404B)
  167. #define HHPR_OTHER_ADDRESS_COUNTRY            PROP_TAG(PT_UNICODE, 0x404E)
  168. #define HHPR_OTHER_ADDRESS_POSTAL_CODE        PROP_TAG(PT_UNICODE, 0x404D)
  169. #define HHPR_OTHER_ADDRESS_STATE              PROP_TAG(PT_UNICODE, 0x404C)
  170. // 40 so far
  171. #define HHPR_OTHER_ADDRESS_STREET             PROP_TAG(PT_UNICODE, 0x404A)
  172. #define HHPR_PAGER_NUMBER                     PROP_TAG(PT_UNICODE, 0x4009)
  173. #define HHPR_SPOUSE_NAME                      PROP_TAG(PT_UNICODE, 0x400a)
  174. #define HHPR_SURNAME                          PR_SURNAME_W
  175. #ifdef JAPAN
  176. #define HHPR_YOMI_LASTNAME                    PR_YOMI_LASTNAME_W
  177. #endif //JAPAN
  178. #define HHPR_TITLE                            PR_TITLE_W
  179. #define HHPR_WEB_PAGE                         PROP_TAG(PT_UNICODE, 0x4008)
  180. #define HHPR_RADIO_TELEPHONE_NUMBER           PR_RADIO_TELEPHONE_NUMBER_W
  181. #ifdef JAPAN
  182. #define HHPR_YOMI_NAME                           PROP_TAG(PT_UNICODE, 0x4011)
  183. #define HHPR_YOMI_COMPANY                      PROP_TAG(PT_UNICODE, 0x4012)
  184. #define HHPR_YOMI_SORT                          PROP_TAG(PT_UNICODE, 0x8318) // BUGBUG: How do I choose this correctly
  185. #endif
  186. #define HHPR_FILEAS                           PROP_TAG(PT_UNICODE, 0x4013)
  187.  
  188. #ifdef JAPAN
  189. #define HHAB_CARD_NUMPROPS          54
  190. #else
  191. #define HHAB_CARD_NUMPROPS          50
  192. #endif
  193.  
  194. #endif
  195.