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.

299 lines
14 KiB

  1. //
  2. // MAPI Properties
  3. //
  4. //
  5. // Mail user generic properties = 0x3a00 - 0x3aff
  6. // 4000 57FF Transport-defined envelope property
  7. // 5800 5FFF Transport-defined per-recipient property
  8. // 6000 65FF User-defined non-transmittable property
  9. // 6600 67FF Provider-defined internal non-transmittable property
  10. // 6800 7BFF Message class-defined content property
  11. // 7C00 7FFF Message class-defined non-transmittable
  12. // property
  13. // Transport-defined message envelope properties = 0x4000 - 0x57ff
  14. // Transport-defined recipient properties = 0x5800 - 0x5fff
  15. // User-defined non-transmittable message props = 0x6000 - 0x65ff
  16. // Provider-defined internal non-transmittable props = 0x6600 - 0x67ff
  17. // Message class-defined message content properties = 0x6800 - 0x7bff
  18. // Message class-defined non-transmittable message
  19. // props = 0x7c00 - 0x7fff
  20. // User-defined properties identified only by name,
  21. // through the property name to ID mapping facility
  22. // of the IMAPIProp interface = 0x8000 - 0xfffe
  23. //
  24. #define TRANSPORT_ENVELOPE_BASE 0x4000
  25. #define TRANSPORT_RECIP_BASE 0x5800
  26. #define USER_NON_TRANSMIT_BASE 0x6000
  27. #define PROVIDER_INTERNAL_NON_TRANSMIT_BASE 0x6600
  28. #define MESSAGE_CLASS_CONTENT_BASE 0x6800
  29. #define MESSAGE_CLASS_NON_TRANSMIT_BASE 0x7C00
  30. #define EFAX_MESSAGE_BASE TRANSPORT_ENVELOPE_BASE + 0x500
  31. #define EFAX_RECIPIENT_BASE TRANSPORT_RECIP_BASE + 0x100
  32. #define EFAX_PR_OPTIONS_BASE PROVIDER_INTERNAL_NON_TRANSMIT_BASE + 0x100
  33. #define EFAX_ADDR_TYPE "FAX"
  34. //
  35. // LOGON Properties
  36. //
  37. // Properties we store in the Profile.
  38. //
  39. // The following is used to access the properties in the logon array.
  40. // If you add a property to the profile, you should increment this number!
  41. #define MAX_LOGON_PROPERTIES 10
  42. // Other logon properties:
  43. // PR_SENDER_NAME - in mapitags.h
  44. // PR_SENDER_EMAIL_ADDRESS - in mapitags.h (this file)
  45. // Fax Product name
  46. #define PR_FAX_PRODUCT_NAME PROP_TAG(PT_TSTRING, (EFAX_PR_OPTIONS_BASE + 0x0))
  47. // Active fax device name
  48. #define PR_FAX_ACTIVE_MODEM_NAME PROP_TAG(PT_TSTRING, (EFAX_PR_OPTIONS_BASE + 0x1))
  49. // If value is TRUE, work offline
  50. #define PR_FAX_WORK_OFF_LINE PROP_TAG(PT_BOOLEAN, (EFAX_PR_OPTIONS_BASE + 0x2))
  51. // If true, you want to share the active fax device
  52. #define PR_FAX_SHARE_DEVICE PROP_TAG(PT_BOOLEAN, (EFAX_PR_OPTIONS_BASE + 0x3))
  53. // The share name
  54. #define PR_FAX_SHARE_NAME PROP_TAG(PT_TSTRING, (EFAX_PR_OPTIONS_BASE + 0x4))
  55. // Sender Country code ID - used internally by fax config
  56. #define PR_FAX_SENDER_COUNTRY_ID PROP_TAG(PT_LONG, (EFAX_PR_OPTIONS_BASE + 0x5))
  57. // multi-value proerty to hold the names of the netfax devices the user added
  58. #define PR_FAX_NETFAX_DEVICES PROP_TAG(PT_MV_STRING8, (EFAX_PR_OPTIONS_BASE + 0x6))
  59. // The share pathname on the sharing machine
  60. #define PR_FAX_SHARE_PATHNAME PROP_TAG(PT_TSTRING, (EFAX_PR_OPTIONS_BASE + 0x7))
  61. // Profile section version
  62. #define PR_FAX_PROFILE_VERSION PROP_TAG(PT_LONG, (EFAX_PR_OPTIONS_BASE + 0x8))
  63. //
  64. // Non-Transmittable message properties
  65. //
  66. #define PR_FAX_CHEAP_BEGIN_HOUR PROP_TAG(PT_I2, (EFAX_MESSAGE_BASE + 0x1))
  67. #define PR_FAX_CHEAP_BEGIN_MINUTE PROP_TAG(PT_I2, (EFAX_MESSAGE_BASE + 0x2))
  68. #define PR_FAX_CHEAP_END_HOUR PROP_TAG(PT_I2, (EFAX_MESSAGE_BASE + 0x3))
  69. #define PR_FAX_CHEAP_END_MINUTE PROP_TAG(PT_I2, (EFAX_MESSAGE_BASE + 0x4))
  70. #define PR_FAX_NOT_EARLIER_HOUR PROP_TAG(PT_I2, (EFAX_MESSAGE_BASE + 0x5))
  71. #define PR_FAX_NOT_EARLIER_MINUTE PROP_TAG(PT_I2, (EFAX_MESSAGE_BASE + 0x6))
  72. #define PR_FAX_NOT_EARLIER_DATE PROP_TAG(PT_I2, (EFAX_MESSAGE_BASE + 0x7))
  73. #define PR_FAX_NUMBER_RETRIES PROP_TAG(PT_I2, (EFAX_MESSAGE_BASE + 0x8))
  74. #define PR_FAX_MINUTES_BETWEEN_RETRIES PROP_TAG(PT_I2, (EFAX_MESSAGE_BASE + 0x9))
  75. // Should a cover page be sent with this message
  76. #define PR_FAX_INCLUDE_COVER_PAGE PROP_TAG(PT_BOOLEAN, (EFAX_MESSAGE_BASE + 0xA))
  77. #define PR_FAX_COVER_PAGE_BODY PROP_TAG(PT_I2, (EFAX_MESSAGE_BASE + 0xB))
  78. #define PR_FAX_LOGO_STRING PROP_TAG(PT_STRING8, (EFAX_MESSAGE_BASE + 0xC))
  79. // Should this message be send as text, in printed format, or best available
  80. #define PR_FAX_DELIVERY_FORMAT PROP_TAG(PT_LONG, (EFAX_MESSAGE_BASE + 0xD))
  81. #define PR_FAX_PRINT_ORIENTATION PROP_TAG(PT_I2, (EFAX_MESSAGE_BASE + 0xE))
  82. #define PR_FAX_PAPER_SIZE PROP_TAG(PT_I2, (EFAX_MESSAGE_BASE + 0xF))
  83. #define PR_FAX_IMAGE_QUALITY PROP_TAG(PT_I2, (EFAX_MESSAGE_BASE + 0x10))
  84. // These should be set by transport so Linearizer can see them.
  85. #define PR_FAX_SENDER_NAME PROP_TAG(PT_STRING8, (EFAX_MESSAGE_BASE + 0x11))
  86. #define PR_FAX_SENDER_EMAIL_ADDRESS PROP_TAG(PT_STRING8, (EFAX_MESSAGE_BASE + 0x12))
  87. #define PR_FAX_LMI_CUSTOM_OPTION PROP_TAG(PT_BINARY, (EFAX_MESSAGE_BASE + 0x13))
  88. #define PR_FAX_PREVIOUS_STATE PROP_TAG(PT_I2, (EFAX_MESSAGE_BASE + 0x14))
  89. #define PR_FAX_FAXJOB PROP_TAG(PT_BINARY, (EFAX_MESSAGE_BASE + 0x15))
  90. // The billing code to bill for the transmission of this message
  91. #define PR_FAX_BILLING_CODE PROP_TAG(PT_STRING8, (EFAX_MESSAGE_BASE + 0x16))
  92. // Previous billing codes used
  93. #define PR_FAX_PREV_BILLING_CODES PROP_TAG(PT_MV_STRING8, (EFAX_MESSAGE_BASE + 0x17))
  94. // Is Fax message to begin (or fully included, if short) on the cover page
  95. #define PR_FAX_BGN_MSG_ON_COVER PROP_TAG(PT_BOOLEAN, (EFAX_MESSAGE_BASE + 0x18))
  96. // Should the message be sent immediately, at cheap rates or at a specific time
  97. #define PR_FAX_SEND_WHEN_TYPE PROP_TAG(PT_LONG, (EFAX_MESSAGE_BASE + 0x19))
  98. // Absolute pathname of default coverpage file
  99. #define PR_FAX_DEFAULT_COVER_PAGE PROP_TAG(PT_STRING8, (EFAX_MESSAGE_BASE + 0x1A))
  100. // Maximum Time to wait for connection (seconds)
  101. #define PR_FAX_MAX_TIME_TO_WAIT PROP_TAG(PT_I2, (EFAX_MESSAGE_BASE + 0x1B))
  102. // Enable/Disable logging calls
  103. #define PR_FAX_LOG_ENABLE PROP_TAG(PT_BOOLEAN, (EFAX_MESSAGE_BASE + 0x1C))
  104. // Number of calls to keep log of
  105. #define PR_FAX_LOG_NUM_OF_CALLS PROP_TAG(PT_I2, (EFAX_MESSAGE_BASE + 0x1D))
  106. // Display call progress
  107. #define PR_FAX_DISPLAY_PROGRESS PROP_TAG(PT_BOOLEAN, (EFAX_MESSAGE_BASE + 0x1E))
  108. // Embed Linked objects before sending
  109. #define PR_FAX_EMBED_LINKED_OBJECTS PROP_TAG(PT_BOOLEAN, (EFAX_MESSAGE_BASE + 0x1F))
  110. // TAPI Location ID
  111. #define PR_FAX_TAPI_LOC_ID PROP_TAG(PT_LONG, (EFAX_MESSAGE_BASE + 0x20))
  112. // Must render ALL attachments before sending
  113. #define PR_FAX_MUST_RENDER_ALL_ATTACH PROP_TAG(PT_BOOLEAN, (EFAX_MESSAGE_BASE + 0x21))
  114. // Enable per-recipient options
  115. #define PR_FAX_ENABLE_RECIPIENT_OPTIONS PROP_TAG(PT_BOOLEAN, (EFAX_MESSAGE_BASE + 0x22))
  116. // Calling Card Name
  117. #define PR_FAX_CALL_CARD_NAME PROP_TAG(PT_STRING8, (EFAX_MESSAGE_BASE + 0x24))
  118. // Print to fax rba stream filename
  119. #define PR_FAX_PRINT_TO_NAME PROP_TAG(PT_STRING8, (EFAX_MESSAGE_BASE + 0x25))
  120. #define PR_FAX_SECURITY_SEND PROP_TAG(PT_BINARY, (EFAX_MESSAGE_BASE + 0x26))
  121. #define PR_FAX_SECURITY_RECEIVED PROP_TAG(PT_I2, (EFAX_MESSAGE_BASE + 0x27))
  122. // RBA data property (print-to-fax)
  123. #define PR_FAX_RBA_DATA PROP_TAG(PT_BINARY, (EFAX_MESSAGE_BASE + 0x28))
  124. // Poll retrieval
  125. #define PR_POLL_RETRIEVE_SENDME PROP_TAG(PT_I2, (EFAX_MESSAGE_BASE + 0x29))
  126. #define PR_POLL_RETRIEVE_TITLE PROP_TAG(PT_TSTRING, (EFAX_MESSAGE_BASE + 0x30))
  127. #define PR_POLL_RETRIEVE_PASSWORD PROP_TAG(PT_TSTRING, (EFAX_MESSAGE_BASE + 0x31))
  128. #define PR_POLLTYPE PROP_TAG(PT_I2, (EFAX_MESSAGE_BASE + 0x32))
  129. // Poll server
  130. #define PR_MESSAGE_TYPE PROP_TAG(PT_I2, (EFAX_MESSAGE_BASE + 0x33))
  131. // Digital signature for an attachment
  132. #define PR_ATTACH_SIGNATURE PROP_TAG(PT_BINARY, (EFAX_MESSAGE_BASE + 0x34))
  133. // (print-to-fax # of pages)
  134. #define PR_FAX_PRINT_TO_PAGES PROP_TAG(PT_LONG, (EFAX_MESSAGE_BASE + 0x35))
  135. // On incoming message attachment, this contains image data requiring render conversion.
  136. #define PR_FAX_IMAGE PROP_TAG(PT_BINARY, (EFAX_MESSAGE_BASE + 0x36))
  137. // Print a header line on the top of every G3 fax page (branding)
  138. #define PR_FAX_PRINT_HEADER PROP_TAG(PT_BOOLEAN, (EFAX_MESSAGE_BASE + 0x37))
  139. // Billing code DWORD representation
  140. #define PR_FAX_BILLING_CODE_DWORD PROP_TAG(PT_LONG, (EFAX_MESSAGE_BASE + 0x38))
  141. //
  142. // Non-Transmittable mail-user properties
  143. //
  144. #define PR_FAX_RECIP_CAPABILITIES PROP_TAG(PT_I2, (EFAX_RECIPIENT_BASE + 0x0))
  145. // Name of the recipient to put on the cover page
  146. #define PR_FAX_CP_NAME PROP_TAG(PT_TSTRING, (EFAX_RECIPIENT_BASE + 0x1))
  147. #define PR_FAX_CP_NAME_W PROP_TAG(PT_UNICODE, (EFAX_RECIPIENT_BASE + 0x1))
  148. #define PR_FAX_CP_NAME_A PROP_TAG(PT_STRING8, (EFAX_RECIPIENT_BASE + 0x1))
  149. #define PR_RECIP_INDEX PROP_TAG(PT_I2, (EFAX_RECIPIENT_BASE + 0x2))
  150. #define PR_HOP_INDEX PROP_TAG(PT_I2, (EFAX_RECIPIENT_BASE + 0x3))
  151. // BUGBUG: This should go away
  152. #define PR_RECIP_VOICENUM PROP_TAG(PT_TSTRING, (EFAX_RECIPIENT_BASE + 0x4))
  153. #define PR_FAX_ENCRYPTION_KEY PROP_TAG(PT_BINARY, (EFAX_RECIPIENT_BASE + 0x5))
  154. // Moved here from chicago\ui\faxab\faxab.h
  155. #define PR_COUNTRY_ID PROP_TAG(PT_LONG,0x6607)
  156. #define PR_AREA_CODE PROP_TAG(PT_STRING8,0x6608)
  157. #define PR_TEL_NUMBER PROP_TAG(PT_STRING8,0x6609)
  158. #define PR_MAILBOX PROP_TAG(PT_STRING8,0x660a)
  159. #define ArrayIndex(PROP, ARRAY)(ARRAY)[(PROP_ID(PROP) - EFAX_XP_MESSAGE_BASE - 1)]
  160. /**********************************************************************************
  161. Property Values Section
  162. ***********************************************************************************/
  163. #define NUM_SENDER_PROPS 3 // How many sender ID properties?
  164. // Send As
  165. // PR_FAX_DELIVERY_FORMAT
  166. #define SEND_BEST 0
  167. #define SEND_EDITABLE 1
  168. #define SEND_PRINTED 2
  169. #define DEFAULT_SEND_AS SEND_BEST
  170. // Send At
  171. // PR_FAX_SEND_WHEN_TYPE
  172. #define SEND_ASAP 0
  173. #define SEND_CHEAP 1
  174. #define SEND_AT_TIME 2
  175. #define DEFAULT_SEND_AT SEND_ASAP
  176. // Paper Size
  177. // PR_FAX_PAPER_SIZE
  178. #define PAPER_US_LETTER 0 // US Letter page size
  179. #define PAPER_US_LEGAL 1
  180. #define PAPER_A4 2
  181. #define PAPER_B4 3
  182. #define PAPER_A3 4
  183. // "real" default page size is in a resource string depending on U.S. vs metric
  184. #define DEFAULT_PAPER_SIZE PAPER_US_LETTER // Default page size
  185. // Print Orientation
  186. // PR_FAX_PRINT_ORIENTATION
  187. #define PRINT_PORTRAIT 0 // Protrait printing
  188. #define PRINT_LANDSCAPE 1
  189. #define DEFAULT_PRINT_ORIENTATION PRINT_PORTRAIT
  190. // Image Quality
  191. // PR_FAX_IMAGE_QUALITY
  192. #define IMAGE_QUALITY_BEST 0
  193. #define IMAGE_QUALITY_STANDARD 1
  194. #define IMAGE_QUALITY_FINE 2
  195. #define IMAGE_QUALITY_300DPI 3
  196. #define IMAGE_QUALITY_400DPI 4
  197. #define DEFAULT_IMAGE_QUALITY IMAGE_QUALITY_BEST
  198. // Speaker
  199. // PR_FAX_SPEAKER_VOLUME
  200. #define NUM_OF_SPEAKER_VOL_LEVELS 4 // Number of speaker volume levels
  201. #define DEFAULT_SPEAKER_VOLUME 2 // Default speaker volume level
  202. #define SPEAKER_ALWAYS_ON 2 // Speaker mode: always on
  203. #define SPEAKER_ON_UNTIL_CONNECT 1 // speaker on unitl connected
  204. #define SPEAKER_ALWAYS_OFF 0 // Speaker off
  205. #define DEFAULT_SPEAKER_MODE SPEAKER_ON_UNTIL_CONNECT // Default speaker mode
  206. // Answer
  207. // PR_FAX_ANSWER_MODE
  208. #define NUM_OF_RINGS 3
  209. #define ANSWER_NO 0
  210. #define ANSWER_MANUAL 1
  211. #define ANSWER_AUTO 2
  212. #define DEFAULT_ANSWER_MODE ANSWER_NO
  213. // Blind Dial
  214. #define DEFAULT_BLIND_DIAL 3
  215. // Comma Delay
  216. #define DEFAULT_COMMA_DELAY 2
  217. // Dial Tone Wait
  218. #define DEFAULT_DIAL_TONE_WAIT 30
  219. // Hangup Delay
  220. #define DEFAULT_HANGUP_DELAY 60
  221. // Poll retrieval
  222. // PR_POLL_RETRIEVE_SENDME
  223. #define SENDME_DEFAULT 0
  224. #define SENDME_DOCUMENT 1
  225. // PR_POLLTYPE
  226. #define POLLTYPE_REQUEST 1
  227. #define POLLTYPE_STORE 2
  228. // Type of fax devices (line IDs)
  229. // PR_FAX_ACTIVE_MODEM_TYPE
  230. /*
  231. defined in ifaxdev\h\filet30.h
  232. #define LINEID_NONE (0x0)
  233. #define LINEID_COMM_PORTNUM (0x1)
  234. #define LINEID_COMM_HANDLE (0x2)
  235. #define LINEID_TAPI_DEVICEID (0x3)
  236. #define LINEID_TAPI_PERMANENT_DEVICEID (0x4)
  237. #define LINEID_NETFAX_DEVICE (0x10)
  238. */
  239. // Line ID (depends on the value in PR_FAX_ACTIVE_MODEM_TYPE)
  240. // PR_FAX_ACTIVE_MODEM
  241. #define NO_MODEM 0xffffffff // To show no modem is selected
  242. // PR_FAX_TAPI_LOC_ID
  243. #define NO_LOCATION 0xffffffff // No TAPI location
  244. // Values for PR_FAX_FLAGS
  245. // #define EFAX_FLAG_PEER_TO_PEER ((ULONG)0x00000001)
  246. #define EFAX_FLAG_UI_ALWAYS ((ULONG)0x00000002)
  247. // #define EFAX_FLAG_LOG_EVENTS ((ULONG)0x00000004)
  248. #define EFAX_FLAG_SAVE_DATA ((ULONG)0x00000008)