home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / sdk / dbmsg / mapi / simplemapi / mapi.h < prev    next >
C/C++ Source or Header  |  1997-10-05  |  7KB  |  187 lines

  1. /*
  2.  *  m a p i . h
  3.  *    
  4.  *  Messaging Applications Programming Interface.
  5.  *    
  6.  *  Copyright (c) 1992-1997 Microsoft Corporation.  All rights reserved.
  7.  *    
  8.  *  Purpose:
  9.  *    This file defines the structures and constants used by
  10.  *    that subset of the messaging applications programming
  11.  *    interface which will be supported under Windows by
  12.  *    Microsoft Mail for PC Networks vesion 3.0.
  13.  */
  14.  
  15.  
  16.  
  17. /*
  18.  *  Types.
  19.  */
  20.  
  21. #ifdef __cplusplus
  22. extern "C" {
  23. #endif
  24.  
  25. typedef unsigned long       ULONG;
  26. typedef unsigned long FAR * LPULONG;
  27. typedef unsigned long       FLAGS;
  28. typedef unsigned long        LHANDLE, FAR *LPLHANDLE;
  29. #define lhSessionNull   ((LHANDLE)0)
  30.  
  31.  
  32. #define MAPI_MESSAGEID_LENGTH   64
  33.  
  34. typedef struct
  35.   {
  36.     ULONG ulReserved;    // Reserved for future use (must be 0)
  37.     ULONG flFlags;         // Flags
  38.     ULONG nPosition;     // character in text to be replaced by attachment
  39.     LPSTR lpszPathName;  // Full path name of attachment file
  40.     LPSTR lpszFileName;  // Original file name (optional)
  41.     LPVOID  UNALIGNED lpFileType;   // Attachment file type (optional)
  42.   } UNALIGNED MapiFileDesc, UNALIGNED FAR * lpMapiFileDesc;
  43.  
  44. #define    MAPI_OLE                        0x00000001
  45. #define    MAPI_OLE_STATIC                    0x00000002
  46.  
  47.  
  48.  
  49.  
  50. typedef struct
  51.   {
  52.     ULONG ulReserved;           // Reserved for future use
  53.     ULONG ulRecipClass;         // Recipient class
  54.                                 // MAPI_TO, MAPI_CC, MAPI_BCC, MAPI_ORIG
  55.     LPSTR lpszName;             // Recipient name
  56.     LPSTR lpszAddress;          // Recipient address (optional)
  57.     ULONG ulEIDSize;            // Count in bytes of size of pEntryID
  58.     LPVOID lpEntryID;           // System-specific recipient reference
  59.   } UNALIGNED MapiRecipDesc, UNALIGNED FAR * lpMapiRecipDesc;
  60.  
  61. #define MAPI_ORIG   0           // Recipient is message originator
  62. #define MAPI_TO     1           // Recipient is a primary recipient
  63. #define MAPI_CC     2           // Recipient is a copy recipient
  64. #define MAPI_BCC    3           // Recipient is blind copy recipient
  65.  
  66.  
  67.  
  68. typedef struct
  69.   {
  70.     ULONG ulReserved;                   // Reserved for future use (M.B. 0)
  71.     LPSTR lpszSubject;                  // Message Subject
  72.     LPSTR lpszNoteText;                 // Message Text
  73.     LPSTR lpszMessageType;              // Message Class
  74.     LPSTR lpszDateReceived;             // in YYYY/MM/DD HH:MM format   
  75.     LPSTR lpszConversationID;            // conversation thread ID
  76.     FLAGS flFlags;                      // unread,return receipt
  77.     lpMapiRecipDesc lpOriginator;       // Originator descriptor
  78.     ULONG nRecipCount;                  // Number of recipients
  79.     lpMapiRecipDesc lpRecips;           // Recipient descriptors
  80.     ULONG nFileCount;                   // # of file attachments
  81.     lpMapiFileDesc lpFiles;             // Attachment descriptors
  82.   } UNALIGNED MapiMessage, UNALIGNED FAR * lpMapiMessage;
  83.  
  84. #define MAPI_UNREAD             0x00000001
  85. #define MAPI_RECEIPT_REQUESTED  0x00000002
  86. #define MAPI_SENT               0x00000004
  87.  
  88.  
  89.  
  90. /*
  91.  *  Entry points.
  92.  */
  93.  
  94.  
  95.  
  96. #define MAPI_LOGON_UI                   0x00000001  // Display logon UI
  97. #define MAPI_NEW_SESSION                0x00000002  // Do not use default.
  98. #define MAPI_DIALOG                     0x00000008  // Display a send note UI
  99. #define MAPI_UNREAD_ONLY                0x00000020  // Only unread messages
  100. #define MAPI_ENVELOPE_ONLY              0x00000040  // Only header information
  101. #define MAPI_PEEK                       0x00000080  // Do not mark as read.
  102. #define MAPI_GUARANTEE_FIFO                0x00000100    // use date order
  103. #define    MAPI_BODY_AS_FILE                0x00000200
  104. #define MAPI_AB_NOMODIFY                0x00000400    // Don't allow mods of AB entries
  105. #define    MAPI_SUPPRESS_ATTACH            0x00000800    // header + body, no files
  106. #define    MAPI_FORCE_DOWNLOAD                0x00001000    // force download of new mail during MAPILogon
  107.  
  108. ULONG FAR PASCAL MAPILogon(ULONG ulUIParam, LPSTR lpszName, LPSTR lpszPassword,
  109.                            FLAGS flFlags, ULONG ulReserved,
  110.                            LPLHANDLE lplhSession);
  111.  
  112. ULONG FAR PASCAL MAPILogoff(LHANDLE lhSession, ULONG ulUIParam, FLAGS flFlags,
  113.                             ULONG ulReserved);
  114.  
  115. ULONG FAR PASCAL MAPISendMail(LHANDLE lhSession, ULONG ulUIParam,
  116.                               lpMapiMessage lpMessage, FLAGS flFlags,
  117.                               ULONG ulReserved);
  118.  
  119. ULONG FAR PASCAL MAPISendDocuments(ULONG ulUIParam, LPSTR lpszDelimChar,
  120.                                    LPSTR lpszFilePaths, LPSTR lpszFileNames,
  121.                                    ULONG ulReserved);
  122.  
  123. ULONG FAR PASCAL MAPIFindNext(LHANDLE lhSession, ULONG ulUIParam,
  124.                               LPSTR lpszMessageType, LPSTR lpszSeedMessageID,
  125.                               FLAGS flFlags, ULONG ulReserved,
  126.                               LPSTR lpszMessageID);
  127.  
  128. ULONG FAR PASCAL MAPIReadMail(LHANDLE lhSession, ULONG ulUIParam,
  129.                               LPSTR lpszMessageID, FLAGS flFlags,
  130.                               ULONG ulReserved, lpMapiMessage FAR *lppMessageOut);
  131.  
  132. ULONG FAR PASCAL MAPISaveMail(LHANDLE lhSession, ULONG ulUIParam,
  133.                               lpMapiMessage pMessage, FLAGS flFlags,
  134.                               ULONG ulReserved, LPSTR lpszMessageID);
  135.  
  136. ULONG FAR PASCAL MAPIDeleteMail(LHANDLE lhSession, ULONG ulUIParam,
  137.                                 LPSTR lpszMessageID, FLAGS flFlags,
  138.                                 ULONG ulReserved);
  139.  
  140. ULONG FAR PASCAL MAPIFreeBuffer( LPVOID pv );
  141.                             
  142. ULONG FAR PASCAL MAPIAddress(LHANDLE lhSession, ULONG ulUIParam,
  143.                     LPSTR plszCaption, ULONG nEditFields,
  144.                     LPSTR lpszLabels, ULONG nRecips,
  145.                     lpMapiRecipDesc lpRecips, FLAGS flFlags, ULONG ulReserved, 
  146.                     LPULONG lpnNewRecips, lpMapiRecipDesc FAR *lppNewRecips);
  147.  
  148. ULONG FAR PASCAL MAPIDetails(LHANDLE lhSession, ULONG ulUIParam,
  149.                     lpMapiRecipDesc lpRecip, FLAGS flFlags, ULONG ulReserved);
  150.  
  151. ULONG FAR PASCAL MAPIResolveName(LHANDLE lhSession, ULONG ulUIParam,
  152.                         LPSTR lpszName, FLAGS flFlags,
  153.                         ULONG ulReserved, lpMapiRecipDesc FAR *lppRecip);
  154.  
  155.  
  156.  
  157. #define SUCCESS_SUCCESS                     0
  158. #define MAPI_USER_ABORT                     1
  159. #define MAPI_E_FAILURE                      2
  160. #define MAPI_E_LOGIN_FAILURE                3
  161. #define MAPI_E_DISK_FULL                    4
  162. #define MAPI_E_INSUFFICIENT_MEMORY          5
  163. #define MAPI_E_ACCESS_DENIED                6
  164. #define MAPI_E_TOO_MANY_SESSIONS            8
  165. #define MAPI_E_TOO_MANY_FILES               9
  166. #define MAPI_E_TOO_MANY_RECIPIENTS          10
  167. #define MAPI_E_ATTACHMENT_NOT_FOUND         11
  168. #define MAPI_E_ATTACHMENT_OPEN_FAILURE      12
  169. #define MAPI_E_ATTACHMENT_WRITE_FAILURE     13
  170. #define MAPI_E_UNKNOWN_RECIPIENT            14
  171. #define MAPI_E_BAD_RECIPTYPE                15
  172. #define MAPI_E_NO_MESSAGES                  16
  173. #define MAPI_E_INVALID_MESSAGE              17
  174. #define MAPI_E_TEXT_TOO_LARGE               18
  175. #define    MAPI_E_INVALID_SESSION                19
  176. #define    MAPI_E_TYPE_NOT_SUPPORTED            20
  177. #define    MAPI_E_AMBIGUOUS_RECIPIENT            21
  178. #define MAPI_E_MESSAGE_IN_USE                22
  179. #define MAPI_E_NETWORK_FAILURE                23
  180. #define    MAPI_E_INVALID_EDITFIELDS            24
  181. #define    MAPI_E_INVALID_RECIPS                25
  182. #define    MAPI_E_NOT_SUPPORTED                26
  183.  
  184. #ifdef __cplusplus
  185. }
  186. #endif
  187.