dbghelp: Packing for minidump structures is 4 bytes.
[wine] / include / mapi.h
1 /*
2  * Copyright (C) 2000 François Gouget
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17  */
18
19 #ifndef MAPI_H
20 #define MAPI_H
21
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
25
26 /* Some types */
27
28 #ifndef __LHANDLE
29 #define __LHANDLE
30 typedef unsigned long           LHANDLE, *LPLHANDLE;
31 #endif
32 #define lhSessionNull           ((LHANDLE)0)
33
34 typedef unsigned long           FLAGS;
35
36 typedef struct
37 {
38     ULONG ulReserved;
39     ULONG flFlags;
40     ULONG nPosition;
41     LPSTR lpszPathName;
42     LPSTR lpszFileName;
43     LPVOID lpFileType;
44 } MapiFileDesc, *lpMapiFileDesc;
45
46 #ifndef MAPI_ORIG
47 #define MAPI_ORIG   0
48 #define MAPI_TO     1
49 #define MAPI_CC     2
50 #define MAPI_BCC    3
51 #endif
52
53 typedef struct
54 {
55     ULONG ulReserved;
56     ULONG ulRecipClass;
57     LPSTR lpszName;
58     LPSTR lpszAddress;
59     ULONG ulEIDSize;
60     LPVOID lpEntryID;
61 } MapiRecipDesc, *lpMapiRecipDesc;
62
63 typedef struct
64 {
65     ULONG ulReserved;
66     LPSTR lpszSubject;
67     LPSTR lpszNoteText;
68     LPSTR lpszMessageType;
69     LPSTR lpszDateReceived;
70     LPSTR lpszConversationID;
71     FLAGS flFlags;
72     lpMapiRecipDesc lpOriginator;
73     ULONG nRecipCount;
74     lpMapiRecipDesc lpRecips;
75     ULONG nFileCount;
76     lpMapiFileDesc lpFiles;
77 } MapiMessage, *lpMapiMessage;
78
79
80 /* Error codes */
81
82 #define SUCCESS_SUCCESS                 0
83 #define MAPI_USER_ABORT                 1
84 #define MAPI_E_USER_ABORT               MAPI_USER_ABORT
85 #define MAPI_E_FAILURE                  2
86 #define MAPI_E_LOGON_FAILURE            3
87 #define MAPI_E_LOGIN_FAILURE            MAPI_E_LOGON_FAILURE
88 #define MAPI_E_DISK_FULL                4
89 #define MAPI_E_INSUFFICIENT_MEMORY      5
90 #define MAPI_E_ACCESS_DENIED            6
91 #define MAPI_E_TOO_MANY_SESSIONS        8
92 #define MAPI_E_TOO_MANY_FILES           9
93 #define MAPI_E_TOO_MANY_RECIPIENTS      10
94 #define MAPI_E_ATTACHMENT_NOT_FOUND     11
95 #define MAPI_E_ATTACHMENT_OPEN_FAILURE  12
96 #define MAPI_E_ATTACHMENT_WRITE_FAILURE 13
97 #define MAPI_E_UNKNOWN_RECIPIENT        14
98 #define MAPI_E_BAD_RECIPTYPE            15
99 #define MAPI_E_NO_MESSAGES              16
100 #define MAPI_E_INVALID_MESSAGE          17
101 #define MAPI_E_TEXT_TOO_LARGE           18
102 #define MAPI_E_INVALID_SESSION          19
103 #define MAPI_E_TYPE_NOT_SUPPORTED       20
104 #define MAPI_E_AMBIGUOUS_RECIPIENT      21
105 #define MAPI_E_AMBIG_RECIP              MAPI_E_AMBIGUOUS_RECIPIENT
106 #define MAPI_E_MESSAGE_IN_USE           22
107 #define MAPI_E_NETWORK_FAILURE          23
108 #define MAPI_E_INVALID_EDITFIELDS       24
109 #define MAPI_E_INVALID_RECIPS           25
110 #define MAPI_E_NOT_SUPPORTED            26
111
112
113 /* MAPILogon */
114
115 #define MAPI_LOGON_UI           0x00000001
116 #define MAPI_PASSWORD_UI        0x00020000
117 #define MAPI_NEW_SESSION        0x00000002
118 #define MAPI_FORCE_DOWNLOAD     0x00001000
119 #define MAPI_EXTENDED           0x00000020
120
121
122 /* MAPISendMail */
123
124 #define MAPI_DIALOG             0x00000008
125
126
127 #ifdef __cplusplus
128 }
129 #endif
130
131 #endif /* MAPI_H */