mapi.h 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. /**
  2. * This file has no copyright assigned and is placed in the Public Domain.
  3. * This file is part of the mingw-w64 runtime package.
  4. * No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5. */
  6. #ifndef MAPI_H
  7. #define MAPI_H
  8. #ifdef __cplusplus
  9. extern "C" {
  10. #endif
  11. #ifndef EXPORT
  12. #define EXPORT
  13. #endif
  14. typedef unsigned __LONG32 *LPULONG;
  15. typedef unsigned __LONG32 FLAGS;
  16. #ifndef __LHANDLE
  17. #define __LHANDLE
  18. typedef ULONG_PTR LHANDLE,*LPLHANDLE;
  19. #endif
  20. typedef unsigned char *LPBYTE;
  21. #define lhSessionNull ((LHANDLE)0)
  22. typedef struct {
  23. ULONG ulReserved;
  24. ULONG flFlags;
  25. ULONG nPosition;
  26. LPSTR lpszPathName;
  27. LPSTR lpszFileName;
  28. LPVOID lpFileType;
  29. } MapiFileDesc,*lpMapiFileDesc;
  30. #define MAPI_OLE 0x00000001
  31. #define MAPI_OLE_STATIC 0x00000002
  32. typedef struct {
  33. ULONG ulReserved;
  34. ULONG cbTag;
  35. LPBYTE lpTag;
  36. ULONG cbEncoding;
  37. LPBYTE lpEncoding;
  38. } MapiFileTagExt,*lpMapiFileTagExt;
  39. typedef struct {
  40. ULONG ulReserved;
  41. ULONG ulRecipClass;
  42. LPSTR lpszName;
  43. LPSTR lpszAddress;
  44. ULONG ulEIDSize;
  45. LPVOID lpEntryID;
  46. } MapiRecipDesc,*lpMapiRecipDesc;
  47. #ifndef MAPI_ORIG
  48. #define MAPI_ORIG 0
  49. #define MAPI_TO 1
  50. #define MAPI_CC 2
  51. #define MAPI_BCC 3
  52. #endif
  53. typedef struct {
  54. ULONG ulReserved;
  55. LPSTR lpszSubject;
  56. LPSTR lpszNoteText;
  57. LPSTR lpszMessageType;
  58. LPSTR lpszDateReceived;
  59. LPSTR lpszConversationID;
  60. FLAGS flFlags;
  61. lpMapiRecipDesc lpOriginator;
  62. ULONG nRecipCount;
  63. lpMapiRecipDesc lpRecips;
  64. ULONG nFileCount;
  65. lpMapiFileDesc lpFiles;
  66. } MapiMessage,*lpMapiMessage;
  67. #define MAPI_UNREAD 0x00000001
  68. #define MAPI_RECEIPT_REQUESTED 0x00000002
  69. #define MAPI_SENT 0x00000004
  70. #define MAPI_LOGON_UI 0x00000001
  71. #ifndef MAPI_PASSWORD_UI
  72. #define MAPI_PASSWORD_UI 0x00020000
  73. #endif
  74. #define MAPI_NEW_SESSION 0x00000002
  75. #define MAPI_FORCE_DOWNLOAD 0x00001000
  76. #define MAPI_EXTENDED 0x00000020
  77. #ifndef MAPI_DIALOG
  78. #define MAPI_DIALOG 0x00000008
  79. #endif
  80. #define MAPI_UNREAD_ONLY 0x00000020
  81. #define MAPI_GUARANTEE_FIFO 0x00000100
  82. #define MAPI_LONG_MSGID 0x00004000
  83. #define MAPI_PEEK 0x00000080
  84. #define MAPI_SUPPRESS_ATTACH 0x00000800
  85. #define MAPI_ENVELOPE_ONLY 0x00000040
  86. #define MAPI_BODY_AS_FILE 0x00000200
  87. #define MAPI_AB_NOMODIFY 0x00000400
  88. typedef ULONG (WINAPI MAPILOGON)(ULONG_PTR ulUIParam,LPSTR lpszProfileName,LPSTR lpszPassword,FLAGS flFlags,ULONG ulReserved,LPLHANDLE lplhSession);
  89. typedef MAPILOGON *LPMAPILOGON;
  90. MAPILOGON MAPILogon;
  91. typedef ULONG (WINAPI MAPILOGOFF)(LHANDLE lhSession,ULONG_PTR ulUIParam,FLAGS flFlags,ULONG ulReserved);
  92. typedef MAPILOGOFF *LPMAPILOGOFF;
  93. MAPILOGOFF MAPILogoff;
  94. typedef ULONG (WINAPI MAPISENDMAIL)(LHANDLE lhSession,ULONG_PTR ulUIParam,lpMapiMessage lpMessage,FLAGS flFlags,ULONG ulReserved);
  95. typedef MAPISENDMAIL *LPMAPISENDMAIL;
  96. MAPISENDMAIL MAPISendMail;
  97. typedef ULONG (WINAPI MAPISENDDOCUMENTS)(ULONG_PTR ulUIParam,LPSTR lpszDelimChar,LPSTR lpszFilePaths,LPSTR lpszFileNames,ULONG ulReserved);
  98. typedef MAPISENDDOCUMENTS *LPMAPISENDDOCUMENTS;
  99. MAPISENDDOCUMENTS MAPISendDocuments;
  100. typedef ULONG (WINAPI MAPIFINDNEXT)(LHANDLE lhSession,ULONG_PTR ulUIParam,LPSTR lpszMessageType,LPSTR lpszSeedMessageID,FLAGS flFlags,ULONG ulReserved,LPSTR lpszMessageID);
  101. typedef MAPIFINDNEXT *LPMAPIFINDNEXT;
  102. MAPIFINDNEXT MAPIFindNext;
  103. typedef ULONG (WINAPI MAPIREADMAIL)(LHANDLE lhSession,ULONG_PTR ulUIParam,LPSTR lpszMessageID,FLAGS flFlags,ULONG ulReserved,lpMapiMessage *lppMessage);
  104. typedef MAPIREADMAIL *LPMAPIREADMAIL;
  105. MAPIREADMAIL MAPIReadMail;
  106. typedef ULONG (WINAPI MAPISAVEMAIL)(LHANDLE lhSession,ULONG_PTR ulUIParam,lpMapiMessage lpMessage,FLAGS flFlags,ULONG ulReserved,LPSTR lpszMessageID);
  107. typedef MAPISAVEMAIL *LPMAPISAVEMAIL;
  108. MAPISAVEMAIL MAPISaveMail;
  109. typedef ULONG (WINAPI MAPIDELETEMAIL)(LHANDLE lhSession,ULONG_PTR ulUIParam,LPSTR lpszMessageID,FLAGS flFlags,ULONG ulReserved);
  110. typedef MAPIDELETEMAIL *LPMAPIDELETEMAIL;
  111. MAPIDELETEMAIL MAPIDeleteMail;
  112. typedef ULONG (EXPORT WINAPI *LPMAPIFREEBUFFER)(LPVOID pv);
  113. ULONG WINAPI MAPIFreeBuffer(LPVOID pv);
  114. typedef ULONG (WINAPI MAPIADDRESS)(LHANDLE lhSession,ULONG_PTR ulUIParam,LPSTR lpszCaption,ULONG nEditFields,LPSTR lpszLabels,ULONG nRecips,lpMapiRecipDesc lpRecips,FLAGS flFlags,ULONG ulReserved,LPULONG lpnNewRecips,lpMapiRecipDesc *lppNewRecips);
  115. typedef MAPIADDRESS *LPMAPIADDRESS;
  116. MAPIADDRESS MAPIAddress;
  117. typedef ULONG (WINAPI MAPIDETAILS)(LHANDLE lhSession,ULONG_PTR ulUIParam,lpMapiRecipDesc lpRecip,FLAGS flFlags,ULONG ulReserved);
  118. typedef MAPIDETAILS *LPMAPIDETAILS;
  119. MAPIDETAILS MAPIDetails;
  120. typedef ULONG (WINAPI MAPIRESOLVENAME)(LHANDLE lhSession,ULONG_PTR ulUIParam,LPSTR lpszName,FLAGS flFlags,ULONG ulReserved,lpMapiRecipDesc *lppRecip);
  121. typedef MAPIRESOLVENAME *LPMAPIRESOLVENAME;
  122. MAPIRESOLVENAME MAPIResolveName;
  123. #ifndef SUCCESS_SUCCESS
  124. #define SUCCESS_SUCCESS 0
  125. #endif
  126. #define MAPI_USER_ABORT 1
  127. #define MAPI_E_USER_ABORT MAPI_USER_ABORT
  128. #define MAPI_E_FAILURE 2
  129. #define MAPI_E_LOGON_FAILURE 3
  130. #define MAPI_E_LOGIN_FAILURE MAPI_E_LOGON_FAILURE
  131. #define MAPI_E_DISK_FULL 4
  132. #define MAPI_E_INSUFFICIENT_MEMORY 5
  133. #define MAPI_E_ACCESS_DENIED 6
  134. #define MAPI_E_TOO_MANY_SESSIONS 8
  135. #define MAPI_E_TOO_MANY_FILES 9
  136. #define MAPI_E_TOO_MANY_RECIPIENTS 10
  137. #define MAPI_E_ATTACHMENT_NOT_FOUND 11
  138. #define MAPI_E_ATTACHMENT_OPEN_FAILURE 12
  139. #define MAPI_E_ATTACHMENT_WRITE_FAILURE 13
  140. #define MAPI_E_UNKNOWN_RECIPIENT 14
  141. #define MAPI_E_BAD_RECIPTYPE 15
  142. #define MAPI_E_NO_MESSAGES 16
  143. #define MAPI_E_INVALID_MESSAGE 17
  144. #define MAPI_E_TEXT_TOO_LARGE 18
  145. #define MAPI_E_INVALID_SESSION 19
  146. #define MAPI_E_TYPE_NOT_SUPPORTED 20
  147. #define MAPI_E_AMBIGUOUS_RECIPIENT 21
  148. #define MAPI_E_AMBIG_RECIP MAPI_E_AMBIGUOUS_RECIPIENT
  149. #define MAPI_E_MESSAGE_IN_USE 22
  150. #define MAPI_E_NETWORK_FAILURE 23
  151. #define MAPI_E_INVALID_EDITFIELDS 24
  152. #define MAPI_E_INVALID_RECIPS 25
  153. #define MAPI_E_NOT_SUPPORTED 26
  154. #ifdef MAPIX_H
  155. STDMETHODIMP_(SCODE) ScMAPIXFromSMAPI(LHANDLE lhSimpleSession,ULONG ulFlags,LPCIID lpInterface,LPMAPISESSION*lppMAPISession);
  156. #endif
  157. #ifdef __cplusplus
  158. }
  159. #endif
  160. #endif