mapiext.h 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808
  1. /*
  2. * Copyright 2005 - 2016 Zarafa and its licensors
  3. *
  4. * This program is free software: you can redistribute it and/or modify
  5. * it under the terms of the GNU Affero General Public License, version 3,
  6. * as published by the Free Software Foundation.
  7. *
  8. * This program is distributed in the hope that it will be useful,
  9. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. * GNU Affero General Public License for more details.
  12. *
  13. * You should have received a copy of the GNU Affero General Public License
  14. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  15. *
  16. */
  17. //////////////////////////////////////////////
  18. // Extended mapi definitions
  19. #ifndef ECMAPIEXT_H
  20. #define ECMAPIEXT_H
  21. #ifndef MAPI_E_STORE_FULL
  22. #define MAPI_E_STORE_FULL (SCODE)0x8004060c
  23. #endif
  24. #ifndef PR_ATTACH_CONTENT_ID
  25. #define PR_ATTACH_CONTENT_ID (PROP_TAG(PT_TSTRING,0x3712))
  26. #endif
  27. #ifndef PR_ATTACH_CONTENT_ID_A
  28. #define PR_ATTACH_CONTENT_ID_A (PROP_TAG(PT_STRING8,0x3712))
  29. #endif
  30. #ifndef PR_ATTACH_CONTENT_ID_W
  31. #define PR_ATTACH_CONTENT_ID_W (PROP_TAG(PT_UNICODE,0x3712))
  32. #endif
  33. #ifndef PR_ATTACH_CONTENT_LOCATION
  34. #define PR_ATTACH_CONTENT_LOCATION (PROP_TAG(PT_TSTRING,0x3713))
  35. #endif
  36. #ifndef PR_ATTACH_CONTENT_LOCATION_A
  37. #define PR_ATTACH_CONTENT_LOCATION_A (PROP_TAG(PT_STRING8,0x3713))
  38. #endif
  39. #ifndef PR_ATTACH_CONTENT_LOCATION_W
  40. #define PR_ATTACH_CONTENT_LOCATION_W (PROP_TAG(PT_UNICODE,0x3713))
  41. #endif
  42. #ifndef PR_USER_X509_CERTIFICATE
  43. #define PR_USER_X509_CERTIFICATE (PROP_TAG(PT_MV_BINARY,0x3a70))
  44. #endif
  45. // it seems this is not a named prop?!
  46. #ifndef PR_EMS_AB_X509_CERT
  47. #define PR_EMS_AB_X509_CERT PROP_TAG(PT_MV_BINARY, 0x8c6a)
  48. #endif
  49. #ifndef PR_NT_SECURITY_DESCRIPTOR
  50. #define PR_NT_SECURITY_DESCRIPTOR (PROP_TAG(PT_BINARY,0x0E27))
  51. #endif
  52. #ifndef PR_BODY_HTML
  53. #define PR_BODY_HTML (PROP_TAG(PT_TSTRING,0x1013))
  54. #endif
  55. #ifndef PR_INTERNET_MESSAGE_ID
  56. #define PR_INTERNET_MESSAGE_ID PROP_TAG(PT_TSTRING, 0x1035)
  57. #endif
  58. #ifndef PR_INTERNET_MESSAGE_ID_A
  59. #define PR_INTERNET_MESSAGE_ID_A PROP_TAG(PT_STRING8, 0x1035)
  60. #endif
  61. #ifndef PR_INTERNET_MESSAGE_ID_W
  62. #define PR_INTERNET_MESSAGE_ID_W PROP_TAG(PT_UNICODE, 0x1035)
  63. #endif
  64. //Same as PR_INBOUND_NEWSFEED_DN
  65. //#ifndef PR_RULE_VERSION
  66. //#define PR_RULE_VERSION PROP_TAG( PT_I2, 0x668D)
  67. //#endif
  68. //#ifndef PR_STORE_SLOWLINK
  69. //#define PR_STORE_SLOWLINK PROP_TAG( PT_BOOLEAN, 0x7c0a)
  70. //#endif
  71. #ifndef PR_SMTP_ADDRESS
  72. #define PR_SMTP_ADDRESS PROP_TAG(PT_TSTRING,0x39FE)
  73. #endif
  74. #ifndef PR_SMTP_ADDRESS_A
  75. #define PR_SMTP_ADDRESS_A PROP_TAG(PT_STRING8,0x39FE)
  76. #endif
  77. #ifndef PR_SMTP_ADDRESS_W
  78. #define PR_SMTP_ADDRESS_W PROP_TAG(PT_UNICODE,0x39FE)
  79. #endif
  80. #ifndef PR_DEF_POST_MSGCLASS
  81. #define PR_DEF_POST_MSGCLASS PROP_TAG(PT_TSTRING, 0x36E5)
  82. #endif
  83. #ifndef PR_DEF_POST_MSGCLASS_A
  84. #define PR_DEF_POST_MSGCLASS_A PROP_TAG(PT_STRING8, 0x36E5)
  85. #endif
  86. #ifndef PR_DEF_POST_MSGCLASS_W
  87. #define PR_DEF_POST_MSGCLASS_W PROP_TAG(PT_UNICODE, 0x36E5)
  88. #endif
  89. #ifndef PR_DEF_POST_DISPLAYNAME
  90. #define PR_DEF_POST_DISPLAYNAME PROP_TAG(PT_TSTRING, 0x36E6)
  91. #endif
  92. #ifndef PR_DEF_POST_DISPLAYNAME_A
  93. #define PR_DEF_POST_DISPLAYNAME_A PROP_TAG(PT_STRING8, 0x36E6)
  94. #endif
  95. #ifndef PR_DEF_POST_DISPLAYNAME_W
  96. #define PR_DEF_POST_DISPLAYNAME_W PROP_TAG(PT_UNICODE, 0x36E6)
  97. #endif
  98. #ifndef PR_INTERNET_ARTICLE_NUMBER
  99. #define PR_INTERNET_ARTICLE_NUMBER PROP_TAG(PT_LONG, 0x0E23)
  100. #endif
  101. #ifndef PR_FREEBUSY_ENTRYIDS
  102. #define PR_FREEBUSY_ENTRYIDS PROP_TAG(PT_MV_BINARY, 0x36E4)
  103. #endif
  104. //in the msdn, but left out of mapitags.h
  105. #ifndef PR_SEND_INTERNET_ENCODING
  106. #define PR_SEND_INTERNET_ENCODING PROP_TAG(PT_LONG, 0x3A71)
  107. #endif
  108. #ifndef PR_RECIPIENT_TRACKSTATUS
  109. #define PR_RECIPIENT_TRACKSTATUS PROP_TAG(PT_LONG, 0x5FFF)
  110. #endif
  111. #ifndef PR_RECIPIENT_FLAGS
  112. #define PR_RECIPIENT_FLAGS PROP_TAG(PT_LONG, 0x5FFD)
  113. #endif
  114. #ifndef PR_RECIPIENT_ENTRYID
  115. #define PR_RECIPIENT_ENTRYID PROP_TAG(PT_BINARY, 0x5FF7)
  116. #endif
  117. #ifndef PR_RECIPIENT_DISPLAY_NAME
  118. #define PR_RECIPIENT_DISPLAY_NAME PROP_TAG(PT_TSTRING, 0x5FF6)
  119. #endif
  120. #ifndef PR_RECIPIENT_DISPLAY_NAME_A
  121. #define PR_RECIPIENT_DISPLAY_NAME_A PROP_TAG(PT_STRING8, 0x5FF6)
  122. #endif
  123. #ifndef PR_RECIPIENT_DISPLAY_NAME_W
  124. #define PR_RECIPIENT_DISPLAY_NAME_W PROP_TAG(PT_UNICODE, 0x5FF6)
  125. #endif
  126. #ifndef PR_ICON_INDEX
  127. #define PR_ICON_INDEX PROP_TAG(PT_LONG, 0x1080)
  128. #endif
  129. #ifndef PR_OST_OSTID
  130. #define PR_OST_OSTID PROP_TAG(PT_BINARY, 0x7c04)
  131. #endif
  132. #ifndef PR_OFFLINE_FOLDER
  133. #define PR_OFFLINE_FOLDER PROP_TAG(PT_BINARY, 0x7c05)
  134. #endif
  135. #ifndef PR_FAV_DISPLAY_NAME
  136. #define PR_FAV_DISPLAY_NAME PROP_TAG(PT_TSTRING, 0x7C00)
  137. #endif
  138. #ifndef PR_FAV_DISPLAY_NAME_A
  139. #define PR_FAV_DISPLAY_NAME_A PROP_TAG(PT_STRING8, 0x7C00)
  140. #endif
  141. #ifndef PR_FAV_DISPLAY_NAME_W
  142. #define PR_FAV_DISPLAY_NAME_W PROP_TAG(PT_UNICODE, 0x7C00)
  143. #endif
  144. #ifndef PR_FAV_DISPLAY_ALIAS
  145. #define PR_FAV_DISPLAY_ALIAS PROP_TAG(PT_TSTRING, 0x7C01)
  146. #endif
  147. #ifndef PR_FAV_DISPLAY_ALIAS_A
  148. #define PR_FAV_DISPLAY_ALIAS_A PROP_TAG(PT_STRING8, 0x7C01)
  149. #endif
  150. #ifndef PR_FAV_DISPLAY_ALIAS_W
  151. #define PR_FAV_DISPLAY_ALIAS_W PROP_TAG(PT_UNICODE, 0x7C01)
  152. #endif
  153. #ifndef PR_FAV_PUBLIC_SOURCE_KEY
  154. #define PR_FAV_PUBLIC_SOURCE_KEY PROP_TAG(PT_BINARY, 0x7C02)
  155. #endif
  156. #ifndef PR_FAV_AUTOSUBFOLDERS
  157. #define PR_FAV_AUTOSUBFOLDERS PROP_TAG(PT_LONG, 0x7d01)
  158. #endif
  159. #ifndef PR_FAV_PARENT_SOURCE_KEY
  160. #define PR_FAV_PARENT_SOURCE_KEY PROP_TAG(PT_BINARY, 0x7d02)
  161. #endif
  162. #ifndef PR_FAV_LEVEL_MASK
  163. #define PR_FAV_LEVEL_MASK PROP_TAG(PT_LONG, 0x7D03)
  164. #endif
  165. #ifndef PR_FAV_KNOWN_SUBS
  166. #define PR_FAV_KNOWN_SUBS PROP_TAG(PT_BINARY, 0x7D04)
  167. #endif
  168. #ifndef PR_FAV_GUID_MAP
  169. #define PR_FAV_GUID_MAP PROP_TAG(PT_BINARY, 0x7D05)
  170. #endif
  171. #ifndef PR_FAV_KNOWN_DELS_OLD
  172. #define PR_FAV_KNOWN_DELS_OLD PROP_TAG(PT_BINARY, 0x7D06)
  173. #endif
  174. #ifndef PR_FAV_INHERIT_AUTO
  175. #define PR_FAV_INHERIT_AUTO PROP_TAG(PT_LONG, 0x7d07)
  176. #endif
  177. #ifndef PR_FAV_DEL_SUBS
  178. #define PR_FAV_DEL_SUBS PROP_TAG(PT_BINARY, 0x7D08)
  179. #endif
  180. #ifndef PR_FAV_CONTAINER_CLASS
  181. #define PR_FAV_CONTAINER_CLASS PROP_TAG(PT_TSTRING, 0x7D09)
  182. #endif
  183. #ifndef PR_FAV_CONTAINER_CLASS_A
  184. #define PR_FAV_CONTAINER_CLASS_A PROP_TAG(PT_STRING8, 0x7D09)
  185. #endif
  186. #ifndef PR_FAV_CONTAINER_CLASS_W
  187. #define PR_FAV_CONTAINER_CLASS_W PROP_TAG(PT_UNICODE, 0x7D09)
  188. #endif
  189. #ifndef PR_IN_REPLY_TO_ID
  190. #define PR_IN_REPLY_TO_ID PROP_TAG(PT_TSTRING, 0x1042)
  191. #endif
  192. #ifndef PR_IN_REPLY_TO_ID_A
  193. #define PR_IN_REPLY_TO_ID_A PROP_TAG(PT_STRING8, 0x1042)
  194. #endif
  195. #ifndef PR_IN_REPLY_TO_ID_W
  196. #define PR_IN_REPLY_TO_ID_W PROP_TAG(PT_UNICODE, 0x1042)
  197. #endif
  198. #ifndef PR_ATTACH_FLAGS
  199. #define PR_ATTACH_FLAGS PROP_TAG(PT_LONG, 0x3714)
  200. #endif
  201. #ifndef PR_ATTACHMENT_LINKID
  202. #define PR_ATTACHMENT_LINKID PROP_TAG(PT_LONG, 0x7FFA)
  203. #endif
  204. #ifndef PR_EXCEPTION_STARTTIME
  205. #define PR_EXCEPTION_STARTTIME PROP_TAG(PT_SYSTIME, 0x7FFB)
  206. #endif
  207. #ifndef PR_EXCEPTION_ENDTIME
  208. #define PR_EXCEPTION_ENDTIME PROP_TAG(PT_SYSTIME, 0x7FFC)
  209. #endif
  210. #ifndef PR_EXCEPTION_REPLACETIME
  211. #define PR_EXCEPTION_REPLACETIME PROP_TAG(PT_SYSTIME, 0x7FF9)
  212. #endif
  213. #ifndef PR_ATTACHMENT_FLAGS
  214. #define PR_ATTACHMENT_FLAGS PROP_TAG(PT_LONG, 0x7FFD)
  215. #endif
  216. #ifndef PR_ATTACHMENT_HIDDEN
  217. #define PR_ATTACHMENT_HIDDEN PROP_TAG(PT_BOOLEAN, 0x7FFE)
  218. #endif
  219. #ifndef PR_ATTACHMENT_CONTACTPHOTO
  220. #define PR_ATTACHMENT_CONTACTPHOTO PROP_TAG(PT_BOOLEAN, 0x7FFF)
  221. #endif
  222. #ifndef PR_CONFLICT_ITEMS
  223. #define PR_CONFLICT_ITEMS PROP_TAG(PT_MV_BINARY,0x1098)
  224. #endif
  225. #ifndef PR_INTERNET_APPROVED
  226. #define PR_INTERNET_APPROVED PROP_TAG(PT_TSTRING,0x1030)
  227. #endif
  228. #ifndef PR_INTERNET_APPROVED_A
  229. #define PR_INTERNET_APPROVED_A PROP_TAG(PT_STRING8,0x1030)
  230. #endif
  231. #ifndef PR_INTERNET_APPROVED_W
  232. #define PR_INTERNET_APPROVED_W PROP_TAG(PT_UNICODE,0x1030)
  233. #endif
  234. #ifndef PR_INTERNET_CONTROL
  235. #define PR_INTERNET_CONTROL PROP_TAG(PT_TSTRING,0x1031)
  236. #endif
  237. #ifndef PR_INTERNET_CONTROL_A
  238. #define PR_INTERNET_CONTROL_A PROP_TAG(PT_STRING8,0x1031)
  239. #endif
  240. #ifndef PR_INTERNET_CONTROL_W
  241. #define PR_INTERNET_CONTROL_W PROP_TAG(PT_UNICODE,0x1031)
  242. #endif
  243. #ifndef PR_INTERNET_DISTRIBUTION
  244. #define PR_INTERNET_DISTRIBUTION PROP_TAG(PT_TSTRING,0x1032)
  245. #endif
  246. #ifndef PR_INTERNET_DISTRIBUTION_A
  247. #define PR_INTERNET_DISTRIBUTION_A PROP_TAG(PT_STRING8,0x1032)
  248. #endif
  249. #ifndef PR_INTERNET_DISTRIBUTION_W
  250. #define PR_INTERNET_DISTRIBUTION_W PROP_TAG(PT_UNICODE,0x1032)
  251. #endif
  252. #ifndef PR_INTERNET_FOLLOWUP_TO
  253. #define PR_INTERNET_FOLLOWUP_TO PROP_TAG(PT_TSTRING,0x1033)
  254. #endif
  255. #ifndef PR_INTERNET_FOLLOWUP_TO_A
  256. #define PR_INTERNET_FOLLOWUP_TO_A PROP_TAG(PT_STRING8,0x1033)
  257. #endif
  258. #ifndef PR_INTERNET_FOLLOWUP_TO_W
  259. #define PR_INTERNET_FOLLOWUP_TO_W PROP_TAG(PT_UNICODE,0x1033)
  260. #endif
  261. #ifndef PR_INTERNET_LINES
  262. #define PR_INTERNET_LINES PROP_TAG(PT_LONG,0x1034)
  263. #endif
  264. #ifndef PR_INTERNET_NEWSGROUPS
  265. #define PR_INTERNET_NEWSGROUPS PROP_TAG(PT_TSTRING,0x1036)
  266. #endif
  267. #ifndef PR_INTERNET_NEWSGROUPS_A
  268. #define PR_INTERNET_NEWSGROUPS_A PROP_TAG(PT_STRING8,0x1036)
  269. #endif
  270. #ifndef PR_INTERNET_NEWSGROUPS_W
  271. #define PR_INTERNET_NEWSGROUPS_W PROP_TAG(PT_UNICODE,0x1036)
  272. #endif
  273. #ifndef PR_INTERNET_NNTP_PATH
  274. #define PR_INTERNET_NNTP_PATH PROP_TAG(PT_TSTRING,0x1038)
  275. #endif
  276. #ifndef PR_INTERNET_NNTP_PATH_A
  277. #define PR_INTERNET_NNTP_PATH_A PROP_TAG(PT_STRING8,0x1038)
  278. #endif
  279. #ifndef PR_INTERNET_NNTP_PATH_W
  280. #define PR_INTERNET_NNTP_PATH_W PROP_TAG(PT_UNICODE,0x1038)
  281. #endif
  282. #ifndef PR_INTERNET_ORGANIZATION
  283. #define PR_INTERNET_ORGANIZATION PROP_TAG(PT_TSTRING,0x1037)
  284. #endif
  285. #ifndef PR_INTERNET_ORGANIZATION_A
  286. #define PR_INTERNET_ORGANIZATION_A PROP_TAG(PT_STRING8,0x1037)
  287. #endif
  288. #ifndef PR_INTERNET_ORGANIZATION_W
  289. #define PR_INTERNET_ORGANIZATION_W PROP_TAG(PT_UNICODE,0x1037)
  290. #endif
  291. #ifndef PR_INTERNET_PRECEDENCE
  292. #define PR_INTERNET_PRECEDENCE PROP_TAG(PT_TSTRING,0x1041)
  293. #endif
  294. #ifndef PR_INTERNET_PRECEDENCE_A
  295. #define PR_INTERNET_PRECEDENCE_A PROP_TAG(PT_STRING8,0x1041)
  296. #endif
  297. #ifndef PR_INTERNET_PRECEDENCE_W
  298. #define PR_INTERNET_PRECEDENCE_W PROP_TAG(PT_UNICODE,0x1041)
  299. #endif
  300. #ifndef PR_INTERNET_REFERENCES
  301. #define PR_INTERNET_REFERENCES PROP_TAG(PT_TSTRING,0x1039)
  302. #endif
  303. #ifndef PR_INTERNET_REFERENCES_A
  304. #define PR_INTERNET_REFERENCES_A PROP_TAG(PT_STRING8,0x1039)
  305. #endif
  306. #ifndef PR_INTERNET_REFERENCES_W
  307. #define PR_INTERNET_REFERENCES_W PROP_TAG(PT_UNICODE,0x1039)
  308. #endif
  309. #ifndef UNICODE_NEWSGROUP_NAME
  310. #define PR_NEWSGROUP_NAME PROP_TAG(PT_TSTRING,0x0E24)
  311. #endif
  312. #ifndef PR_NNTP_XREF
  313. #define PR_NNTP_XREF PROP_TAG(PT_TSTRING,0x1040)
  314. #endif
  315. #ifndef PR_NNTP_XREF_A
  316. #define PR_NNTP_XREF_A PROP_TAG(PT_STRING8,0x1040)
  317. #endif
  318. #ifndef PR_NNTP_XREF_W
  319. #define PR_NNTP_XREF_W PROP_TAG(PT_UNICODE,0x1040)
  320. #endif
  321. #ifndef PR_POST_FOLDER_ENTRIES
  322. #define PR_POST_FOLDER_ENTRIES PROP_TAG(PT_BINARY,0x103B)
  323. #endif
  324. #ifndef PR_POST_FOLDER_NAMES
  325. #define PR_POST_FOLDER_NAMES PROP_TAG(PT_TSTRING,0x103C)
  326. #endif
  327. #ifndef PR_POST_FOLDER_NAMES_A
  328. #define PR_POST_FOLDER_NAMES_A PROP_TAG(PT_STRING8,0x103C)
  329. #endif
  330. #ifndef PR_POST_FOLDER_NAMES_W
  331. #define PR_POST_FOLDER_NAMES_W PROP_TAG(PT_UNICODE,0x103C)
  332. #endif
  333. #ifndef PR_POST_REPLY_FOLDER_ENTRIES
  334. #define PR_POST_REPLY_DENIED PROP_TAG(PT_BINARY,0x103F)
  335. #endif
  336. #ifndef PR_POST_REPLY_FOLDER_ENTRIES
  337. #define PR_POST_REPLY_FOLDER_ENTRIES PROP_TAG(PT_BINARY,0x103D)
  338. #endif
  339. #ifndef PR_POST_REPLY_FOLDER_NAMES
  340. #define PR_POST_REPLY_FOLDER_NAMES PROP_TAG(PT_TSTRING,0x103E)
  341. #endif
  342. #ifndef PR_POST_REPLY_FOLDER_NAMES_A
  343. #define PR_POST_REPLY_FOLDER_NAMES_A PROP_TAG(PT_STRING8,0x103E)
  344. #endif
  345. #ifndef PR_POST_REPLY_FOLDER_NAMES_W
  346. #define PR_POST_REPLY_FOLDER_NAMES_W PROP_TAG(PT_UNICODE,0x103E)
  347. #endif
  348. #ifndef PR_SUPERSEDES
  349. #define PR_SUPERSEDES PROP_TAG(PT_TSTRING,0x103A)
  350. #endif
  351. #ifndef PR_SUPERSEDES_A
  352. #define PR_SUPERSEDES_A PROP_TAG(PT_STRING8,0x103A)
  353. #endif
  354. #ifndef PR_SUPERSEDES_W
  355. #define PR_SUPERSEDES_W PROP_TAG(PT_UNICODE,0x103A)
  356. #endif
  357. #ifndef PR_7BIT_DISPLAY_NAME_W
  358. #define PR_7BIT_DISPLAY_NAME_W PROP_TAG(PT_UNICODE, PROP_ID(PR_7BIT_DISPLAY_NAME))
  359. #endif
  360. #ifndef PR_ASSOCIATED
  361. #define PR_ASSOCIATED PROP_TAG(PT_BOOLEAN, 0x67AA)
  362. #endif
  363. #ifndef PR_PROCESSED
  364. #define PR_PROCESSED PROP_TAG(PT_BOOLEAN, 0x7D01)
  365. #endif
  366. #define PR_PACKED_NAME_PROPS PROP_TAG(PT_BINARY, 0x361C)
  367. #define PR_IPM_APPOINTMENT_ENTRYID PROP_TAG(PT_BINARY, 0x36D0)
  368. #define PR_IPM_CONTACT_ENTRYID PROP_TAG(PT_BINARY, 0x36D1)
  369. #define PR_IPM_JOURNAL_ENTRYID PROP_TAG(PT_BINARY, 0x36D2)
  370. #define PR_IPM_NOTE_ENTRYID PROP_TAG(PT_BINARY, 0x36D3)
  371. #define PR_IPM_TASK_ENTRYID PROP_TAG(PT_BINARY, 0x36D4)
  372. #define PR_REM_ONLINE_ENTRYID PROP_TAG(PT_BINARY, 0x36D5)
  373. #define PR_REM_OFFLINE_ENTRYID PROP_TAG(PT_BINARY, 0x36D6)
  374. #define PR_IPM_DRAFTS_ENTRYID PROP_TAG(PT_BINARY, 0x36D7)
  375. #define PR_IPM_OL2007_ENTRYIDS PROP_TAG(PT_BINARY, 0x36D9)
  376. /*
  377. PR_IPM_OL2007_ENTRYIDS:
  378. This is a single binary property containing the entryids for:
  379. - 'Rss feeds' folder
  380. - The searchfolder 'Tracked mail processing'
  381. - The searchfolder 'To-do list'
  382. However, it is encoded something like the following:
  383. 01803200 (type: rss feeds ?)
  384. 0100
  385. 2E00
  386. 00000000B774162F0098C84182DE9E4358E4249D01000B41FF66083D464EA7E34D6026C9B143000000006DDA0000 (entryid)
  387. 04803200 (type: tracked mail processing ?)
  388. 0100
  389. 2E00
  390. 00000000B774162F0098C84182DE9E4358E4249D01000B41FF66083D464EA7E34D6026C9B143000000006DDB0000 (entryid)
  391. 02803200 (type: todo list ?)
  392. 0100
  393. 2E00
  394. 00000000B774162F0098C84182DE9E4358E4249D01000B41FF66083D464EA7E34D6026C9B143000000006DE40000 (entryid)
  395. 00000000 (terminator?)
  396. It may also only contain the rss feeds entryid, and then have the 00000000 terminator directly after the entryid:
  397. 01803200 (type: rss feeds ?)
  398. 0100
  399. 2E00
  400. 00000000B774162F0098C84182DE9E4358E4249D01000B41FF66083D464EA7E34D6026C9B143000000006DDA0000 (entryid)
  401. 00000000 (terminator?)
  402. PR_ADDITIONAL_REN_ENTRYIDS:
  403. This is a multivalued property which contains entry IDs for certain special folders.
  404. The first 5 (0-4) entries in this multivalued property are as follows:
  405. 0 - Conflicts folder
  406. 1 - Sync Issues folder
  407. 2 - Local Failures folder
  408. 3 - Server Failures folder
  409. 4 - Junk E-mail Folder
  410. 5 - sfSpamTagDontUse (unknown what this is, disable olk spam stuff?)
  411. */
  412. #define PR_ADDITIONAL_REN_ENTRYIDS PROP_TAG(PT_MV_BINARY, 0x36D8)
  413. // Extra MAPI defines
  414. //GetHierarchyTable(..) and GetContentsTable(..)
  415. #define SHOW_SOFT_DELETES ((ULONG) 0x00000002)
  416. //DeleteFolder(...)
  417. #define DELETE_HARD_DELETE ((ULONG) 0x00000010)
  418. #define PR_MDN_DISPOSITION_TYPE PROP_TAG(PT_STRING8, 0x0080)
  419. #define PR_MDN_DISPOSITION_SENDINGMODE PROP_TAG(PT_STRING8, 0x0081)
  420. #define PR_LAST_VERB_EXECUTED PROP_TAG(PT_LONG, 0x1081)
  421. #define PR_LAST_VERB_EXECUTION_TIME PROP_TAG(PT_SYSTIME, 0x1082)
  422. /* defines from [MS-OXOMSG].pdf, except they're really decimal, and not hexadecimal. */
  423. #define NOTEIVERB_OPEN 0 // Open
  424. #define NOTEIVERB_REPLYTOSENDER 102 // ReplyToSender
  425. #define NOTEIVERB_REPLYTOALL 103 // ReplyToAll
  426. #define NOTEIVERB_FORWARD 104 // Forward
  427. #define NOTEIVERB_PRINT 105 // Print
  428. #define NOTEIVERB_SAVEAS 106 // Save as
  429. #define NOTEIVERB_REPLYTOFOLDER 108 // ReplyToFolder
  430. #define NOTEIVERB_SAVE 500 // Save
  431. #define NOTEIVERB_PROPERTIES 510 // properties
  432. #define NOTEIVERB_FOLLOWUP 511 // Followup
  433. #define NOTEIVERB_ACCEPT 512 // Accept
  434. #define NOTEIVERB_TENTATIVE 513 // Tentative
  435. #define NOTEIVERB_REJECT 514 // Reject
  436. #define NOTEIVERB_DECLINE 515 // Decline
  437. #define NOTEIVERB_INVITE 516 // Invite
  438. #define NOTEIVERB_UPDATE 517 // Update
  439. #define NOTEIVERB_CANCEL 518 // Cancel
  440. #define NOTEIVERB_SILENTINVITE 519 // SilentInvite
  441. #define NOTEIVERB_SILENTCANCEL 520 // SilentCancel
  442. #define NOTEIVERB_RECALL_MESSAGE 521 // RecallMessage
  443. #define NOTEIVERB_FORWARD_RESPONSE 522 // ForwardResponse
  444. #define ICON_FOLDER_DEFAULT 0xFFFFFFFF // Different from documentation: -1 is dependant on folder the item is in
  445. /* defines from [MS-OXOMSG].pdf for email icons */
  446. #define ICON_MAIL_READ 0x00000100 // Read mail
  447. #define ICON_MAIL_UNREAD 0x00000101 // Unread mail
  448. #define ICON_MAIL_SUBMITTED 0x00000102 // Submitted mail
  449. #define ICON_MAIL_UNSENT 0x00000103 // Unsent mail
  450. #define ICON_MAIL_RECEIPT 0x00000104 // Receipt mail
  451. #define ICON_MAIL_REPLIED 0x00000105 // Replied mail
  452. #define ICON_MAIL_FORWARDED 0x00000106 // Forwarded mail
  453. #define ICON_MAIL_REMOTE 0x00000107 // Remote mail
  454. #define ICON_MAIL_DELIVERY_RECEIPT 0x00000108 // Delivery receipt
  455. #define ICON_MAIL_READ_RECEIPT 0x00000109 // Read receipt
  456. #define ICON_MAIL_NONDELIVERY_RECEIPT 0x0000010A // Non-delivery Report
  457. #define ICON_MAIL_NONREAD_RECEIPT 0x0000010B // Non-read receipt
  458. #define ICON_MAIL_RECALL_S 0x0000010C // Recall_S mails
  459. #define ICON_MAIL_RECALL_F 0x0000010D // Recall_F mail
  460. #define ICON_MAIL_TRACKING 0x0000010E // Tracking mail
  461. #define ICON_MAIL_OOF 0x0000011B // Out of Office mail
  462. #define ICON_MAIL_RECALL 0x0000011C // Recall mail
  463. #define ICON_MAIL_TRACKED 0x00000130 // Tracked mail
  464. /* defines from [MS-OXOCNTC].pdf for contact icons, but nothing useful was there */
  465. #define ICON_CONTACT_USER 0x00000200 // Contact
  466. #define ICON_CONTACT_ADDRESSBOOK 0x00000201 // Contact that was imported from GAB
  467. #define ICON_CONTACT_DISTLIST 0x00000202 // Distribution list
  468. /* defines from [MS-OXONOTE].pdf for note icons*/
  469. #define ICON_NOTE 0x00000300 // Note, only documented in pdf
  470. #define ICON_NOTE_BLUE 0x00000300
  471. #define ICON_NOTE_GREEN 0x00000301
  472. #define ICON_NOTE_PINK 0x00000302
  473. #define ICON_NOTE_YELLOW 0x00000303
  474. #define ICON_NOTE_WHITE 0x00000304
  475. /* defines from [MS-OXOCAL].pdf for calendar */
  476. #define ICON_APPT_APPOINTMENT 0x00000400 // Single-instance appointment on Appointment object
  477. #define ICON_APPT_RECURRING 0x00000401 // Recurring appointment on Appointment object
  478. #define ICON_APPT_MEETING_SINGLE 0x00000402 // Single-instance meeting on Meeting object
  479. #define ICON_APPT_MEETING_RECURRING 0x00000403 // Recurring meeting on Meeting object
  480. #define ICON_APPT_MEETING_REQUEST 0x00000404 // meeting request/full update on Meeting Request object, Meeting Update object
  481. #define ICON_APPT_MEETING_ACCEPT 0x00000405 // Accept on Meeting Response object
  482. #define ICON_APPT_MEETING_DECLINE 0x00000406 // Decline on Meeting Response object
  483. #define ICON_APPT_MEETING_TENTATIVE 0x00000407 // Tentatively accept on Meeting Response object
  484. #define ICON_APPT_MEETING_CANCEL 0x00000408 // Cancellation on Meeting Cancellation object
  485. #define ICON_APPT_MEETING_UPDATE 0x00000409 // informational update on Meeting Update object
  486. #define ICON_APPT_MEETING_FORWARD 0x0000040b // Forward notification on Meeting Forward Notification object
  487. /* defines from [MS-OXOTASK].pdf for task icons */
  488. #define ICON_TASK_NORMAL 0x00000500 // None of the other conditions apply
  489. #define ICON_TASK_RECURRING 0x00000501 // The Task object has not been assigned and is a recurring task
  490. #define ICON_TASK_ASSIGNEE 0x00000502 // The Task object is the task assignee's copy of the Task object
  491. #define ICON_TASK_ASSIGNER 0x00000503 // The Task object is the task assigner's copy of the Task object
  492. /* defines from [MS-OXOJRNL].pdf for journal icons */
  493. #define ICON_JOURNAL_CONVERSATION 0x00000601 // Conversation
  494. #define ICON_JOURNAL_DOCUMENT 0x00000612 // Document
  495. #define ICON_JOURNAL_EMAIL 0x00000602 // E-mail Message
  496. #define ICON_JOURNAL_FAX 0x00000609 // Fax
  497. #define ICON_JOURNAL_LETTER 0x0000060C // Letter
  498. #define ICON_JOURNAL_MEETING 0x00000613 // Meeting
  499. #define ICON_JOURNAL_MEETING_CANCEL 0x00000614 // Meeting cancellation
  500. #define ICON_JOURNAL_MEETING_REQUEST 0x00000603 // Meeting request
  501. #define ICON_JOURNAL_MEETING_RESPONSE 0x00000604 // Meeting response
  502. #define ICON_JOURNAL_ACCESS 0x00000610 // Microsoft Office Access
  503. #define ICON_JOURNAL_EXCEL 0x0000060E // Microsoft Office Excel
  504. #define ICON_JOURNAL_POWERPOINT 0x0000060F // Microsoft Office PowerPoint
  505. #define ICON_JOURNAL_WORD 0x0000060D // Microsoft Office Word
  506. #define ICON_JOURNAL_NOTE 0x00000608 // Note
  507. #define ICON_JOURNAL_PHONE_CALL 0x0000060A // Phone call
  508. #define ICON_JOURNAL_REMOTE_SESSION 0x00000615 // Remote session
  509. #define ICON_JOURNAL_TASK 0x0000060B // Task
  510. #define ICON_JOURNAL_TASK_REQUEST 0x00000606 // Task request
  511. #define ICON_JOURNAL_TASK_RESPONSE 0x00000607 // Task response
  512. #define ICON_JOURNAL_OTHER 0x00000003 // Other
  513. //The following properties are used in MAPI restrictions:
  514. // Used when searching for attachment contents.
  515. #define PR_SEARCH_ATTACHMENTS PROP_TAG(PT_TSTRING, 0x0EA5)
  516. #define PR_SEARCH_ATTACHMENTS_A PROP_TAG(PT_STRING8, 0x0EA5)
  517. #define PR_SEARCH_ATTACHMENTS_W PROP_TAG(PT_UNICODE, 0x0EA5)
  518. // Used when searching for email address or display names the message was sent to.
  519. #define PR_SEARCH_RECIP_EMAIL_TO PROP_TAG(PT_TSTRING, 0x0EA6)
  520. #define PR_SEARCH_RECIP_EMAIL_TO_A PROP_TAG(PT_STRING8, 0x0EA6)
  521. #define PR_SEARCH_RECIP_EMAIL_TO_W PROP_TAG(PT_UNICODE, 0x0EA6)
  522. // Used when searching for email address or display names the message was Cc'ed.
  523. #define PR_SEARCH_RECIP_EMAIL_CC PROP_TAG(PT_TSTRING, 0x0EA7)
  524. #define PR_SEARCH_RECIP_EMAIL_CC_A PROP_TAG(PT_STRING8, 0x0EA7)
  525. #define PR_SEARCH_RECIP_EMAIL_CC_W PROP_TAG(PT_UNICODE, 0x0EA7)
  526. // Used when searching for email address or display names the message was Bcc'ed.
  527. // This is only interesting for messages not yet sent otherwise the BCC information will not be there.
  528. #define PR_SEARCH_RECIP_EMAIL_BCC PROP_TAG(PT_TSTRING, 0x0EA8)
  529. #define PR_SEARCH_RECIP_EMAIL_BCC_A PROP_TAG(PT_STRING8, 0x0EA8)
  530. #define PR_SEARCH_RECIP_EMAIL_BCC_W PROP_TAG(PT_UNICODE, 0x0EA8)
  531. #define PR_FOLDER_XVIEWINFO_E PROP_TAG(PT_BINARY, 0x36E0)
  532. #define PR_FOLDER_DISPLAY_FLAGS PROP_TAG(PT_BINARY, 0x36DA)
  533. #define PR_NET_FOLDER_FLAGS PROP_TAG(PT_LONG, 0x36DE)
  534. #define PR_FOLDER_WEBVIEWINFO PROP_TAG(PT_BINARY, 0x36DF)
  535. #define PR_FOLDER_VIEWS_ONLY PROP_TAG(PT_LONG, 0x36E1)
  536. #define MDB_ONLINE ((ULONG) 0x00000100)
  537. #define MAPI_NO_CACHE ((ULONG) 0x00000200)
  538. #define PR_MANAGED_FOLDER_INFORMATION PROP_TAG(PT_LONG, 0x672D)
  539. #define PR_MANAGED_FOLDER_STORAGE_QUOTA PROP_TAG(PT_LONG, 0x6731)
  540. /* delegate properties */
  541. /* from exchange private range? */
  542. #define PR_SCHDINFO_DELEGATE_NAMES PROP_TAG(PT_MV_TSTRING, 0x6844)
  543. #define PR_SCHDINFO_DELEGATE_ENTRYIDS PROP_TAG(PT_MV_BINARY, 0x6845)
  544. #define PR_DELEGATE_FLAGS PROP_TAG(PT_MV_LONG, 0x686B)
  545. #define DELEGATE_FLAG_SEE_PRIVATE 1
  546. #define PR_TODO_ITEM_FLAGS PROP_TAG(PT_LONG, 0x0E2B)
  547. #define PR_FOLLOWUP_ICON PROP_TAG(PT_LONG, 0x1095)
  548. #define PR_FLAG_STATUS PROP_TAG(PT_LONG, 0x1090)
  549. #define PR_FLAG_COMPLETE_TIME PROP_TAG(PT_SYSTIME, 0x1091)
  550. #define PR_INETMAIL_OVERRIDE_FORMAT PROP_TAG(PT_LONG, 0x5902)
  551. /* GetMessageStatus */
  552. #define MSGSTATUS_DRAFT 0x20000
  553. #define MSGSTATUS_ANSWERED 0x10000
  554. #define FL_PREFIX_ON_ANY_WORD 0x00000010
  555. #define FL_PHRASE_MATCH 0x00000020
  556. /* from edkmapi.h .. or so they say on internet */
  557. /* Values of PR_NDR_REASON_CODE */
  558. #ifndef MAPI_REASON
  559. #define MAPI_REASON(_code) ((LONG) _code)
  560. #define MAPI_REASON_TRANSFER_FAILED MAPI_REASON( 0 )
  561. #define MAPI_REASON_TRANSFER_IMPOSSIBLE MAPI_REASON( 1 )
  562. #define MAPI_REASON_CONVERSION_NOT_PERFORMED MAPI_REASON( 2 )
  563. #define MAPI_REASON_PHYSICAL_RENDITN_NOT_DONE MAPI_REASON( 3 )
  564. #define MAPI_REASON_PHYSICAL_DELIV_NOT_DONE MAPI_REASON( 4 )
  565. #define MAPI_REASON_RESTRICTED_DELIVERY MAPI_REASON( 5 )
  566. #define MAPI_REASON_DIRECTORY_OPERATN_FAILED MAPI_REASON( 6 )
  567. #endif
  568. /* new addressbook properties */
  569. #define PR_DISPLAY_TYPE_EX PROP_TAG(PT_LONG, 0x3905)
  570. /* EMSAbTag.h */
  571. /* 6: MV DESCRIPTION? */
  572. #define PR_EMS_AB_ROOM_CAPACITY PROP_TAG(PT_LONG, 0x0807)
  573. /* 8: MV resource type:<>? */
  574. #define PR_EMS_AB_ROOM_DESCRIPTION PROP_TAG(PT_STRING8, 0x0809)
  575. /* PR_DISPLAY_TYPE_EX values */
  576. /* PR_DISPLAY_TYPEs (mapidefs.h)
  577. #define DT_MAILUSER ((ULONG) 0x00000000)
  578. #define DT_DISTLIST ((ULONG) 0x00000001)
  579. #define DT_FORUM ((ULONG) 0x00000002)
  580. #define DT_AGENT ((ULONG) 0x00000003)
  581. #define DT_ORGANIZATION ((ULONG) 0x00000004)
  582. #define DT_PRIVATE_DISTLIST ((ULONG) 0x00000005)
  583. #define DT_REMOTE_MAILUSER ((ULONG) 0x00000006)
  584. */
  585. #define DT_ROOM ((ULONG) 0x00000007)
  586. #define DT_EQUIPMENT ((ULONG) 0x00000008)
  587. #define DT_SEC_DISTLIST ((ULONG) 0x00000009)
  588. /* PR_DISPLAY_TYPE_EX flags */
  589. #define DTE_FLAG_REMOTE_VALID 0x80000000 /* multiserver? */
  590. #define DTE_FLAG_ACL_CAPABLE 0x40000000 /* on for DT_MAILUSER and DT_SEQ_DISTLIST */
  591. #define DTE_MASK_REMOTE 0x0000ff00
  592. #define DTE_MASK_LOCAL 0x000000ff
  593. #define DTE_IS_REMOTE_VALID(v) (!!((v) & DTE_FLAG_REMOTE_VALID))
  594. #define DTE_IS_ACL_CAPABLE(v) (!!((v) & DTE_FLAG_ACL_CAPABLE))
  595. #define DTE_REMOTE(v) (((v) & DTE_MASK_REMOTE) >> 8)
  596. #define DTE_LOCAL(v) ((v) & DTE_MASK_LOCAL)
  597. /* Extra ADRPARM ulFlags values */
  598. #define AB_UNICODEUI 0x00000040
  599. /* these are custom names! */
  600. #define AB_RESERVED1 0x00000100
  601. #define AB_LOCK_NON_ACL 0x00000200
  602. #define PR_ASSOCIATED_SHARING_PROVIDER PROP_TAG(PT_CLSID, 0x0ea0)
  603. #define PR_EMSMDB_SECTION_UID PROP_TAG(PT_BINARY, 0x3d15)
  604. #define PR_EMSMDB_LEGACY PROP_TAG(PT_BOOLEAN, 0x3D18)
  605. #define PR_EMSABP_USER_UID PROP_TAG(PT_BINARY, 0x3D1A)
  606. #define PR_ARCHIVE_TAG PROP_TAG(PT_BINARY, 0x3018)
  607. #define PR_ARCHIVE_PERIOD PROP_TAG(PT_LONG, 0x301e)
  608. #define PR_ARCHIVE_DATE PROP_TAG(PT_SYSTIME, 0x301f)
  609. #define PR_RETENTION_FLAGS PROP_TAG(PT_LONG, 0x301d)
  610. #define PR_RETENTION_DATE PROP_TAG(PT_SYSTIME, 0x301c)
  611. #define PR_POLICY_TAG PROP_TAG(PT_BINARY, 0x3019)
  612. #define PR_ROAMING_DATATYPES PROP_TAG(PT_LONG, 0x7c06)
  613. #define PR_ITEM_TMPFLAGS PROP_TAG(PT_LONG, 0x1097)
  614. #define PR_SECURE_SUBMIT_FLAGS PROP_TAG(PT_LONG, 0x65C6)
  615. #define PR_SECURITY_FLAGS PROP_TAG(PT_LONG, 0x6E01)
  616. #define PR_CONVERSATION_ID PROP_TAG(PT_BINARY, 0x3013)
  617. #define PR_AB_CHOOSE_DIRECTORY_AUTOMATICALLY PROP_TAG( PT_BOOLEAN, 0x3D1C)
  618. #define PR_STORE_UNICODE_MASK PROP_TAG(PT_LONG, 0x340f)
  619. #define PR_PROCESS_MEETING_REQUESTS PROP_TAG(PT_BOOLEAN, 0x686d)
  620. #define PR_DECLINE_CONFLICTING_MEETING_REQUESTS PROP_TAG(PT_BOOLEAN, 0x686f)
  621. #define PR_DECLINE_RECURRING_MEETING_REQUESTS PROP_TAG(PT_BOOLEAN, 0x686e)
  622. #define PR_SCHDINFO_RESOURCE_TYPE PROP_TAG(PT_LONG, 0x6841)
  623. // Notify long term entryid, do not use this!
  624. #define fnevLongTermEntryIDs ((ULONG) 0x20000000)
  625. #define PERSIST_SENTINEL 0x0000
  626. #define RSF_PID_RSS_SUBSCRIPTION 0x8001
  627. #define RSF_PID_SEND_AND_TRACK 0x8002
  628. #define RSF_PID_TODO_SEARCH 0x8004
  629. #define RSF_PID_CONV_ACTIONS 0x8006
  630. #define RSF_PID_COMBINED_ACTIONS 0x8007
  631. #define RSF_PID_SUGGESTED_CONTACTS 0x8008
  632. #define RSF_ELID_HEADER 0x0002
  633. #define RSF_ELID_ENTRYID 0x0001
  634. #define ELEMENT_SENTINEL 0x0000
  635. #define PR_PROFILE_MDB_DN PROP_TAG(PT_STRING8, 0x7CFF)
  636. #define PR_FORCE_USE_ENTRYID_SERVER PROP_TAG(PT_BOOLEAN, 0x7CFE)
  637. #endif