home *** CD-ROM | disk | FTP | other *** search
/ Beginning C++ Through Gam…rogramming (2nd Edition) / BCGP2E.ISO / bloodshed / devcpp-4.9.9.2_setup.exe / mapi.h < prev    next >
C/C++ Source or Header  |  2005-01-29  |  5KB  |  164 lines

  1. #ifndef _MAPI_H
  2. #define _MAPI_H
  3. #if __GNUC__ >=3
  4. #pragma GCC system_header
  5. #endif
  6.  
  7. #ifdef __cplusplus
  8. extern "C" {
  9. #endif
  10.  
  11. #define SUCCESS_SUCCESS            0
  12. #define MAPI_USER_ABORT            1
  13. #define MAPI_E_USER_ABORT        1
  14. #define MAPI_E_FAILURE            2
  15. #define MAPI_E_LOGIN_FAILURE        3
  16. #define MAPI_E_LOGON_FAILURE        3
  17. #define MAPI_E_DISK_FULL        4
  18. #define MAPI_E_INSUFFICIENT_MEMORY    5
  19. #define MAPI_E_ACCESS_DENIED        6
  20. #define MAPI_E_BLK_TOO_SMALL        6
  21. #define MAPI_E_TOO_MANY_SESSIONS    8
  22. #define MAPI_E_TOO_MANY_FILES        9
  23. #define MAPI_E_TOO_MANY_RECIPIENTS    10
  24. #define MAPI_E_ATTACHMENT_NOT_FOUND    11
  25. #define MAPI_E_ATTACHMENT_OPEN_FAILURE    12
  26. #define MAPI_E_ATTACHMENT_WRITE_FAILURE    13
  27. #define MAPI_E_UNKNOWN_RECIPIENT    14
  28. #define MAPI_E_BAD_RECIPTYPE        15
  29. #define MAPI_E_NO_MESSAGES        16
  30. #define MAPI_E_INVALID_MESSAGE        17
  31. #define MAPI_E_TEXT_TOO_LARGE        18
  32. #define MAPI_E_INVALID_SESSION        19
  33. #define MAPI_E_TYPE_NOT_SUPPORTED    20
  34. #define MAPI_E_AMBIGUOUS_RECIPIENT    21
  35. #define MAPI_E_AMBIGUOUS_RECIP        21
  36. #define MAPI_E_MESSAGE_IN_USE        22
  37. #define MAPI_E_NETWORK_FAILURE        23
  38. #define MAPI_E_INVALID_EDITFIELDS    24
  39. #define MAPI_E_INVALID_RECIPS        25
  40. #define MAPI_E_NOT_SUPPORTED        26
  41.  
  42. #define MAPI_ORIG    0
  43. #define MAPI_TO        1
  44. #define MAPI_CC        2
  45. #define MAPI_BCC    3
  46.  
  47. #define MAPI_LOGON_UI        0x0001
  48. #define MAPI_NEW_SESSION    0x0002
  49. #define MAPI_FORCE_DOWNLOAD    0x1000
  50. #define MAPI_LOGOFF_SHARED    0x0001
  51. #define MAPI_LOGOFF_UI        0x0002
  52. #define MAPI_DIALOG        0x0008
  53. #define MAPI_UNREAD_ONLY    0x0020
  54. #define MAPI_LONG_MSGID        0x4000
  55. #define MAPI_GUARANTEE_FIFO    0x0100
  56. #define MAPI_ENVELOPE_ONLY    0x0040
  57. #define MAPI_PEEK        0x0080
  58. #define MAPI_BODY_AS_FILE    0x0200
  59. #define MAPI_SUPPRESS_ATTACH    0x0800
  60. #define MAPI_AB_NOMODIFY    0x0400
  61. #define MAPI_OLE        0x0001
  62. #define MAPI_OLE_STATIC        0x0002
  63. #define MAPI_UNREAD        0x0001
  64. #define MAPI_RECEIPT_REQUESTED    0x0002
  65. #define MAPI_SENT        0x0004
  66.  
  67. #ifndef RC_INVOKED
  68. typedef unsigned long FLAGS;
  69. typedef unsigned long LHANDLE;
  70. typedef unsigned long FAR *LPLHANDLE, FAR *LPULONG;
  71.  
  72. typedef struct {
  73.   ULONG ulReserved;
  74.   ULONG ulRecipClass;
  75.   LPSTR lpszName;
  76.   LPSTR lpszAddress;
  77.   ULONG ulEIDSize;
  78.   LPVOID lpEntryID;
  79. } MapiRecipDesc, *lpMapiRecipDesc;
  80. typedef struct {
  81.   ULONG ulReserved;
  82.   ULONG flFlags;
  83.   ULONG nPosition;
  84.   LPSTR lpszPathName;
  85.   LPSTR lpszFileName;
  86.   LPVOID lpFileType;
  87. } MapiFileDesc, *lpMapiFileDesc;
  88. typedef struct {
  89.   ULONG ulReserved;
  90.   ULONG cbTag;
  91.   LPBYTE lpTag;
  92.   ULONG cbEncoding;
  93.   LPBYTE lpEncoding;
  94. } MapiFileTagExt, *lpMapiFileTagExt;
  95. typedef struct {
  96.   ULONG ulReserved;
  97.   LPSTR lpszSubject;
  98.   LPSTR lpszNoteText;
  99.   LPSTR lpszMessageType;
  100.   LPSTR lpszDateReceived;
  101.   LPSTR lpszConversationID;
  102.   FLAGS flFlags;
  103.   lpMapiRecipDesc lpOriginator;
  104.   ULONG nRecipCount;
  105.   lpMapiRecipDesc lpRecips;
  106.   ULONG nFileCount;
  107.   lpMapiFileDesc lpFiles;
  108. } MapiMessage, *lpMapiMessage;
  109.  
  110. ULONG PASCAL MAPILogon (ULONG,LPSTR,LPSTR,FLAGS,ULONG,LPLHANDLE);
  111. ULONG PASCAL MAPISendMail (LHANDLE,ULONG,lpMapiMessage,FLAGS,ULONG);
  112. ULONG PASCAL MAPISendDocuments (ULONG,LPSTR,LPSTR,LPSTR,ULONG);
  113. ULONG PASCAL MAPIReadMail (LHANDLE,ULONG,LPSTR,FLAGS,ULONG,
  114.                lpMapiMessage*);
  115. ULONG PASCAL MAPIFindNext (LHANDLE,ULONG,LPSTR,LPSTR,FLAGS,ULONG,LPSTR);
  116. ULONG PASCAL MAPIResolveName (LHANDLE,ULONG,LPSTR,FLAGS,ULONG,
  117.                              lpMapiRecipDesc*);
  118. ULONG PASCAL MAPIAddress (LHANDLE,ULONG,LPSTR,ULONG,LPSTR,ULONG,
  119.               lpMapiRecipDesc,FLAGS,ULONG,LPULONG,
  120.               lpMapiRecipDesc*);
  121. ULONG PASCAL MAPIFreeBuffer (LPVOID);
  122. ULONG PASCAL MAPIDetails (LHANDLE,ULONG,lpMapiRecipDesc,FLAGS,ULONG);
  123. ULONG PASCAL MAPISaveMail (LHANDLE,ULONG,lpMapiMessage lpszMessage,
  124.                            FLAGS,ULONG,LPSTR);
  125. ULONG PASCAL MAPIDeleteMail (LHANDLE lpSession,ULONG,LPSTR,FLAGS,ULONG);
  126. ULONG PASCAL MAPILogoff (LHANDLE,ULONG,FLAGS,ULONG);
  127. /* Netscape extensions.  */
  128. ULONG PASCAL MAPIGetNetscapeVersion (void);
  129. ULONG PASCAL MAPI_NSCP_SynchronizeClient (LHANDLE,ULONG);
  130.  
  131. /* Handles for use with GetProcAddress */
  132. typedef ULONG (PASCAL * LPMAPILOGON) (ULONG,LPSTR,LPSTR,FLAGS,ULONG,
  133.                       LPLHANDLE);
  134. typedef ULONG (PASCAL * LPMAPISENDMAIL) (LHANDLE,ULONG,lpMapiMessage,
  135.                      FLAGS,ULONG);
  136. typedef ULONG (PASCAL * LPMAPISENDDOCUMENTS) (ULONG,LPSTR,LPSTR,
  137.                           LPSTR,ULONG);
  138. typedef ULONG (PASCAL * LPMAPIREADMAIL) (LHANDLE,ULONG,LPSTR,FLAGS,
  139.                      ULONG,lpMapiMessage*);
  140. typedef ULONG (PASCAL * LPMAPIFINDNEXT) (LHANDLE,ULONG,LPSTR,LPSTR,
  141.                      FLAGS,ULONG,LPSTR);
  142. typedef ULONG (PASCAL * LPMAPIRESOLVENAME) (LHANDLE,ULONG,LPSTR,FLAGS,
  143.                         ULONG,lpMapiRecipDesc*);
  144. typedef ULONG (PASCAL * LPMAPIADDRESS) (LHANDLE,ULONG,LPSTR,ULONG,LPSTR,
  145.                     ULONG,lpMapiRecipDesc,FLAGS,ULONG,
  146.                     LPULONG,lpMapiRecipDesc*);
  147. typedef ULONG (PASCAL * LPMAPIFREEBUFFER) (LPVOID lpv);
  148. typedef ULONG (PASCAL * LPMAPIDETAILS) (LHANDLE,ULONG,lpMapiRecipDesc,
  149.                     FLAGS,ULONG);
  150. typedef ULONG (PASCAL * LPMAPISAVEMAIL) (LHANDLE,ULONG,lpMapiMessage,
  151.                      FLAGS,ULONG,LPSTR);
  152. typedef ULONG (PASCAL * LPMAPIDELETEMAIL) (LHANDLE lpSession,ULONG,
  153.                        LPSTR, FLAGS,ULONG);
  154. typedef ULONG (PASCAL * LPMAPILOGOFF)(LHANDLE,ULONG,FLAGS,ULONG);
  155.  
  156. #endif /* RC_INVOKED */
  157.  
  158. #ifdef __cplusplus
  159. }
  160. #endif
  161.  
  162. #endif    /* Not _MAPI_H */
  163.  
  164.