home *** CD-ROM | disk | FTP | other *** search
/ C Programming Starter Kit 2.0 / SamsPublishing-CProgrammingStarterKit-v2.0-Win31.iso / bc45 / msinc.pak / XCMCMSX2.H < prev    next >
C/C++ Source or Header  |  1997-07-23  |  4KB  |  136 lines

  1. /*
  2.  *  XCMCMSX2.H
  3.  *
  4.  *  Purpose:
  5.  *  Specifies constants and data structures for Microsoft CMC extensions
  6.  *  set update (forms extensions)
  7.  *
  8.  */
  9.  
  10. #ifndef _XCMCMSX2_H
  11. #define _XCMCMSX2_H
  12.  
  13. #ifndef XCMCMSXT_H
  14. #   include <xcmcmsxt.h>
  15. #endif
  16.  
  17. #ifndef MAPIDEFS_H
  18. #   include <mapidefs.h>
  19. #endif
  20.  
  21. #ifdef __BORLANDC__
  22.   #include <pshpack8.h>
  23. #endif
  24.  
  25. #ifdef __cplusplus
  26. extern "C" {
  27. #endif
  28.  
  29. #define CMC_XS_MS2                      ((CMC_uint32) MS_EXT_SET_ID + 256)
  30.  
  31. /*** FUNCTION EXTENSIONS ***/
  32.  
  33. /* Allow application to navigate the folder hierarchy */
  34. #define CMC_X_MS_FOLDERS                ((CMC_uint32) MS_EXT_SET_ID + 257)
  35. #define CMC_X_MS_EXCLUDE_MESSAGES       ((CMC_flags) 1)
  36. #define CMC_X_MS_FOLDER_LIST            ((CMC_flags) 2)
  37. #define CMC_X_MS_FOLDER_ID              ((CMC_flags) 4)
  38. #define CMC_X_MS_PARENT_FOLDER_ID       ((CMC_flags) 8)
  39.  
  40. /* Allow creation of a new folder in an existing folder */
  41. #define CMC_X_MS_FOLDER_CREATE          ((CMC_uint32) MS_EXT_SET_ID + 258)
  42.  
  43. /* Allow deletion of a folder */
  44. #define CMC_X_MS_FOLDER_DELETE          ((CMC_uint32) MS_EXT_SET_ID + 259)
  45. #define CMC_X_MS_DEL_MESSAGES           ((CMC_flags) 1)
  46. #define CMC_X_MS_DEL_FOLDERS            ((CMC_flags) 2)
  47.  
  48. /* Allow access to specific message or recipient properties */
  49. #define CMC_X_MS_MAPI_PROPS             ((CMC_uint32) MS_EXT_SET_ID + 260)
  50. #define CMC_X_MS_GET_PROPS              ((CMC_flags) 1)
  51. #define CMC_X_MS_SET_PROPS              ((CMC_flags) 2)
  52. #define CMC_X_MS_GET_PROP_NAMES         ((CMC_flags) 4)
  53. #define CMC_X_MS_GET_PROP_IDS           ((CMC_flags) 8)
  54.  
  55. #define Prop_Val_Union  union _PV
  56.  
  57. /* Property value structure for CMC_X_MS_MAPI_PROPS */
  58. typedef struct {
  59.     CMC_string      prop_name;
  60.     CMC_uint32      prop_id;
  61.     CMC_uint32      reserved;
  62.     Prop_Val_Union  prop_value;
  63.     CMC_uint32      prop_error;
  64. } CMC_X_MS_PROPVAL;
  65.  
  66. /* Provide a stream interface for working with large properties */
  67. #define CMC_X_MS_MAPI_PROP_STREAM       ((CMC_uint32) MS_EXT_SET_ID + 261)
  68. #define CMC_X_MS_STREAM_OPEN            ((CMC_uint32) 0)
  69. #define CMC_X_MS_STREAM_SEEK            ((CMC_uint32) 1)
  70. #define CMC_X_MS_STREAM_READ            ((CMC_uint32) 2)
  71. #define CMC_X_MS_STREAM_WRITE           ((CMC_uint32) 3)
  72. #define CMC_X_MS_STREAM_CLOSE           ((CMC_uint32) 4)
  73. #define CMC_X_MS_CREATE                 ((CMC_flags) 1)
  74. #define CMC_X_MS_MODIFY                 ((CMC_flags) 2)
  75. #define CMC_X_MS_SEEK_CUR               ((CMC_flags) 1)
  76. #define CMC_X_MS_SEEK_SET               ((CMC_flags) 2)
  77. #define CMC_X_MS_SEEK_END               ((CMC_flags) 4)
  78.  
  79. /* Stream data structure for CMC_X_MS_PROP_STREAM */
  80. typedef struct {
  81.     CMC_string  prop_name;
  82.     CMC_uint32  prop_id;
  83.     CMC_buffer  stream;
  84.     CMC_uint32  count;
  85.     CMC_uint32  flags;
  86.     CMC_buffer  data;
  87. } CMC_X_MS_STREAM;
  88.  
  89. /* Initialize CMC session on top of existing MAPI session */
  90. #define CMC_X_MS_USE_MAPI_SESSION       ((CMC_uint32) MS_EXT_SET_ID + 262)
  91.  
  92. /* Get an extended MAPI session from a CMC session */
  93. #ifdef MAPIX_H
  94.  
  95. STDMETHODIMP_(SCODE)
  96. ScMAPIXFromCMC(CMC_session_id cmc_session,
  97.                 ULONG ulFlags,
  98.                 LPCIID lpInterface,
  99.                 LPMAPISESSION FAR * lppMAPISession);
  100.  
  101. #endif /* MAPIX_H */
  102.  
  103. /* Address message attachment within CMC */
  104. #define CMC_X_MS_ATTACHMENT_ID          ((CMC_uint32) MS_EXT_SET_ID + 263)
  105.  
  106. /*** DATA EXTENSIONS ***/
  107.  
  108. /* Extra flags for CMC_X_MS_SESSION_FLAGS */
  109. #define CMC_X_MS_ALLOW_OTHERS           ((CMC_flags) 8)
  110. #define CMC_X_MS_EXPLICIT_PROFILE       ((CMC_flags) 16)
  111. #define CMC_X_MS_USE_DEFAULT            ((CMC_flags) 32)
  112. #define CMC_X_MS_EXTENDED               ((CMC_flags) 64)
  113. #define CMC_X_MS_LOGOFF_SHARED          ((CMC_flags) 128)
  114. #define CMC_X_MS_LOGOFF_UI              ((CMC_flags) 256)
  115.  
  116. /* Extra flag for CMC_X_MS_ATTACH_DATA */
  117. #define CMC_X_MS_ATTACH_MESSAGE         ((CMC_flags) 4)
  118.  
  119. /* Attachment descriptor for CMC_X_ATTACH_DATA */
  120. typedef struct {
  121.     CMC_message_reference FAR *message;
  122.     CMC_uint32              id;
  123.     CMC_buffer              object;
  124. } CMC_X_MS_ATTACH;  
  125.  
  126. #ifdef __cplusplus
  127. }      /* extern "C" */
  128. #endif
  129.  
  130. #ifdef __BORLANDC__
  131.   #include <poppack.h>
  132. #endif
  133.  
  134. #endif /* _XCMCMSX2_H */
  135.  
  136.