home *** CD-ROM | disk | FTP | other *** search
/ Power GUI Programming with VisualAge C++ / powergui.iso / trialva / ibmcppw / sdk / winh / xcmcmsx2.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-07-11  |  4.1 KB  |  128 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 __cplusplus
  22. extern "C" {
  23. #endif
  24.  
  25. #define CMC_XS_MS2                      ((CMC_uint32) MS_EXT_SET_ID + 256)
  26.  
  27. /*** FUNCTION EXTENSIONS ***/
  28.  
  29. /* Allow application to navigate the folder hierarchy */
  30. #define CMC_X_MS_FOLDERS                ((CMC_uint32) MS_EXT_SET_ID + 257)
  31. #define CMC_X_MS_EXCLUDE_MESSAGES       ((CMC_flags) 1)
  32. #define CMC_X_MS_FOLDER_LIST            ((CMC_flags) 2)
  33. #define CMC_X_MS_FOLDER_ID              ((CMC_flags) 4)
  34. #define CMC_X_MS_PARENT_FOLDER_ID       ((CMC_flags) 8)
  35.  
  36. /* Allow creation of a new folder in an existing folder */
  37. #define CMC_X_MS_FOLDER_CREATE          ((CMC_uint32) MS_EXT_SET_ID + 258)
  38.  
  39. /* Allow deletion of a folder */
  40. #define CMC_X_MS_FOLDER_DELETE          ((CMC_uint32) MS_EXT_SET_ID + 259)
  41. #define CMC_X_MS_DEL_MESSAGES           ((CMC_flags) 1)
  42. #define CMC_X_MS_DEL_FOLDERS            ((CMC_flags) 2)
  43.  
  44. /* Allow access to specific message or recipient properties */
  45. #define CMC_X_MS_MAPI_PROPS             ((CMC_uint32) MS_EXT_SET_ID + 260)
  46. #define CMC_X_MS_GET_PROPS              ((CMC_flags) 1)
  47. #define CMC_X_MS_SET_PROPS              ((CMC_flags) 2)
  48. #define CMC_X_MS_GET_PROP_NAMES         ((CMC_flags) 4)
  49. #define CMC_X_MS_GET_PROP_IDS           ((CMC_flags) 8)
  50.  
  51. #define Prop_Val_Union  union _PV
  52.  
  53. /* Property value structure for CMC_X_MS_MAPI_PROPS */
  54. typedef struct {
  55.     CMC_string      prop_name;
  56.     CMC_uint32      prop_id;
  57.     CMC_uint32      reserved;
  58.     Prop_Val_Union  prop_value;
  59.     CMC_uint32      prop_error;
  60. } CMC_X_MS_PROPVAL;
  61.  
  62. /* Provide a stream interface for working with large properties */
  63. #define CMC_X_MS_MAPI_PROP_STREAM       ((CMC_uint32) MS_EXT_SET_ID + 261)
  64. #define CMC_X_MS_STREAM_OPEN            ((CMC_uint32) 0)
  65. #define CMC_X_MS_STREAM_SEEK            ((CMC_uint32) 1)
  66. #define CMC_X_MS_STREAM_READ            ((CMC_uint32) 2)
  67. #define CMC_X_MS_STREAM_WRITE           ((CMC_uint32) 3)
  68. #define CMC_X_MS_STREAM_CLOSE           ((CMC_uint32) 4)
  69. #define CMC_X_MS_CREATE                 ((CMC_flags) 1)
  70. #define CMC_X_MS_MODIFY                 ((CMC_flags) 2)
  71. #define CMC_X_MS_SEEK_CUR               ((CMC_flags) 1)
  72. #define CMC_X_MS_SEEK_SET               ((CMC_flags) 2)
  73. #define CMC_X_MS_SEEK_END               ((CMC_flags) 4)
  74.  
  75. /* Stream data structure for CMC_X_MS_PROP_STREAM */
  76. typedef struct {
  77.     CMC_string  prop_name;
  78.     CMC_uint32  prop_id;
  79.     CMC_buffer  stream;
  80.     CMC_uint32  count;
  81.     CMC_uint32  flags;
  82.     CMC_buffer  data;
  83. } CMC_X_MS_STREAM;
  84.  
  85. /* Initialize CMC session on top of existing MAPI session */
  86. #define CMC_X_MS_USE_MAPI_SESSION       ((CMC_uint32) MS_EXT_SET_ID + 262)
  87.  
  88. /* Get an extended MAPI session from a CMC session */
  89. #ifdef MAPIX_H
  90.  
  91. STDMETHODIMP_(SCODE)
  92. ScMAPIXFromCMC(CMC_session_id cmc_session,
  93.                 ULONG ulFlags,
  94.                 LPCIID lpInterface,
  95.                 LPMAPISESSION FAR * lppMAPISession);
  96.  
  97. #endif /* MAPIX_H */
  98.  
  99. /* Address message attachment within CMC */
  100. #define CMC_X_MS_ATTACHMENT_ID          ((CMC_uint32) MS_EXT_SET_ID + 263)
  101.  
  102. /*** DATA EXTENSIONS ***/
  103.  
  104. /* Extra flags for CMC_X_MS_SESSION_FLAGS */
  105. #define CMC_X_MS_ALLOW_OTHERS           ((CMC_flags) 8)
  106. #define CMC_X_MS_EXPLICIT_PROFILE       ((CMC_flags) 16)
  107. #define CMC_X_MS_USE_DEFAULT            ((CMC_flags) 32)
  108. #define CMC_X_MS_EXTENDED               ((CMC_flags) 64)
  109. #define CMC_X_MS_LOGOFF_SHARED          ((CMC_flags) 128)
  110. #define CMC_X_MS_LOGOFF_UI              ((CMC_flags) 256)
  111.  
  112. /* Extra flag for CMC_X_MS_ATTACH_DATA */
  113. #define CMC_X_MS_ATTACH_MESSAGE         ((CMC_flags) 4)
  114.  
  115. /* Attachment descriptor for CMC_X_ATTACH_DATA */
  116. typedef struct {
  117.     CMC_message_reference FAR *message;
  118.     CMC_uint32              id;
  119.     CMC_buffer              object;
  120. } CMC_X_MS_ATTACH;  
  121.  
  122. #ifdef __cplusplus
  123. }      /* extern "C" */
  124. #endif
  125.  
  126. #endif /* _XCMCMSX2_H */
  127.  
  128.