1 | /*
|
---|
2 | * Copyright (C) 1998 Justin Bradford
|
---|
3 | * Copyright (c) 2009 Owen Rudge for CodeWeavers
|
---|
4 | *
|
---|
5 | * This library is free software; you can redistribute it and/or
|
---|
6 | * modify it under the terms of the GNU Lesser General Public
|
---|
7 | * License as published by the Free Software Foundation; either
|
---|
8 | * version 2.1 of the License, or (at your option) any later version.
|
---|
9 | *
|
---|
10 | * This library is distributed in the hope that it will be useful,
|
---|
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
---|
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
---|
13 | * Lesser General Public License for more details.
|
---|
14 | *
|
---|
15 | * You should have received a copy of the GNU Lesser General Public
|
---|
16 | * License along with this library; if not, write to the Free Software
|
---|
17 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
---|
18 | */
|
---|
19 |
|
---|
20 | /*
|
---|
21 | * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
|
---|
22 | * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
|
---|
23 | * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
|
---|
24 | * a choice of LGPL license versions is made available with the language indicating
|
---|
25 | * that LGPLv2 or any later version may be used, or where a choice of which version
|
---|
26 | * of the LGPL is applied is otherwise unspecified.
|
---|
27 | */
|
---|
28 |
|
---|
29 | #ifndef MAPIDEFS_H
|
---|
30 | #define MAPIDEFS_H
|
---|
31 |
|
---|
32 | #include <windows.h>
|
---|
33 | #include <winerror.h>
|
---|
34 | #include <objbase.h>
|
---|
35 | #include <stddef.h>
|
---|
36 |
|
---|
37 | /* Some types from other headers */
|
---|
38 | #ifndef __LHANDLE
|
---|
39 | #define __LHANDLE
|
---|
40 | typedef ULONG_PTR LHANDLE, *LPLHANDLE;
|
---|
41 | #endif
|
---|
42 |
|
---|
43 | #ifndef _tagCY_DEFINED
|
---|
44 | #define _tagCY_DEFINED
|
---|
45 | typedef union tagCY
|
---|
46 | {
|
---|
47 | struct
|
---|
48 | {
|
---|
49 | #ifdef WORDS_BIGENDIAN
|
---|
50 | LONG Hi;
|
---|
51 | ULONG Lo;
|
---|
52 | #else
|
---|
53 | ULONG Lo;
|
---|
54 | LONG Hi;
|
---|
55 | #endif
|
---|
56 | } DUMMYSTRUCTNAME;
|
---|
57 | LONGLONG int64;
|
---|
58 | } CY;
|
---|
59 | typedef CY CURRENCY;
|
---|
60 | #endif /* _tagCY_DEFINED */
|
---|
61 |
|
---|
62 |
|
---|
63 | #ifndef _FILETIME_
|
---|
64 | #define _FILETIME_
|
---|
65 | typedef struct _FILETIME
|
---|
66 | {
|
---|
67 | #ifdef WORDS_BIGENDIAN
|
---|
68 | DWORD dwHighDateTime;
|
---|
69 | DWORD dwLowDateTime;
|
---|
70 | #else
|
---|
71 | DWORD dwLowDateTime;
|
---|
72 | DWORD dwHighDateTime;
|
---|
73 | #endif
|
---|
74 | } FILETIME, *PFILETIME, *LPFILETIME;
|
---|
75 | #endif
|
---|
76 |
|
---|
77 | /* Memory allocation routines */
|
---|
78 | typedef SCODE (WINAPI ALLOCATEBUFFER)(ULONG,LPVOID*);
|
---|
79 | typedef SCODE (WINAPI ALLOCATEMORE)(ULONG,LPVOID,LPVOID*);
|
---|
80 | typedef ULONG (WINAPI FREEBUFFER)(LPVOID);
|
---|
81 |
|
---|
82 | typedef ALLOCATEBUFFER *LPALLOCATEBUFFER;
|
---|
83 | typedef ALLOCATEMORE *LPALLOCATEMORE;
|
---|
84 | typedef FREEBUFFER *LPFREEBUFFER;
|
---|
85 |
|
---|
86 | /* MAPI exposed interfaces */
|
---|
87 | typedef const IID *LPCIID;
|
---|
88 |
|
---|
89 | typedef struct IAddrBook IAddrBook;
|
---|
90 | typedef IAddrBook *LPADRBOOK;
|
---|
91 | typedef struct IABContainer IABContainer;
|
---|
92 | typedef IABContainer *LPABCONT;
|
---|
93 | typedef struct IAttach *LPATTACH;
|
---|
94 | typedef struct IDistList IDistList;
|
---|
95 | typedef IDistList *LPDISTLIST;
|
---|
96 | typedef struct IMailUser IMailUser;
|
---|
97 | typedef IMailUser *LPMAILUSER;
|
---|
98 | typedef struct IMAPIAdviseSink *LPMAPIADVISESINK;
|
---|
99 | typedef struct IMAPIContainer *LPMAPICONTAINER;
|
---|
100 | typedef struct IMAPIFolder *LPMAPIFOLDER;
|
---|
101 | typedef struct IMAPIProgress IMAPIProgress;
|
---|
102 | typedef IMAPIProgress *LPMAPIPROGRESS;
|
---|
103 | typedef struct IMAPIStatus IMAPIStatus;
|
---|
104 | typedef IMAPIStatus *LPMAPISTATUS;
|
---|
105 | typedef struct IMessage *LPMESSAGE;
|
---|
106 | typedef struct IProfSect IProfSect;
|
---|
107 | typedef IProfSect *LPPROFSECT;
|
---|
108 | typedef struct IProviderAdmin IProviderAdmin;
|
---|
109 | typedef IProviderAdmin *LPPROVIDERADMIN;
|
---|
110 |
|
---|
111 | #ifndef MAPI_DIM
|
---|
112 | # define MAPI_DIM 1 /* Default to one dimension for variable length arrays */
|
---|
113 | #endif
|
---|
114 |
|
---|
115 | /* Flags for abFlags[0] */
|
---|
116 | #define MAPI_NOTRESERVED 0x08
|
---|
117 | #define MAPI_NOW 0x10
|
---|
118 | #define MAPI_THISSESSION 0x20
|
---|
119 | #define MAPI_NOTRECIP 0x40
|
---|
120 | #define MAPI_SHORTTERM 0x80
|
---|
121 |
|
---|
122 | /* Flags for abFlags[1] */
|
---|
123 | #define MAPI_COMPOUND 0x80
|
---|
124 |
|
---|
125 | typedef struct _ENTRYID
|
---|
126 | {
|
---|
127 | BYTE abFlags[4];
|
---|
128 | BYTE ab[MAPI_DIM];
|
---|
129 | } ENTRYID, *LPENTRYID;
|
---|
130 |
|
---|
131 | /* MAPI GUID's */
|
---|
132 | typedef struct _MAPIUID
|
---|
133 | {
|
---|
134 | BYTE ab[sizeof(GUID)];
|
---|
135 | } MAPIUID, *LPMAPIUID;
|
---|
136 |
|
---|
137 | #define IsEqualMAPIUID(pl,pr) (!memcmp((pl),(pr),sizeof(MAPIUID)))
|
---|
138 |
|
---|
139 | #define MAPI_ONE_OFF_UID { 0x81,0x2b,0x1f,0xa4,0xbe,0xa3,0x10,0x19,0x9d,0x6e, \
|
---|
140 | 0x00,0xdd,0x01,0x0f,0x54,0x02 }
|
---|
141 | #define MAPI_ONE_OFF_UNICODE 0x8000
|
---|
142 | #define MAPI_ONE_OFF_NO_RICH_INFO 0x0001
|
---|
143 |
|
---|
144 | /* Object types */
|
---|
145 | #define MAPI_STORE 1U
|
---|
146 | #define MAPI_ADDRBOOK 2U
|
---|
147 | #define MAPI_FOLDER 3U
|
---|
148 | #define MAPI_ABCONT 4U
|
---|
149 | #define MAPI_MESSAGE 5U
|
---|
150 | #define MAPI_MAILUSER 6U
|
---|
151 | #define MAPI_ATTACH 7U
|
---|
152 | #define MAPI_DISTLIST 8U
|
---|
153 | #define MAPI_PROFSECT 9U
|
---|
154 | #define MAPI_STATUS 10U
|
---|
155 | #define MAPI_SESSION 11U
|
---|
156 | #define MAPI_FORMINFO 12U
|
---|
157 |
|
---|
158 | /* Flags for various calls */
|
---|
159 | #define MAPI_MODIFY 0x00000001U /* Object can be modified */
|
---|
160 | #define MAPI_CREATE 0x00000002U /* Object can be created */
|
---|
161 | #define MAPI_ACCESS_MODIFY MAPI_MODIFY /* Want write access */
|
---|
162 | #define MAPI_ACCESS_READ 0x00000002U /* Want read access */
|
---|
163 | #define MAPI_ACCESS_DELETE 0x00000004U /* Want delete access */
|
---|
164 | #define MAPI_ACCESS_CREATE_HIERARCHY 0x00000008U
|
---|
165 | #define MAPI_ACCESS_CREATE_CONTENTS 0x00000010U
|
---|
166 | #define MAPI_ACCESS_CREATE_ASSOCIATED 0x00000020U
|
---|
167 | #define MAPI_USE_DEFAULT 0x00000040U
|
---|
168 | #define MAPI_UNICODE 0x80000000U /* Strings in this call are Unicode */
|
---|
169 |
|
---|
170 | #if defined (UNICODE) || defined (__WINESRC__)
|
---|
171 | #define fMapiUnicode MAPI_UNICODE
|
---|
172 | #else
|
---|
173 | #define fMapiUnicode 0U
|
---|
174 | #endif
|
---|
175 |
|
---|
176 | /* IMAPISession::OpenMessageStore() flags */
|
---|
177 | #define MDB_NO_DIALOG 0x00000001
|
---|
178 |
|
---|
179 | /* Types of message receivers */
|
---|
180 | #ifndef MAPI_ORIG
|
---|
181 | #define MAPI_ORIG 0 /* The original author */
|
---|
182 | #define MAPI_TO 1 /* The primary message receiver */
|
---|
183 | #define MAPI_CC 2 /* A carbon copy receiver */
|
---|
184 | #define MAPI_BCC 3 /* A blind carbon copy receiver */
|
---|
185 | #define MAPI_P1 0x10000000 /* A message resend */
|
---|
186 | #define MAPI_SUBMITTED 0x80000000 /* This message has already been sent */
|
---|
187 | #endif
|
---|
188 |
|
---|
189 | #ifndef cchProfileNameMax
|
---|
190 | #define cchProfileNameMax 64 /* Maximum length of a profile name */
|
---|
191 | #define cchProfilePassMax 64 /* Maximum length of a profile password */
|
---|
192 | #endif
|
---|
193 |
|
---|
194 | /* Properties: The are the contents of cells in MAPI tables, as well as the
|
---|
195 | * values returned when object properties are queried.
|
---|
196 | */
|
---|
197 |
|
---|
198 | /* Property types */
|
---|
199 | #define PT_UNSPECIFIED 0U
|
---|
200 | #define PT_NULL 1U
|
---|
201 | #define PT_I2 2U
|
---|
202 | #define PT_SHORT PT_I2
|
---|
203 | #define PT_LONG 3U
|
---|
204 | #define PT_I4 PT_LONG
|
---|
205 | #define PT_R4 4U
|
---|
206 | #define PT_FLOAT PT_R4
|
---|
207 | #define PT_DOUBLE 5U
|
---|
208 | #define PT_R8 PT_DOUBLE
|
---|
209 | #define PT_CURRENCY 6U
|
---|
210 | #define PT_APPTIME 7U
|
---|
211 | #define PT_ERROR 10U
|
---|
212 | #define PT_BOOLEAN 11U
|
---|
213 | #define PT_OBJECT 13U
|
---|
214 | #define PT_I8 20U
|
---|
215 | #define PT_LONGLONG PT_I8
|
---|
216 | #define PT_STRING8 30U
|
---|
217 | #define PT_UNICODE 31U
|
---|
218 | #define PT_SYSTIME 64U
|
---|
219 | #define PT_CLSID 72U
|
---|
220 | #define PT_BINARY 258U
|
---|
221 |
|
---|
222 | #define MV_FLAG 0x1000 /* This property type is multi-valued (an array) */
|
---|
223 | #define MV_INSTANCE 0x2000
|
---|
224 | #define MVI_FLAG (MV_FLAG|MV_INSTANCE)
|
---|
225 | #define MVI_PROP(t) ((t)|MVI_FLAG)
|
---|
226 |
|
---|
227 | #ifndef WINE_NO_UNICODE_MACROS
|
---|
228 | # ifdef UNICODE
|
---|
229 | # define PT_TSTRING PT_UNICODE
|
---|
230 | # define PT_MV_TSTRING (MV_FLAG|PT_UNICODE)
|
---|
231 | # define LPSZ lpszW
|
---|
232 | # define LPPSZ lppszW
|
---|
233 | # define MVSZ MVszW
|
---|
234 | # else
|
---|
235 | # define PT_TSTRING PT_STRING8
|
---|
236 | # define PT_MV_TSTRING (MV_FLAG|PT_STRING8)
|
---|
237 | # define LPSZ lpszA
|
---|
238 | # define LPPSZ lppszA
|
---|
239 | # define MVSZ MVszA
|
---|
240 | # endif
|
---|
241 | #endif
|
---|
242 |
|
---|
243 | #define PROP_TYPE_MASK 0xFFFFU
|
---|
244 | #define PROP_TYPE(t) ((t) & PROP_TYPE_MASK)
|
---|
245 | #define PROP_ID(t) ((t) >> 16)
|
---|
246 | #define PROP_TAG(t,id) (((id) << 16) | t)
|
---|
247 | #define PROP_ID_NULL 0
|
---|
248 | #define PROP_ID_INVALID 0xFFFF
|
---|
249 | #define PR_NULL PROP_TAG(PT_NULL, PROP_ID_NULL)
|
---|
250 |
|
---|
251 | #define CHANGE_PROP_TYPE(t,typ) ((0xFFFF0000 & t) | typ)
|
---|
252 |
|
---|
253 | /* Multi-valued property types */
|
---|
254 | #define PT_MV_I2 (MV_FLAG|PT_I2)
|
---|
255 | #define PT_MV_SHORT PT_MV_I2
|
---|
256 | #define PT_MV_LONG (MV_FLAG|PT_LONG)
|
---|
257 | #define PT_MV_I4 PT_MV_LONG
|
---|
258 | #define PT_MV_R4 (MV_FLAG|PT_R4)
|
---|
259 | #define PT_MV_FLOAT PT_MV_R4
|
---|
260 | #define PT_MV_DOUBLE (MV_FLAG|PT_DOUBLE)
|
---|
261 | #define PT_MV_R8 PT_MV_DOUBLE
|
---|
262 | #define PT_MV_CURRENCY (MV_FLAG|PT_CURRENCY)
|
---|
263 | #define PT_MV_APPTIME (MV_FLAG|PT_APPTIME)
|
---|
264 | #define PT_MV_SYSTIME (MV_FLAG|PT_SYSTIME)
|
---|
265 | #define PT_MV_STRING8 (MV_FLAG|PT_STRING8)
|
---|
266 | #define PT_MV_BINARY (MV_FLAG|PT_BINARY)
|
---|
267 | #define PT_MV_UNICODE (MV_FLAG|PT_UNICODE)
|
---|
268 | #define PT_MV_CLSID (MV_FLAG|PT_CLSID)
|
---|
269 | #define PT_MV_I8 (MV_FLAG|PT_I8)
|
---|
270 | #define PT_MV_LONGLONG PT_MV_I8
|
---|
271 |
|
---|
272 |
|
---|
273 | /* The property tag structure. This describes a list of columns */
|
---|
274 | typedef struct _SPropTagArray
|
---|
275 | {
|
---|
276 | ULONG cValues; /* Number of elements in aulPropTag */
|
---|
277 | ULONG aulPropTag[MAPI_DIM]; /* Property tags */
|
---|
278 | } SPropTagArray, *LPSPropTagArray;
|
---|
279 |
|
---|
280 | #define CbNewSPropTagArray(c) (offsetof(SPropTagArray,aulPropTag)+(c)*sizeof(ULONG))
|
---|
281 | #define CbSPropTagArray(p) CbNewSPropTagArray((p)->cValues)
|
---|
282 | #define SizedSPropTagArray(n,id) \
|
---|
283 | struct _SPropTagArray_##id { ULONG cValues; ULONG aulPropTag[n]; } id
|
---|
284 |
|
---|
285 | /* Multi-valued PT_APPTIME property value */
|
---|
286 | typedef struct _SAppTimeArray
|
---|
287 | {
|
---|
288 | ULONG cValues; /* Number of doubles in lpat */
|
---|
289 | double *lpat; /* Pointer to double array of length cValues */
|
---|
290 | } SAppTimeArray;
|
---|
291 |
|
---|
292 | /* PT_BINARY property value */
|
---|
293 | typedef struct _SBinary
|
---|
294 | {
|
---|
295 | ULONG cb; /* Number of bytes in lpb */
|
---|
296 | LPBYTE lpb; /* Pointer to byte array of length cb */
|
---|
297 | } SBinary, *LPSBinary;
|
---|
298 |
|
---|
299 | /* Multi-valued PT_BINARY property value */
|
---|
300 | typedef struct _SBinaryArray
|
---|
301 | {
|
---|
302 | ULONG cValues; /* Number of SBinarys in lpbin */
|
---|
303 | SBinary *lpbin; /* Pointer to SBinary array of length cValues */
|
---|
304 | } SBinaryArray;
|
---|
305 |
|
---|
306 | typedef SBinaryArray ENTRYLIST, *LPENTRYLIST;
|
---|
307 |
|
---|
308 | /* Multi-valued PT_CY property value */
|
---|
309 | typedef struct _SCurrencyArray
|
---|
310 | {
|
---|
311 | ULONG cValues; /* Number of CYs in lpcu */
|
---|
312 | CY *lpcur; /* Pointer to CY array of length cValues */
|
---|
313 | } SCurrencyArray;
|
---|
314 |
|
---|
315 | /* Multi-valued PT_SYSTIME property value */
|
---|
316 | typedef struct _SDateTimeArray
|
---|
317 | {
|
---|
318 | ULONG cValues; /* Number of FILETIMEs in lpft */
|
---|
319 | FILETIME *lpft; /* Pointer to FILETIME array of length cValues */
|
---|
320 | } SDateTimeArray;
|
---|
321 |
|
---|
322 | /* Multi-valued PT_DOUBLE property value */
|
---|
323 | typedef struct _SDoubleArray
|
---|
324 | {
|
---|
325 | ULONG cValues; /* Number of doubles in lpdbl */
|
---|
326 | double *lpdbl; /* Pointer to double array of length cValues */
|
---|
327 | } SDoubleArray;
|
---|
328 |
|
---|
329 | /* Multi-valued PT_CLSID property value */
|
---|
330 | typedef struct _SGuidArray
|
---|
331 | {
|
---|
332 | ULONG cValues; /* Number of GUIDs in lpguid */
|
---|
333 | GUID *lpguid; /* Pointer to GUID array of length cValues */
|
---|
334 | } SGuidArray;
|
---|
335 |
|
---|
336 | /* Multi-valued PT_LONGLONG property value */
|
---|
337 | typedef struct _SLargeIntegerArray
|
---|
338 | {
|
---|
339 | ULONG cValues; /* Number of long64s in lpli */
|
---|
340 | LARGE_INTEGER *lpli; /* Pointer to long64 array of length cValues */
|
---|
341 | } SLargeIntegerArray;
|
---|
342 |
|
---|
343 | /* Multi-valued PT_LONG property value */
|
---|
344 | typedef struct _SLongArray
|
---|
345 | {
|
---|
346 | ULONG cValues; /* Number of longs in lpl */
|
---|
347 | LONG *lpl; /* Pointer to long array of length cValues */
|
---|
348 | } SLongArray;
|
---|
349 |
|
---|
350 | /* Multi-valued PT_STRING8 property value */
|
---|
351 | typedef struct _SLPSTRArray
|
---|
352 | {
|
---|
353 | ULONG cValues; /* Number of Ascii strings in lppszA */
|
---|
354 | LPSTR *lppszA; /* Pointer to Ascii string array of length cValues */
|
---|
355 | } SLPSTRArray;
|
---|
356 |
|
---|
357 | /* Multi-valued PT_FLOAT property value */
|
---|
358 | typedef struct _SRealArray
|
---|
359 | {
|
---|
360 | ULONG cValues; /* Number of floats in lpflt */
|
---|
361 | float *lpflt; /* Pointer to float array of length cValues */
|
---|
362 | } SRealArray;
|
---|
363 |
|
---|
364 | /* Multi-valued PT_SHORT property value */
|
---|
365 | typedef struct _SShortArray
|
---|
366 | {
|
---|
367 | ULONG cValues; /* Number of shorts in lpb */
|
---|
368 | short int *lpi; /* Pointer to short array of length cValues */
|
---|
369 | } SShortArray;
|
---|
370 |
|
---|
371 | /* Multi-valued PT_UNICODE property value */
|
---|
372 | typedef struct _SWStringArray
|
---|
373 | {
|
---|
374 | ULONG cValues; /* Number of Unicode strings in lppszW */
|
---|
375 | LPWSTR *lppszW; /* Pointer to Unicode string array of length cValues */
|
---|
376 | } SWStringArray;
|
---|
377 |
|
---|
378 | /* A property value */
|
---|
379 | typedef union _PV
|
---|
380 | {
|
---|
381 | short int i;
|
---|
382 | LONG l;
|
---|
383 | ULONG ul;
|
---|
384 | float flt;
|
---|
385 | double dbl;
|
---|
386 | unsigned short b;
|
---|
387 | CY cur;
|
---|
388 | double at;
|
---|
389 | FILETIME ft;
|
---|
390 | LPSTR lpszA;
|
---|
391 | SBinary bin;
|
---|
392 | LPWSTR lpszW;
|
---|
393 | LPGUID lpguid;
|
---|
394 | LARGE_INTEGER li;
|
---|
395 | SShortArray MVi;
|
---|
396 | SLongArray MVl;
|
---|
397 | SRealArray MVflt;
|
---|
398 | SDoubleArray MVdbl;
|
---|
399 | SCurrencyArray MVcur;
|
---|
400 | SAppTimeArray MVat;
|
---|
401 | SDateTimeArray MVft;
|
---|
402 | SBinaryArray MVbin;
|
---|
403 | SLPSTRArray MVszA;
|
---|
404 | SWStringArray MVszW;
|
---|
405 | SGuidArray MVguid;
|
---|
406 | SLargeIntegerArray MVli;
|
---|
407 | SCODE err;
|
---|
408 | LONG x;
|
---|
409 | } __UPV;
|
---|
410 |
|
---|
411 | /* Property value structure. This is essentially a mini-Variant */
|
---|
412 | typedef struct _SPropValue
|
---|
413 | {
|
---|
414 | ULONG ulPropTag; /* The property type */
|
---|
415 | ULONG dwAlignPad; /* Alignment, treat as reserved */
|
---|
416 | union _PV Value; /* The property value */
|
---|
417 | } SPropValue, *LPSPropValue;
|
---|
418 |
|
---|
419 | /* Structure describing a table row (a collection of property values) */
|
---|
420 | typedef struct _SRow
|
---|
421 | {
|
---|
422 | ULONG ulAdrEntryPad; /* Padding, treat as reserved */
|
---|
423 | ULONG cValues; /* Count of property values in lpProbs */
|
---|
424 | LPSPropValue lpProps; /* Pointer to an array of property values of length cValues */
|
---|
425 | } SRow, *LPSRow;
|
---|
426 |
|
---|
427 | /* Structure describing a set of table rows */
|
---|
428 | typedef struct _SRowSet
|
---|
429 | {
|
---|
430 | ULONG cRows; /* Count of rows in aRow */
|
---|
431 | SRow aRow[MAPI_DIM]; /* Array of rows of length cRows */
|
---|
432 | } SRowSet, *LPSRowSet;
|
---|
433 |
|
---|
434 | #define CbNewSRowSet(c) (offsetof(SRowSet,aRow)+(c)*sizeof(SRow))
|
---|
435 | #define CbSRowSet(p) CbNewSRowSet((p)->cRows)
|
---|
436 | #define SizedSRowSet(n,id) \
|
---|
437 | struct _SRowSet_##id { ULONG cRows; SRow aRow[n]; } id
|
---|
438 |
|
---|
439 | /* Structure describing a problem with a property */
|
---|
440 | typedef struct _SPropProblem
|
---|
441 | {
|
---|
442 | ULONG ulIndex; /* Index of the property */
|
---|
443 | ULONG ulPropTag; /* Property tag of the property */
|
---|
444 | SCODE scode; /* Error code of the problem */
|
---|
445 | } SPropProblem, *LPSPropProblem;
|
---|
446 |
|
---|
447 | /* A collection of property problems */
|
---|
448 | typedef struct _SPropProblemArray
|
---|
449 | {
|
---|
450 | ULONG cProblem; /* Number of problems in aProblem */
|
---|
451 | SPropProblem aProblem[MAPI_DIM]; /* Array of problems of length cProblem */
|
---|
452 | } SPropProblemArray, *LPSPropProblemArray;
|
---|
453 |
|
---|
454 | /* FPropContainsProp flags */
|
---|
455 | #define FL_FULLSTRING ((ULONG)0x00000) /* Exact string match */
|
---|
456 | #define FL_SUBSTRING ((ULONG)0x00001) /* Substring match */
|
---|
457 | #define FL_PREFIX ((ULONG)0x00002) /* Prefix match */
|
---|
458 | #define FL_IGNORECASE ((ULONG)0x10000) /* Case insensitive */
|
---|
459 | #define FL_IGNORENONSPACE ((ULONG)0x20000) /* Ignore non spacing characters */
|
---|
460 | #define FL_LOOSE ((ULONG)0x40000) /* Try very hard to match */
|
---|
461 |
|
---|
462 |
|
---|
463 | /* Table types returned by IMAPITable_GetStatus() */
|
---|
464 | #define TBLTYPE_SNAPSHOT 0U /* Table is fixed at creation time and contents do not change */
|
---|
465 | #define TBLTYPE_KEYSET 1U /* Table has a fixed number of rows, but row values may change */
|
---|
466 | #define TBLTYPE_DYNAMIC 2U /* Table values and the number of rows may change */
|
---|
467 |
|
---|
468 | /* Table status returned by IMAPITable_GetStatus() */
|
---|
469 | #define TBLSTAT_COMPLETE 0U /* All operations have completed (normal status) */
|
---|
470 | #define TBLSTAT_QCHANGED 7U /* Table data has changed as expected */
|
---|
471 | #define TBLSTAT_SORTING 9U /* Table is being asynchronously sorted */
|
---|
472 | #define TBLSTAT_SORT_ERROR 10U /* An error occurred while sorting the table */
|
---|
473 | #define TBLSTAT_SETTING_COLS 11U /* Table columns are being asynchronously changed */
|
---|
474 | #define TBLSTAT_SETCOL_ERROR 13U /* An error occurred during column changing */
|
---|
475 | #define TBLSTAT_RESTRICTING 14U /* Table rows are being asynchronously restricted */
|
---|
476 | #define TBLSTAT_RESTRICT_ERROR 15U /* An error occurred during row restriction */
|
---|
477 |
|
---|
478 | /* Flags for IMAPITable operations that can be asynchronous */
|
---|
479 | #define TBL_NOWAIT 1U /* Perform the operation asynchronously */
|
---|
480 | #define TBL_BATCH 2U /* Perform the operation when the results are needed */
|
---|
481 | #define TBL_ASYNC TBL_NOWAIT /* Synonym for TBL_NOWAIT */
|
---|
482 |
|
---|
483 | /* Flags for IMAPITable_FindRow() */
|
---|
484 | #define DIR_BACKWARD 1U /* Read rows backwards from the start bookmark */
|
---|
485 |
|
---|
486 | /* Table bookmarks */
|
---|
487 | typedef ULONG BOOKMARK;
|
---|
488 |
|
---|
489 | #define BOOKMARK_BEGINNING ((BOOKMARK)0) /* The first row */
|
---|
490 | #define BOOKMARK_CURRENT ((BOOKMARK)1) /* The curent table row */
|
---|
491 | #define BOOKMARK_END ((BOOKMARK)2) /* The last row */
|
---|
492 |
|
---|
493 | /* Row restrictions */
|
---|
494 | typedef struct _SRestriction* LPSRestriction;
|
---|
495 |
|
---|
496 | typedef struct _SAndRestriction
|
---|
497 | {
|
---|
498 | ULONG cRes;
|
---|
499 | LPSRestriction lpRes;
|
---|
500 | } SAndRestriction;
|
---|
501 |
|
---|
502 | typedef struct _SBitMaskRestriction
|
---|
503 | {
|
---|
504 | ULONG relBMR;
|
---|
505 | ULONG ulPropTag;
|
---|
506 | ULONG ulMask;
|
---|
507 | } SBitMaskRestriction;
|
---|
508 |
|
---|
509 | typedef struct _SCommentRestriction
|
---|
510 | {
|
---|
511 | ULONG cValues;
|
---|
512 | LPSRestriction lpRes;
|
---|
513 | LPSPropValue lpProp;
|
---|
514 | } SCommentRestriction;
|
---|
515 |
|
---|
516 | #define RELOP_LT 0U
|
---|
517 | #define RELOP_LE 1U
|
---|
518 | #define RELOP_GT 2U
|
---|
519 | #define RELOP_GE 3U
|
---|
520 | #define RELOP_EQ 4U
|
---|
521 | #define RELOP_NE 5U
|
---|
522 | #define RELOP_RE 6U
|
---|
523 |
|
---|
524 | typedef struct _SComparePropsRestriction
|
---|
525 | {
|
---|
526 | ULONG relop;
|
---|
527 | ULONG ulPropTag1;
|
---|
528 | ULONG ulPropTag2;
|
---|
529 | } SComparePropsRestriction;
|
---|
530 |
|
---|
531 | typedef struct _SContentRestriction
|
---|
532 | {
|
---|
533 | ULONG ulFuzzyLevel;
|
---|
534 | ULONG ulPropTag;
|
---|
535 | LPSPropValue lpProp;
|
---|
536 | } SContentRestriction;
|
---|
537 |
|
---|
538 | typedef struct _SExistRestriction
|
---|
539 | {
|
---|
540 | ULONG ulReserved1;
|
---|
541 | ULONG ulPropTag;
|
---|
542 | ULONG ulReserved2;
|
---|
543 | } SExistRestriction;
|
---|
544 |
|
---|
545 | typedef struct _SNotRestriction
|
---|
546 | {
|
---|
547 | ULONG ulReserved;
|
---|
548 | LPSRestriction lpRes;
|
---|
549 | } SNotRestriction;
|
---|
550 |
|
---|
551 | typedef struct _SOrRestriction
|
---|
552 | {
|
---|
553 | ULONG cRes;
|
---|
554 | LPSRestriction lpRes;
|
---|
555 | } SOrRestriction;
|
---|
556 |
|
---|
557 | typedef struct _SPropertyRestriction
|
---|
558 | {
|
---|
559 | ULONG relop;
|
---|
560 | ULONG ulPropTag;
|
---|
561 | LPSPropValue lpProp;
|
---|
562 | } SPropertyRestriction;
|
---|
563 |
|
---|
564 | typedef struct _SSizeRestriction
|
---|
565 | {
|
---|
566 | ULONG relop;
|
---|
567 | ULONG ulPropTag;
|
---|
568 | ULONG cb;
|
---|
569 | } SSizeRestriction;
|
---|
570 |
|
---|
571 | typedef struct _SSubRestriction
|
---|
572 | {
|
---|
573 | ULONG ulSubObject;
|
---|
574 | LPSRestriction lpRes;
|
---|
575 | } SSubRestriction;
|
---|
576 |
|
---|
577 | /* Restriction types */
|
---|
578 | #define RES_AND 0U
|
---|
579 | #define RES_OR 1U
|
---|
580 | #define RES_NOT 2U
|
---|
581 | #define RES_CONTENT 3U
|
---|
582 | #define RES_PROPERTY 4U
|
---|
583 | #define RES_COMPAREPROPS 5U
|
---|
584 | #define RES_BITMASK 6U
|
---|
585 | #define RES_SIZE 7U
|
---|
586 | #define RES_EXIST 8U
|
---|
587 | #define RES_SUBRESTRICTION 9U
|
---|
588 | #define RES_COMMENT 10U
|
---|
589 |
|
---|
590 | typedef struct _SRestriction
|
---|
591 | {
|
---|
592 | ULONG rt;
|
---|
593 | union
|
---|
594 | {
|
---|
595 | SAndRestriction resAnd;
|
---|
596 | SBitMaskRestriction resBitMask;
|
---|
597 | SCommentRestriction resComment;
|
---|
598 | SComparePropsRestriction resCompareProps;
|
---|
599 | SContentRestriction resContent;
|
---|
600 | SExistRestriction resExist;
|
---|
601 | SNotRestriction resNot;
|
---|
602 | SOrRestriction resOr;
|
---|
603 | SPropertyRestriction resProperty;
|
---|
604 | SSizeRestriction resSize;
|
---|
605 | SSubRestriction resSub;
|
---|
606 | } res;
|
---|
607 | } SRestriction;
|
---|
608 |
|
---|
609 | /* Errors */
|
---|
610 | typedef struct _MAPIERROR
|
---|
611 | {
|
---|
612 | ULONG ulVersion; /* Mapi version */
|
---|
613 | #if defined (UNICODE) || defined (__WINESRC__)
|
---|
614 | LPWSTR lpszError; /* Error and component strings. These are Ascii */
|
---|
615 | LPWSTR lpszComponent; /* unless the MAPI_UNICODE flag is passed in */
|
---|
616 | #else
|
---|
617 | LPSTR lpszError;
|
---|
618 | LPSTR lpszComponent;
|
---|
619 | #endif
|
---|
620 | ULONG ulLowLevelError;
|
---|
621 | ULONG ulContext;
|
---|
622 | } MAPIERROR, *LPMAPIERROR;
|
---|
623 |
|
---|
624 | /* Sorting */
|
---|
625 | #define TABLE_SORT_ASCEND 0U
|
---|
626 | #define TABLE_SORT_DESCEND 1U
|
---|
627 | #define TABLE_SORT_COMBINE 2U
|
---|
628 |
|
---|
629 | typedef struct _SSortOrder
|
---|
630 | {
|
---|
631 | ULONG ulPropTag;
|
---|
632 | ULONG ulOrder;
|
---|
633 | } SSortOrder, *LPSSortOrder;
|
---|
634 |
|
---|
635 | typedef struct _SSortOrderSet
|
---|
636 | {
|
---|
637 | ULONG cSorts;
|
---|
638 | ULONG cCategories;
|
---|
639 | ULONG cExpanded;
|
---|
640 | SSortOrder aSort[MAPI_DIM];
|
---|
641 | } SSortOrderSet, * LPSSortOrderSet;
|
---|
642 |
|
---|
643 | #define MNID_ID 0
|
---|
644 | #define MNID_STRING 1
|
---|
645 |
|
---|
646 | typedef struct _MAPINAMEID
|
---|
647 | {
|
---|
648 | LPGUID lpguid;
|
---|
649 | ULONG ulKind;
|
---|
650 | union
|
---|
651 | {
|
---|
652 | LONG lID;
|
---|
653 | LPWSTR lpwstrName;
|
---|
654 | } Kind;
|
---|
655 | } MAPINAMEID, *LPMAPINAMEID;
|
---|
656 |
|
---|
657 | /* Desired notification types (bitflags) */
|
---|
658 | #define fnevCriticalError ((ULONG)0x00000001)
|
---|
659 | #define fnevNewMail ((ULONG)0x00000002)
|
---|
660 | #define fnevObjectCreated ((ULONG)0x00000004)
|
---|
661 | #define fnevObjectDeleted ((ULONG)0x00000008)
|
---|
662 | #define fnevObjectModified ((ULONG)0x00000010)
|
---|
663 | #define fnevObjectMoved ((ULONG)0x00000020)
|
---|
664 | #define fnevObjectCopied ((ULONG)0x00000040)
|
---|
665 | #define fnevSearchComplete ((ULONG)0x00000080)
|
---|
666 | #define fnevTableModified ((ULONG)0x00000100)
|
---|
667 | #define fnevStatusObjectModified ((ULONG)0x00000200)
|
---|
668 | #define fnevReservedForMapi ((ULONG)0x40000000)
|
---|
669 | #define fnevExtended ((ULONG)0x80000000)
|
---|
670 |
|
---|
671 | /* Type of notification event */
|
---|
672 | #define TABLE_CHANGED 1U
|
---|
673 | #define TABLE_ERROR 2U
|
---|
674 | #define TABLE_ROW_ADDED 3U
|
---|
675 | #define TABLE_ROW_DELETED 4U
|
---|
676 | #define TABLE_ROW_MODIFIED 5U
|
---|
677 | #define TABLE_SORT_DONE 6U
|
---|
678 | #define TABLE_RESTRICT_DONE 7U
|
---|
679 | #define TABLE_SETCOL_DONE 8U
|
---|
680 | #define TABLE_RELOAD 9U
|
---|
681 |
|
---|
682 | /* fnevCriticalError notification */
|
---|
683 | typedef struct _ERROR_NOTIFICATION
|
---|
684 | {
|
---|
685 | ULONG cbEntryID;
|
---|
686 | LPENTRYID lpEntryID;
|
---|
687 | SCODE scode;
|
---|
688 | ULONG ulFlags;
|
---|
689 | LPMAPIERROR lpMAPIError;
|
---|
690 | } ERROR_NOTIFICATION;
|
---|
691 |
|
---|
692 | /* fnevNewMail notification */
|
---|
693 | typedef struct _NEWMAIL_NOTIFICATION
|
---|
694 | {
|
---|
695 | ULONG cbEntryID;
|
---|
696 | LPENTRYID lpEntryID;
|
---|
697 | ULONG cbParentID;
|
---|
698 | LPENTRYID lpParentID;
|
---|
699 | ULONG ulFlags;
|
---|
700 | #if defined (UNICODE) || defined (__WINESRC__)
|
---|
701 | LPWSTR lpszMessageClass;
|
---|
702 | #else
|
---|
703 | LPSTR lpszMessageClass;
|
---|
704 | #endif
|
---|
705 | ULONG ulMessageFlags;
|
---|
706 | } NEWMAIL_NOTIFICATION;
|
---|
707 |
|
---|
708 | /* fnevObjectCreated/Deleted/Modified/Moved/Copied notification */
|
---|
709 | typedef struct _OBJECT_NOTIFICATION
|
---|
710 | {
|
---|
711 | ULONG cbEntryID;
|
---|
712 | LPENTRYID lpEntryID;
|
---|
713 | ULONG ulObjType;
|
---|
714 | ULONG cbParentID;
|
---|
715 | LPENTRYID lpParentID;
|
---|
716 | ULONG cbOldID;
|
---|
717 | LPENTRYID lpOldID;
|
---|
718 | ULONG cbOldParentID;
|
---|
719 | LPENTRYID lpOldParentID;
|
---|
720 | LPSPropTagArray lpPropTagArray;
|
---|
721 | } OBJECT_NOTIFICATION;
|
---|
722 |
|
---|
723 | /* fnevTableModified notification */
|
---|
724 | typedef struct _TABLE_NOTIFICATION
|
---|
725 | {
|
---|
726 | ULONG ulTableEvent;
|
---|
727 | HRESULT hResult;
|
---|
728 | SPropValue propIndex;
|
---|
729 | SPropValue propPrior;
|
---|
730 | SRow row;
|
---|
731 | ULONG ulPad;
|
---|
732 | } TABLE_NOTIFICATION;
|
---|
733 |
|
---|
734 | /* fnevExtended notification */
|
---|
735 | typedef struct _EXTENDED_NOTIFICATION
|
---|
736 | {
|
---|
737 | ULONG ulEvent;
|
---|
738 | ULONG cb;
|
---|
739 | LPBYTE pbEventParameters;
|
---|
740 | } EXTENDED_NOTIFICATION;
|
---|
741 |
|
---|
742 | /* fnevStatusObjectModified notification */
|
---|
743 | typedef struct
|
---|
744 | {
|
---|
745 | ULONG cbEntryID;
|
---|
746 | LPENTRYID lpEntryID;
|
---|
747 | ULONG cValues;
|
---|
748 | LPSPropValue lpPropVals;
|
---|
749 | } STATUS_OBJECT_NOTIFICATION;
|
---|
750 |
|
---|
751 | /* The notification structure passed to advise sinks */
|
---|
752 | typedef struct _NOTIFICATION
|
---|
753 | {
|
---|
754 | ULONG ulEventType;
|
---|
755 | ULONG ulAlignPad;
|
---|
756 | union
|
---|
757 | {
|
---|
758 | ERROR_NOTIFICATION err;
|
---|
759 | NEWMAIL_NOTIFICATION newmail;
|
---|
760 | OBJECT_NOTIFICATION obj;
|
---|
761 | TABLE_NOTIFICATION tab;
|
---|
762 | EXTENDED_NOTIFICATION ext;
|
---|
763 | STATUS_OBJECT_NOTIFICATION statobj;
|
---|
764 | } info;
|
---|
765 | } NOTIFICATION, *LPNOTIFICATION;
|
---|
766 |
|
---|
767 | typedef LONG (WINAPI NOTIFCALLBACK)(LPVOID,ULONG,LPNOTIFICATION);
|
---|
768 | typedef NOTIFCALLBACK *LPNOTIFCALLBACK;
|
---|
769 |
|
---|
770 | /* IMAPIContainer::OpenEntry flags */
|
---|
771 | #define MAPI_BEST_ACCESS 0x00000010
|
---|
772 |
|
---|
773 | /*****************************************************************************
|
---|
774 | * IMAPITable interface
|
---|
775 | *
|
---|
776 | * This is the read-only 'view' over an I(MAPI)TableData object.
|
---|
777 | */
|
---|
778 | #define INTERFACE IMAPITable
|
---|
779 | DECLARE_INTERFACE_(IMAPITable,IUnknown)
|
---|
780 | {
|
---|
781 | /*** IUnknown methods ***/
|
---|
782 | STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
|
---|
783 | STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
---|
784 | STDMETHOD_(ULONG,Release)(THIS) PURE;
|
---|
785 | /*** IMAPITable methods ***/
|
---|
786 | STDMETHOD(GetLastError)(THIS_ HRESULT hRes, ULONG ulFlags, LPMAPIERROR *lppError) PURE;
|
---|
787 | STDMETHOD(Advise)(THIS_ ULONG ulMask, LPMAPIADVISESINK lpSink, ULONG *lpCxn) PURE;
|
---|
788 | STDMETHOD(Unadvise)(THIS_ ULONG ulCxn) PURE;
|
---|
789 | STDMETHOD(GetStatus)(THIS_ ULONG *lpStatus, ULONG *lpType) PURE;
|
---|
790 | STDMETHOD(SetColumns)(THIS_ LPSPropTagArray lpProps, ULONG ulFlags) PURE;
|
---|
791 | STDMETHOD(QueryColumns)(THIS_ ULONG ulFlags, LPSPropTagArray *lpCols) PURE;
|
---|
792 | STDMETHOD(GetRowCount)(THIS_ ULONG ulFlags, ULONG *lpCount) PURE;
|
---|
793 | STDMETHOD(SeekRow)(THIS_ BOOKMARK lpStart, LONG lRows, LONG *lpSeeked) PURE;
|
---|
794 | STDMETHOD(SeekRowApprox)(THIS_ ULONG ulNum, ULONG ulDenom) PURE;
|
---|
795 | STDMETHOD(QueryPosition)(THIS_ ULONG *lpRow, ULONG *lpNum, ULONG *lpDenom) PURE;
|
---|
796 | STDMETHOD(FindRow)(THIS_ LPSRestriction lpRestrict, BOOKMARK lpOrigin, ULONG ulFlags) PURE;
|
---|
797 | STDMETHOD(Restrict)(THIS_ LPSRestriction lpRestrict, ULONG ulFlags) PURE;
|
---|
798 | STDMETHOD(CreateBookmark)(THIS_ BOOKMARK *lppPos) PURE;
|
---|
799 | STDMETHOD(FreeBookmark)(THIS_ BOOKMARK lpPos) PURE;
|
---|
800 | STDMETHOD(SortTable)(THIS_ LPSSortOrderSet lpSortOpts, ULONG ulFlags) PURE;
|
---|
801 | STDMETHOD(QuerySortOrder)(THIS_ LPSSortOrderSet *lppSortOpts) PURE;
|
---|
802 | STDMETHOD(QueryRows)(THIS_ LONG lRows, ULONG ulFlags, LPSRowSet *lppRows) PURE;
|
---|
803 | STDMETHOD(Abort) (THIS) PURE;
|
---|
804 | STDMETHOD(ExpandRow)(THIS_ ULONG cbKey, LPBYTE lpKey, ULONG ulRows,
|
---|
805 | ULONG ulFlags, LPSRowSet *lppRows, ULONG *lpMore) PURE;
|
---|
806 | STDMETHOD(CollapseRow)(THIS_ ULONG cbKey, LPBYTE lpKey, ULONG ulFlags, ULONG *lpRows) PURE;
|
---|
807 | STDMETHOD(WaitForCompletion)(THIS_ ULONG ulFlags, ULONG ulTime, ULONG *lpState) PURE;
|
---|
808 | STDMETHOD(GetCollapseState)(THIS_ ULONG ulFlags, ULONG cbKey, LPBYTE lpKey,
|
---|
809 | ULONG *lpStateLen, LPBYTE *lpState) PURE;
|
---|
810 | STDMETHOD(SetCollapseState)(THIS_ ULONG ulFlags, ULONG ulLen,
|
---|
811 | LPBYTE lpStart, BOOKMARK *lppWhere) PURE;
|
---|
812 | };
|
---|
813 | #undef INTERFACE
|
---|
814 |
|
---|
815 | #if !defined(__cplusplus) || defined(CINTERFACE)
|
---|
816 | /*** IUnknown methods ***/
|
---|
817 | #define IMAPITable_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
|
---|
818 | #define IMAPITable_AddRef(p) (p)->lpVtbl->AddRef(p)
|
---|
819 | #define IMAPITable_Release(p) (p)->lpVtbl->Release(p)
|
---|
820 | /*** IMAPITable methods ***/
|
---|
821 | #define IMAPITable_GetLastError(p,a,b,c) (p)->lpVtbl->GetLastError(p,a,b,c)
|
---|
822 | #define IMAPITable_Advise(p,a,b,c) (p)->lpVtbl->Advise(p,a,b,c)
|
---|
823 | #define IMAPITable_Unadvise(p,a) (p)->lpVtbl->Unadvise(p,a)
|
---|
824 | #define IMAPITable_GetStatus(p,a,b) (p)->lpVtbl->GetStatus(p,a,b)
|
---|
825 | #define IMAPITable_SetColumns(p,a,b) (p)->lpVtbl->SetColumns(p,a,b)
|
---|
826 | #define IMAPITable_QueryColumns(p,a,b) (p)->lpVtbl->QueryColumns(p,a,b)
|
---|
827 | #define IMAPITable_GetRowCount(p,a,b) (p)->lpVtbl->GetRowCount(p,a,b)
|
---|
828 | #define IMAPITable_SeekRow(p,a,b) (p)->lpVtbl->SeekRow(p,a,b)
|
---|
829 | #define IMAPITable_SeekRowApprox(p,a,b) (p)->lpVtbl->SeekRowApprox(p,a,b)
|
---|
830 | #define IMAPITable_QueryPosition(p,a,b) (p)->lpVtbl->QueryPosition(p,a,b)
|
---|
831 | #define IMAPITable_FindRow(p,a,b,c) (p)->lpVtbl->FindRow(p,a,b,c)
|
---|
832 | #define IMAPITable_Restrict(p,a,b) (p)->lpVtbl->Recstrict(p,a,b)
|
---|
833 | #define IMAPITable_CreateBookmark(p,a) (p)->lpVtbl->CreateBookmark(p,a)
|
---|
834 | #define IMAPITable_FreeBookmark(p,a) (p)->lpVtbl->FreeBookmark(p,a)
|
---|
835 | #define IMAPITable_SortTable(p,a,b) (p)->lpVtbl->SortTable(p,a,b)
|
---|
836 | #define IMAPITable_QuerySortOrder(p,a) (p)->lpVtbl->QuerySortOrder(p,a)
|
---|
837 | #define IMAPITable_QueryRows(p,a,b,c) (p)->lpVtbl->QueryRows(p,a,b,c)
|
---|
838 | #define IMAPITable_Abort(p) (p)->lpVtbl->Abort(p)
|
---|
839 | #define IMAPITable_ExpandRow(p,a,b,c,d,e,f) (p)->lpVtbl->ExpandRow(p,a,b,c,d,e,f)
|
---|
840 | #define IMAPITable_CollapseRow(p,a,b,c,d) (p)->lpVtbl->CollapseRow(p,a,b,c,d)
|
---|
841 | #define IMAPITable_WaitForCompletion(p,a,b,c) (p)->lpVtbl->WaitForCompletion(p,a,b,c)
|
---|
842 | #define IMAPITable_GetCollapseState(p,a,b,c,d,e) (p)->lpVtbl->GetCollapseState(p,a,b,c,d,e)
|
---|
843 | #define IMAPITable_SetCollapseState(p,a,b,c,d) (p)->lpVtbl->SetCollapseState(p,a,b,c,d)
|
---|
844 | #endif
|
---|
845 |
|
---|
846 | typedef IMAPITable *LPMAPITABLE;
|
---|
847 |
|
---|
848 | /*****************************************************************************
|
---|
849 | * IMAPIAdviseSink interface
|
---|
850 | */
|
---|
851 | #define INTERFACE IMAPIAdviseSink
|
---|
852 | DECLARE_INTERFACE_(IMAPIAdviseSink,IUnknown)
|
---|
853 | {
|
---|
854 | /*** IUnknown methods ***/
|
---|
855 | STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
|
---|
856 | STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
---|
857 | STDMETHOD_(ULONG,Release)(THIS) PURE;
|
---|
858 | /*** IMAPIAdviseSink methods ***/
|
---|
859 | STDMETHOD(OnNotify)(THIS_ ULONG NumNotif, LPNOTIFICATION lpNotif) PURE;
|
---|
860 | };
|
---|
861 | #undef INTERFACE
|
---|
862 |
|
---|
863 | #if !defined(__cplusplus) || defined(CINTERFACE)
|
---|
864 | /*** IUnknown methods ***/
|
---|
865 | #define IMAPIAdviseSink_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
|
---|
866 | #define IMAPIAdviseSink_AddRef(p) (p)->lpVtbl->AddRef(p)
|
---|
867 | #define IMAPIAdviseSink_Release(p) (p)->lpVtbl->Release(p)
|
---|
868 | /*** IMAPIAdviseSink methods ***/
|
---|
869 | #define IMAPIAdviseSink_OnNotify(p,a,b) (p)->lpVtbl->OnNotify(p,a,b)
|
---|
870 | #endif
|
---|
871 |
|
---|
872 | /*****************************************************************************
|
---|
873 | * IMAPIProp interface
|
---|
874 | */
|
---|
875 | #define INTERFACE IMAPIProp
|
---|
876 | DECLARE_INTERFACE_(IMAPIProp,IUnknown)
|
---|
877 | {
|
---|
878 | /*** IUnknown methods ***/
|
---|
879 | STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
|
---|
880 | STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
---|
881 | STDMETHOD_(ULONG,Release)(THIS) PURE;
|
---|
882 | /*** IMAPIProp methods ***/
|
---|
883 | STDMETHOD(GetLastError)(THIS_ HRESULT hRes, ULONG ulFlags, LPMAPIERROR *lppErr) PURE;
|
---|
884 | STDMETHOD(SaveChanges)(THIS_ ULONG ulFlags) PURE;
|
---|
885 | STDMETHOD(GetProps)(THIS_ LPSPropTagArray lpPropTags, ULONG ulFlags, ULONG *lpValues, LPSPropValue *lppProps) PURE;
|
---|
886 | STDMETHOD(GetPropList)(THIS_ ULONG ulFlags, LPSPropTagArray *lppPropTagArray) PURE;
|
---|
887 | STDMETHOD(OpenProperty)(THIS_ ULONG ulPropTag, LPCIID lpIid, ULONG ulOpts, ULONG ulFlags, LPUNKNOWN *lppUnk) PURE;
|
---|
888 | STDMETHOD(SetProps)(THIS_ ULONG cValues, LPSPropValue lpProps, LPSPropProblemArray *lppProbs) PURE;
|
---|
889 | STDMETHOD(DeleteProps)(THIS_ LPSPropTagArray lpPropTags, LPSPropProblemArray *lppProbs) PURE;
|
---|
890 | STDMETHOD(CopyTo)(THIS_ ULONG ciidExclude, LPCIID lpIid, LPSPropTagArray lpProps, ULONG ulParam,
|
---|
891 | LPMAPIPROGRESS lpProgress, LPCIID lpIface,LPVOID lpDest, ULONG ulFlags,
|
---|
892 | LPSPropProblemArray *lppProbs) PURE;
|
---|
893 | STDMETHOD(CopyProps)(THIS_ LPSPropTagArray lpIncludeProps, ULONG ulParam, LPMAPIPROGRESS lpProgress,
|
---|
894 | LPCIID lpIid, LPVOID lpDestObj, ULONG ulFlags, LPSPropProblemArray *lppProblems) PURE;
|
---|
895 | STDMETHOD(GetNamesFromIDs)(THIS_ LPSPropTagArray *lppPropTags, LPGUID lpIid, ULONG ulFlags, ULONG *lpCount,
|
---|
896 | LPMAPINAMEID **lpppNames) PURE;
|
---|
897 | STDMETHOD(GetIDsFromNames)(THIS_ ULONG cPropNames, LPMAPINAMEID *lppNames, ULONG ulFlags, LPSPropTagArray *lppPropTags) PURE;
|
---|
898 | };
|
---|
899 | #undef INTERFACE
|
---|
900 |
|
---|
901 | #if !defined(__cplusplus) || defined(CINTERFACE)
|
---|
902 | /*** IUnknown methods ***/
|
---|
903 | #define IMAPIProp_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
|
---|
904 | #define IMAPIProp_AddRef(p) (p)->lpVtbl->AddRef(p)
|
---|
905 | #define IMAPIProp_Release(p) (p)->lpVtbl->Release(p)
|
---|
906 | /*** IMAPIProp methods ***/
|
---|
907 | #define IMAPIProp_GetLastError(p,a,b,c) (p)->lpVtbl->GetLastError(p,a,b,c)
|
---|
908 | #define IMAPIProp_SaveChanges(p,a) (p)->lpVtbl->SaveChanges(p,a)
|
---|
909 | #define IMAPIProp_GetProps(p,a,b,c,d) (p)->lpVtbl->GetProps(p,a,b,c,d)
|
---|
910 | #define IMAPIProp_GetPropList(p,a,b) (p)->lpVtbl->GetPropList(p,a,b)
|
---|
911 | #define IMAPIProp_OpenProperty(p,a,b,c,d,e) (p)->lpVtbl->OpenProperty(p,a,b,c,d,e)
|
---|
912 | #define IMAPIProp_SetProps(p,a,b,c) (p)->lpVtbl->SetProps(p,a,b,c)
|
---|
913 | #define IMAPIProp_DeleteProps(p,a,b) (p)->lpVtbl->DeleteProps(p,a,b)
|
---|
914 | #define IMAPIProp_CopyTo(p,a,b,c,d,e,f,g,h,i) (p)->lpVtbl->CopyTo(p,a,b,c,d,e,f,g,h,i)
|
---|
915 | #define IMAPIProp_CopyProps(p,a,b,c,d,e,f,g) (p)->lpVtbl->CopyProps(p,a,b,c,d,e,f,g)
|
---|
916 | #define IMAPIProp_GetNamesFromIDs(p,a,b,c,d,e) (p)->lpVtbl->GetNamesFromIDs(p,a,b,c,d,e)
|
---|
917 | #define IMAPIProp_GetIDsFromNames(p,a,b,c,d) (p)->lpVtbl->GetIDsFromNames(p,a,b,c,d)
|
---|
918 | #endif
|
---|
919 |
|
---|
920 | typedef IMAPIProp *LPMAPIPROP;
|
---|
921 |
|
---|
922 | #define KEEP_OPEN_READONLY (0x00000001U)
|
---|
923 | #define KEEP_OPEN_READWRITE (0x00000002U)
|
---|
924 | #define FORCE_SAVE (0x00000004U)
|
---|
925 |
|
---|
926 | /*****************************************************************************
|
---|
927 | * IMsgStore interface
|
---|
928 | */
|
---|
929 | #define INTERFACE IMsgStore
|
---|
930 | DECLARE_INTERFACE_(IMsgStore,IMAPIProp)
|
---|
931 | {
|
---|
932 | /*** IUnknown methods ***/
|
---|
933 | STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
|
---|
934 | STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
---|
935 | STDMETHOD_(ULONG,Release)(THIS) PURE;
|
---|
936 | /*** IMAPIProp methods ***/
|
---|
937 | STDMETHOD(GetLastError)(THIS_ HRESULT hRes, ULONG ulFlags, LPMAPIERROR *lppErr) PURE;
|
---|
938 | STDMETHOD(SaveChanges)(THIS_ ULONG ulFlags) PURE;
|
---|
939 | STDMETHOD(GetProps)(THIS_ LPSPropTagArray lpPropTags, ULONG ulFlags, ULONG *lpValues, LPSPropValue *lppProps) PURE;
|
---|
940 | STDMETHOD(GetPropList)(THIS_ ULONG ulFlags, LPSPropTagArray *lppPropTagArray) PURE;
|
---|
941 | STDMETHOD(OpenProperty)(THIS_ ULONG ulPropTag, LPCIID lpIid, ULONG ulOpts, ULONG ulFlags, LPUNKNOWN *lppUnk) PURE;
|
---|
942 | STDMETHOD(SetProps)(THIS_ ULONG cValues, LPSPropValue lpProps, LPSPropProblemArray *lppProbs) PURE;
|
---|
943 | STDMETHOD(DeleteProps)(THIS_ LPSPropTagArray lpPropTags, LPSPropProblemArray *lppProbs) PURE;
|
---|
944 | STDMETHOD(CopyTo)(THIS_ ULONG ciidExclude, LPCIID lpIid, LPSPropTagArray lpProps, ULONG ulParam,
|
---|
945 | LPMAPIPROGRESS lpProgress, LPCIID lpIface,LPVOID lpDest, ULONG ulFlags,
|
---|
946 | LPSPropProblemArray *lppProbs) PURE;
|
---|
947 | STDMETHOD(CopyProps)(THIS_ LPSPropTagArray lpIncludeProps, ULONG ulParam, LPMAPIPROGRESS lpProgress,
|
---|
948 | LPCIID lpIid, LPVOID lpDestObj, ULONG ulFlags, LPSPropProblemArray *lppProblems) PURE;
|
---|
949 | STDMETHOD(GetNamesFromIDs)(THIS_ LPSPropTagArray *lppPropTags, LPGUID lpIid, ULONG ulFlags, ULONG *lpCount,
|
---|
950 | LPMAPINAMEID **lpppNames) PURE;
|
---|
951 | STDMETHOD(GetIDsFromNames)(THIS_ ULONG cPropNames, LPMAPINAMEID *lppNames, ULONG ulFlags, LPSPropTagArray *lppPropTags) PURE;
|
---|
952 | /*** IMsgStore methods ***/
|
---|
953 | STDMETHOD(Advise)(THIS_ ULONG cbEntryID, LPENTRYID lpEntryID, ULONG ulEventMask, LPMAPIADVISESINK lpAdviseSink,
|
---|
954 | ULONG * lpulConnection) PURE;
|
---|
955 | STDMETHOD(Unadvise)(THIS_ ULONG ulConnection) PURE;
|
---|
956 | STDMETHOD(CompareEntryIDs)(THIS_ ULONG cbEntryID1, LPENTRYID lpEntryID1, ULONG cbEntryID2, LPENTRYID lpEntryID2,
|
---|
957 | ULONG ulFlags, ULONG * lpulResult) PURE;
|
---|
958 | STDMETHOD(OpenEntry)(THIS_ ULONG cbEntryID, LPENTRYID lpEntryID, LPCIID lpInterface, ULONG ulFlags, ULONG *lpulObjType,
|
---|
959 | LPUNKNOWN *lppUnk) PURE;
|
---|
960 | STDMETHOD(SetReceiveFolder)(THIS_ LPSTR lpszMessageClass, ULONG ulFlags, ULONG cbEntryID, LPENTRYID lpEntryID) PURE;
|
---|
961 | STDMETHOD(GetReceiveFolder)(THIS_ LPSTR lpszMessageClass, ULONG ulFlags, ULONG * lpcbEntryID, LPENTRYID *lppEntryID,
|
---|
962 | LPSTR *lppszExplicitClass) PURE;
|
---|
963 | STDMETHOD(GetReceiveFolderTable)(THIS_ ULONG ulFlags, LPMAPITABLE * lppTable) PURE;
|
---|
964 | STDMETHOD(StoreLogoff)(THIS_ ULONG * lpulFlags) PURE;
|
---|
965 | STDMETHOD(AbortSubmit)(THIS_ ULONG cbEntryID, LPENTRYID lpEntryID, ULONG ulFlags) PURE;
|
---|
966 | STDMETHOD(GetOutgoingQueue)(THIS_ ULONG ulFlags, LPMAPITABLE * lppTable) PURE;
|
---|
967 | STDMETHOD(SetLockState)(THIS_ LPMESSAGE lpMessage, ULONG ulLockState) PURE;
|
---|
968 | STDMETHOD(FinishedMsg)(THIS_ ULONG ulFlags, ULONG cbEntryID, LPENTRYID lpEntryID) PURE;
|
---|
969 | STDMETHOD(NotifyNewMail)(THIS_ LPNOTIFICATION lpNotification) PURE;
|
---|
970 | };
|
---|
971 | #undef INTERFACE
|
---|
972 |
|
---|
973 | #if !defined(__cplusplus) || defined(CINTERFACE)
|
---|
974 | /*** IUnknown methods ***/
|
---|
975 | #define IMsgStore_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
|
---|
976 | #define IMsgStore_AddRef(p) (p)->lpVtbl->AddRef(p)
|
---|
977 | #define IMsgStore_Release(p) (p)->lpVtbl->Release(p)
|
---|
978 | /*** IMAPIProp methods ***/
|
---|
979 | #define IMsgStore_GetLastError(p,a,b,c) (p)->lpVtbl->GetLastError(p,a,b,c)
|
---|
980 | #define IMsgStore_SaveChanges(p,a) (p)->lpVtbl->SaveChanges(p,a)
|
---|
981 | #define IMsgStore_GetProps(p,a,b,c,d) (p)->lpVtbl->GetProps(p,a,b,c,d)
|
---|
982 | #define IMsgStore_GetPropList(p,a,b) (p)->lpVtbl->GetPropList(p,a,b)
|
---|
983 | #define IMsgStore_OpenProperty(p,a,b,c,d,e) (p)->lpVtbl->OpenProperty(p,a,b,c,d,e)
|
---|
984 | #define IMsgStore_SetProps(p,a,b,c) (p)->lpVtbl->SetProps(p,a,b,c)
|
---|
985 | #define IMsgStore_DeleteProps(p,a,b) (p)->lpVtbl->DeleteProps(p,a,b)
|
---|
986 | #define IMsgStore_CopyTo(p,a,b,c,d,e,f,g,h,i) (p)->lpVtbl->CopyTo(p,a,b,c,d,e,f,g,h,i)
|
---|
987 | #define IMsgStore_CopyProps(p,a,b,c,d,e,f,g) (p)->lpVtbl->CopyProps(p,a,b,c,d,e,f,g)
|
---|
988 | #define IMsgStore_GetNamesFromIDs(p,a,b,c,d,e) (p)->lpVtbl->GetNamesFromIDs(p,a,b,c,d,e)
|
---|
989 | #define IMsgStore_GetIDsFromNames(p,a,b,c,d) (p)->lpVtbl->GetIDsFromNames(p,a,b,c,d)
|
---|
990 | /*** IMsgStore methods ***/
|
---|
991 | #define IMsgStore_Advise(p,a,b,c,d,e) (p)->lpVtbl->Advise(p,a,b,c,d,e)
|
---|
992 | #define IMsgStore_Unadvise(p,a) (p)->lpVtbl->Unadvise(p,a)
|
---|
993 | #define IMsgStore_CompareEntryIDs(p,a,b,c,d,e,f) (p)->lpVtbl->CompareEntryIDs(p,a,b,c,d,e,f)
|
---|
994 | #define IMsgStore_OpenEntry(p,a,b,c,d,e,f) (p)->lpVtbl->OpenEntry(p,a,b,c,d,e,f)
|
---|
995 | #define IMsgStore_SetReceiveFolder(p,a,b,c,d) (p)->lpVtbl->SetReceiveFolder(p,a,b,c,d)
|
---|
996 | #define IMsgStore_GetReceiveFolder(p,a,b,c,d,e) (p)->lpVtbl->GetReceiveFolder(p,a,b,c,d,e)
|
---|
997 | #define IMsgStore_GetReceiveFolderTable(p,a,b) (p)->lpVtbl->GetReceiveFolderTable(p,a,b)
|
---|
998 | #define IMsgStore_StoreLogoff(p,a) (p)->lpVtbl->StoreLogoff(p,a)
|
---|
999 | #define IMsgStore_AbortSubmit(p,a,b,c) (p)->lpVtbl->AbortSubmit(p,a,b,c)
|
---|
1000 | #define IMsgStore_GetOutgoingQueue(p,a,b) (p)->lpVtbl->GetOutgoingQueue(p,a,b)
|
---|
1001 | #define IMsgStore_SetLockState(p,a,b) (p)->lpVtbl->SetLockState(p,a,b)
|
---|
1002 | #define IMsgStore_FinishedMsg(p,a,b,c) (p)->lpVtbl->FinishedMsg(p,a,b,c)
|
---|
1003 | #define IMsgStore_NotifyNewMail(p,a) (p)->lpVtbl->NotifyNewMail(p,a)
|
---|
1004 |
|
---|
1005 | #endif
|
---|
1006 |
|
---|
1007 | typedef IMsgStore *LPMDB;
|
---|
1008 |
|
---|
1009 | /*****************************************************************************
|
---|
1010 | * IMAPIContainer interface
|
---|
1011 | */
|
---|
1012 | #define INTERFACE IMAPIContainer
|
---|
1013 | DECLARE_INTERFACE_(IMAPIContainer,IMAPIProp)
|
---|
1014 | {
|
---|
1015 | /*** IUnknown methods ***/
|
---|
1016 | STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
|
---|
1017 | STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
---|
1018 | STDMETHOD_(ULONG,Release)(THIS) PURE;
|
---|
1019 | /*** IMAPIProp methods ***/
|
---|
1020 | STDMETHOD(GetLastError)(THIS_ HRESULT hRes, ULONG ulFlags, LPMAPIERROR *lppErr) PURE;
|
---|
1021 | STDMETHOD(SaveChanges)(THIS_ ULONG ulFlags) PURE;
|
---|
1022 | STDMETHOD(GetProps)(THIS_ LPSPropTagArray lpPropTags, ULONG ulFlags, ULONG *lpValues, LPSPropValue *lppProps) PURE;
|
---|
1023 | STDMETHOD(GetPropList)(THIS_ ULONG ulFlags, LPSPropTagArray *lppPropTagArray) PURE;
|
---|
1024 | STDMETHOD(OpenProperty)(THIS_ ULONG ulPropTag, LPCIID lpIid, ULONG ulOpts, ULONG ulFlags, LPUNKNOWN *lppUnk) PURE;
|
---|
1025 | STDMETHOD(SetProps)(THIS_ ULONG cValues, LPSPropValue lpProps, LPSPropProblemArray *lppProbs) PURE;
|
---|
1026 | STDMETHOD(DeleteProps)(THIS_ LPSPropTagArray lpPropTags, LPSPropProblemArray *lppProbs) PURE;
|
---|
1027 | STDMETHOD(CopyTo)(THIS_ ULONG ciidExclude, LPCIID lpIid, LPSPropTagArray lpProps, ULONG ulParam,
|
---|
1028 | LPMAPIPROGRESS lpProgress, LPCIID lpIface,LPVOID lpDest, ULONG ulFlags,
|
---|
1029 | LPSPropProblemArray *lppProbs) PURE;
|
---|
1030 | STDMETHOD(CopyProps)(THIS_ LPSPropTagArray lpIncludeProps, ULONG ulParam, LPMAPIPROGRESS lpProgress,
|
---|
1031 | LPCIID lpIid, LPVOID lpDestObj, ULONG ulFlags, LPSPropProblemArray *lppProblems) PURE;
|
---|
1032 | STDMETHOD(GetNamesFromIDs)(THIS_ LPSPropTagArray *lppPropTags, LPGUID lpIid, ULONG ulFlags, ULONG *lpCount,
|
---|
1033 | LPMAPINAMEID **lpppNames) PURE;
|
---|
1034 | STDMETHOD(GetIDsFromNames)(THIS_ ULONG cPropNames, LPMAPINAMEID *lppNames, ULONG ulFlags, LPSPropTagArray *lppPropTags) PURE;
|
---|
1035 | /*** IMAPIContainer methods ***/
|
---|
1036 | STDMETHOD(GetContentsTable)(THIS_ ULONG ulFlags, LPMAPITABLE * lppTable) PURE;
|
---|
1037 | STDMETHOD(GetHierarchyTable)(THIS_ ULONG ulFlags, LPMAPITABLE * lppTable) PURE;
|
---|
1038 | STDMETHOD(OpenEntry)(THIS_ ULONG cbEntryID, LPENTRYID lpEntryID, LPCIID lpInterface, ULONG ulFlags,
|
---|
1039 | ULONG * lpulObjType, LPUNKNOWN * lppUnk) PURE;
|
---|
1040 | STDMETHOD(SetSearchCriteria)(THIS_ LPSRestriction lpRestriction, LPENTRYLIST lpContainerList, ULONG ulSearchFlags) PURE;
|
---|
1041 | STDMETHOD(GetSearchCriteria)(THIS_ ULONG ulFlags, LPSRestriction * lppRestriction, LPENTRYLIST * lppContainerList,
|
---|
1042 | ULONG * lpulSearchState) PURE;
|
---|
1043 | };
|
---|
1044 | #undef INTERFACE
|
---|
1045 |
|
---|
1046 | #if !defined(__cplusplus) || defined(CINTERFACE)
|
---|
1047 | /*** IUnknown methods ***/
|
---|
1048 | #define IMAPIContainer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
|
---|
1049 | #define IMAPIContainer_AddRef(p) (p)->lpVtbl->AddRef(p)
|
---|
1050 | #define IMAPIContainer_Release(p) (p)->lpVtbl->Release(p)
|
---|
1051 | /*** IMAPIProp methods ***/
|
---|
1052 | #define IMAPIContainer_GetLastError(p,a,b,c) (p)->lpVtbl->GetLastError(p,a,b,c)
|
---|
1053 | #define IMAPIContainer_SaveChanges(p,a) (p)->lpVtbl->SaveChanges(p,a)
|
---|
1054 | #define IMAPIContainer_GetProps(p,a,b,c,d) (p)->lpVtbl->GetProps(p,a,b,c,d)
|
---|
1055 | #define IMAPIContainer_GetPropList(p,a,b) (p)->lpVtbl->GetPropList(p,a,b)
|
---|
1056 | #define IMAPIContainer_OpenProperty(p,a,b,c,d,e) (p)->lpVtbl->OpenProperty(p,a,b,c,d,e)
|
---|
1057 | #define IMAPIContainer_SetProps(p,a,b,c) (p)->lpVtbl->SetProps(p,a,b,c)
|
---|
1058 | #define IMAPIContainer_DeleteProps(p,a,b) (p)->lpVtbl->DeleteProps(p,a,b)
|
---|
1059 | #define IMAPIContainer_CopyTo(p,a,b,c,d,e,f,g,h,i) (p)->lpVtbl->CopyTo(p,a,b,c,d,e,f,g,h,i)
|
---|
1060 | #define IMAPIContainer_CopyProps(p,a,b,c,d,e,f,g) (p)->lpVtbl->CopyProps(p,a,b,c,d,e,f,g)
|
---|
1061 | #define IMAPIContainer_GetNamesFromIDs(p,a,b,c,d,e) (p)->lpVtbl->GetNamesFromIDs(p,a,b,c,d,e)
|
---|
1062 | #define IMAPIContainer_GetIDsFromNames(p,a,b,c,d) (p)->lpVtbl->GetIDsFromNames(p,a,b,c,d)
|
---|
1063 | /*** IMAPIContainer methods ***/
|
---|
1064 | #define IMAPIContainer_GetContentsTable(p,a,b) (p)->lpVtbl->GetContentsTable(p,a,b)
|
---|
1065 | #define IMAPIContainer_GetHierarchyTable(p,a,b) (p)->lpVtbl->GetHierarchyTable(p,a,b)
|
---|
1066 | #define IMAPIContainer_OpenEntry(p,a,b,c,d,e,f) (p)->lpVtbl->OpenEntry(p,a,b,c,d,e,f)
|
---|
1067 | #define IMAPIContainer_SetSearchCriteria(p,a,b,c) (p)->lpVtbl->SetSearchCriteria(p,a,b,c)
|
---|
1068 | #define IMAPIContainer_GetSearchCriteria(p,a,b,c,d) (p)->lpVtbl->GetSearchCriteria(p,a,b,c,d)
|
---|
1069 |
|
---|
1070 | #endif
|
---|
1071 |
|
---|
1072 | /*****************************************************************************
|
---|
1073 | * IMAPIFolder interface
|
---|
1074 | */
|
---|
1075 | #define INTERFACE IMAPIFolder
|
---|
1076 | DECLARE_INTERFACE_(IMAPIFolder,IMAPIContainer)
|
---|
1077 | {
|
---|
1078 | /*** IUnknown methods ***/
|
---|
1079 | STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
|
---|
1080 | STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
---|
1081 | STDMETHOD_(ULONG,Release)(THIS) PURE;
|
---|
1082 | /*** IMAPIProp methods ***/
|
---|
1083 | STDMETHOD(GetLastError)(THIS_ HRESULT hRes, ULONG ulFlags, LPMAPIERROR *lppErr) PURE;
|
---|
1084 | STDMETHOD(SaveChanges)(THIS_ ULONG ulFlags) PURE;
|
---|
1085 | STDMETHOD(GetProps)(THIS_ LPSPropTagArray lpPropTags, ULONG ulFlags, ULONG *lpValues, LPSPropValue *lppProps) PURE;
|
---|
1086 | STDMETHOD(GetPropList)(THIS_ ULONG ulFlags, LPSPropTagArray *lppPropTagArray) PURE;
|
---|
1087 | STDMETHOD(OpenProperty)(THIS_ ULONG ulPropTag, LPCIID lpIid, ULONG ulOpts, ULONG ulFlags, LPUNKNOWN *lppUnk) PURE;
|
---|
1088 | STDMETHOD(SetProps)(THIS_ ULONG cValues, LPSPropValue lpProps, LPSPropProblemArray *lppProbs) PURE;
|
---|
1089 | STDMETHOD(DeleteProps)(THIS_ LPSPropTagArray lpPropTags, LPSPropProblemArray *lppProbs) PURE;
|
---|
1090 | STDMETHOD(CopyTo)(THIS_ ULONG ciidExclude, LPCIID lpIid, LPSPropTagArray lpProps, ULONG ulParam,
|
---|
1091 | LPMAPIPROGRESS lpProgress, LPCIID lpIface,LPVOID lpDest, ULONG ulFlags,
|
---|
1092 | LPSPropProblemArray *lppProbs) PURE;
|
---|
1093 | STDMETHOD(CopyProps)(THIS_ LPSPropTagArray lpIncludeProps, ULONG ulParam, LPMAPIPROGRESS lpProgress,
|
---|
1094 | LPCIID lpIid, LPVOID lpDestObj, ULONG ulFlags, LPSPropProblemArray *lppProblems) PURE;
|
---|
1095 | STDMETHOD(GetNamesFromIDs)(THIS_ LPSPropTagArray *lppPropTags, LPGUID lpIid, ULONG ulFlags, ULONG *lpCount,
|
---|
1096 | LPMAPINAMEID **lpppNames) PURE;
|
---|
1097 | STDMETHOD(GetIDsFromNames)(THIS_ ULONG cPropNames, LPMAPINAMEID *lppNames, ULONG ulFlags, LPSPropTagArray *lppPropTags) PURE;
|
---|
1098 | /*** IMAPIContainer methods ***/
|
---|
1099 | STDMETHOD(GetContentsTable)(THIS_ ULONG ulFlags, LPMAPITABLE * lppTable) PURE;
|
---|
1100 | STDMETHOD(GetHierarchyTable)(THIS_ ULONG ulFlags, LPMAPITABLE * lppTable) PURE;
|
---|
1101 | STDMETHOD(OpenEntry)(THIS_ ULONG cbEntryID, LPENTRYID lpEntryID, LPCIID lpInterface, ULONG ulFlags,
|
---|
1102 | ULONG * lpulObjType, LPUNKNOWN * lppUnk) PURE;
|
---|
1103 | STDMETHOD(SetSearchCriteria)(THIS_ LPSRestriction lpRestriction, LPENTRYLIST lpContainerList, ULONG ulSearchFlags) PURE;
|
---|
1104 | STDMETHOD(GetSearchCriteria)(THIS_ ULONG ulFlags, LPSRestriction * lppRestriction, LPENTRYLIST * lppContainerList,
|
---|
1105 | ULONG * lpulSearchState) PURE;
|
---|
1106 | /*** IMAPIFolder methods ***/
|
---|
1107 | STDMETHOD(CreateMessage)(THIS_ LPCIID lpInterface, ULONG ulFlags, LPMESSAGE *lppMessage) PURE;
|
---|
1108 | STDMETHOD(CopyMessages)(THIS_ LPENTRYLIST lpMsgList, LPCIID lpInterface, LPVOID lpDestFolder, ULONG ulUIParam,
|
---|
1109 | LPMAPIPROGRESS lpProgress, ULONG ulFlags) PURE;
|
---|
1110 | STDMETHOD(DeleteMessages)(THIS_ LPENTRYLIST lpMsgList, ULONG ulUIParam, LPMAPIPROGRESS lpProgress, ULONG ulFlags) PURE;
|
---|
1111 | STDMETHOD(CreateFolder)(THIS_ ULONG ulFolderType, LPSTR lpszFolderName, LPSTR lpszFolderComment, LPCIID lpInterface,
|
---|
1112 | ULONG ulFlags, LPMAPIFOLDER lppFolder) PURE;
|
---|
1113 | STDMETHOD(CopyFolder)(THIS_ ULONG cbEntryID, LPENTRYID lpEntryID, LPCIID lpInterface, LPVOID lpDestFolder,
|
---|
1114 | LPSTR lpszNewFolderName, ULONG ulUIParam, LPMAPIPROGRESS lpProgress, ULONG ulFlags) PURE;
|
---|
1115 | STDMETHOD(DeleteFolder)(THIS_ ULONG cbEntryID, LPENTRYID lpEntryID, ULONG ulUIParam, LPMAPIPROGRESS lpProgress,
|
---|
1116 | ULONG ulFlags) PURE;
|
---|
1117 | STDMETHOD(SetReadFlags)(THIS_ LPENTRYLIST lpMsgList, ULONG ulUIParam, LPMAPIPROGRESS lpProgress, ULONG ulFlags) PURE;
|
---|
1118 | STDMETHOD(GetMessageStatus)(THIS_ ULONG cbEntryID, LPENTRYID lpEntryID, ULONG ulFlags, ULONG * lpulMessageStatus) PURE;
|
---|
1119 | STDMETHOD(SetMessageStatus)(THIS_ ULONG cbEntryID, LPENTRYID lpEntryID, ULONG ulNewStatus,
|
---|
1120 | ULONG ulNewStatusMask, ULONG * lpulOldStatus) PURE;
|
---|
1121 | STDMETHOD(SaveContentsSort)(THIS_ LPSSortOrderSet lpSortCriteria, ULONG ulFlags) PURE;
|
---|
1122 | STDMETHOD(EmptyFolder) (THIS_ ULONG ulUIParam, LPMAPIPROGRESS lpProgress, ULONG ulFlags) PURE;
|
---|
1123 | };
|
---|
1124 | #undef INTERFACE
|
---|
1125 |
|
---|
1126 | #if !defined(__cplusplus) || defined(CINTERFACE)
|
---|
1127 | /*** IUnknown methods ***/
|
---|
1128 | #define IMAPIFolder_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
|
---|
1129 | #define IMAPIFolder_AddRef(p) (p)->lpVtbl->AddRef(p)
|
---|
1130 | #define IMAPIFolder_Release(p) (p)->lpVtbl->Release(p)
|
---|
1131 | /*** IMAPIProp methods ***/
|
---|
1132 | #define IMAPIFolder_GetLastError(p,a,b,c) (p)->lpVtbl->GetLastError(p,a,b,c)
|
---|
1133 | #define IMAPIFolder_SaveChanges(p,a) (p)->lpVtbl->SaveChanges(p,a)
|
---|
1134 | #define IMAPIFolder_GetProps(p,a,b,c,d) (p)->lpVtbl->GetProps(p,a,b,c,d)
|
---|
1135 | #define IMAPIFolder_GetPropList(p,a,b) (p)->lpVtbl->GetPropList(p,a,b)
|
---|
1136 | #define IMAPIFolder_OpenProperty(p,a,b,c,d,e) (p)->lpVtbl->OpenProperty(p,a,b,c,d,e)
|
---|
1137 | #define IMAPIFolder_SetProps(p,a,b,c) (p)->lpVtbl->SetProps(p,a,b,c)
|
---|
1138 | #define IMAPIFolder_DeleteProps(p,a,b) (p)->lpVtbl->DeleteProps(p,a,b)
|
---|
1139 | #define IMAPIFolder_CopyTo(p,a,b,c,d,e,f,g,h,i) (p)->lpVtbl->CopyTo(p,a,b,c,d,e,f,g,h,i)
|
---|
1140 | #define IMAPIFolder_CopyProps(p,a,b,c,d,e,f,g) (p)->lpVtbl->CopyProps(p,a,b,c,d,e,f,g)
|
---|
1141 | #define IMAPIFolder_GetNamesFromIDs(p,a,b,c,d,e) (p)->lpVtbl->GetNamesFromIDs(p,a,b,c,d,e)
|
---|
1142 | #define IMAPIFolder_GetIDsFromNames(p,a,b,c,d) (p)->lpVtbl->GetIDsFromNames(p,a,b,c,d)
|
---|
1143 | /*** IMAPIContainer methods ***/
|
---|
1144 | #define IMAPIFolder_GetContentsTable(p,a,b) (p)->lpVtbl->GetContentsTable(p,a,b)
|
---|
1145 | #define IMAPIFolder_GetHierarchyTable(p,a,b) (p)->lpVtbl->GetHierarchyTable(p,a,b)
|
---|
1146 | #define IMAPIFolder_OpenEntry(p,a,b,c,d,e,f) (p)->lpVtbl->OpenEntry(p,a,b,c,d,e,f)
|
---|
1147 | #define IMAPIFolder_SetSearchCriteria(p,a,b,c) (p)->lpVtbl->SetSearchCriteria(p,a,b,c)
|
---|
1148 | #define IMAPIFolder_GetSearchCriteria(p,a,b,c,d) (p)->lpVtbl->GetSearchCriteria(p,a,b,c,d)
|
---|
1149 | /*** IMAPIFolder methods ***/
|
---|
1150 | #define IMAPIFolder_CreateMessage(p,a,b,c) (p)->lpVtbl->CreateMessage(p,a,b,c)
|
---|
1151 | #define IMAPIFolder_CopyMessages(p,a,b,c,d,e,f) (p)->lpVtbl->CopyMessages(p,a,b,c,d,e,f)
|
---|
1152 | #define IMAPIFolder_DeleteMessages(p,a,b,c,d) (p)->lpVtbl->DeleteMessages(p,a,b,c,d)
|
---|
1153 | #define IMAPIFolder_CreateFolder(p,a,b,c,d,e,f) (p)->lpVtbl->CreateFolder(p,a,b,c,d,e,f)
|
---|
1154 | #define IMAPIFolder_CopyFolder(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->CopyFolder(p,a,b,c,d,e,f,g,h)
|
---|
1155 | #define IMAPIFolder_DeleteFolder(p,a,b,c,d,e) (p)->lpVtbl->CreateFolder(p,a,b,c,d,e)
|
---|
1156 | #define IMAPIFolder_SetReadFlags(p,a,b,c,d) (p)->lpVtbl->SetReadFlags(p,a,b,c,d)
|
---|
1157 | #define IMAPIFolder_GetMessageStatus(p,a,b,c,d) (p)->lpVtbl->GetMessageStatus(p,a,b,c,d)
|
---|
1158 | #define IMAPIFolder_SetMessageStatus(p,a,b,c,d,e) (p)->lpVtbl->SetMessageStatus(p,a,b,c,d,e)
|
---|
1159 | #define IMAPIFolder_SaveContentsSort(p,a,b) (p)->lpVtbl->SaveContentsSort(p,a,b)
|
---|
1160 | #define IMAPIFolder_EmptyFolder(p,a,b,c) (p)->lpVtbl->EmptyFolder(p,a,b,c)
|
---|
1161 |
|
---|
1162 | #endif
|
---|
1163 |
|
---|
1164 | typedef struct
|
---|
1165 | {
|
---|
1166 | ULONG cb;
|
---|
1167 | BYTE abEntry[MAPI_DIM];
|
---|
1168 | } FLATENTRY, *LPFLATENTRY;
|
---|
1169 |
|
---|
1170 | typedef struct
|
---|
1171 | {
|
---|
1172 | ULONG cEntries;
|
---|
1173 | ULONG cbEntries;
|
---|
1174 | BYTE abEntries[MAPI_DIM];
|
---|
1175 | } FLATENTRYLIST, *LPFLATENTRYLIST;
|
---|
1176 |
|
---|
1177 | typedef struct
|
---|
1178 | {
|
---|
1179 | ULONG cb;
|
---|
1180 | BYTE ab[MAPI_DIM];
|
---|
1181 | } MTSID, *LPMTSID;
|
---|
1182 |
|
---|
1183 | typedef struct
|
---|
1184 | {
|
---|
1185 | ULONG cMTSIDs;
|
---|
1186 | ULONG cbMTSIDs;
|
---|
1187 | BYTE abMTSIDs[MAPI_DIM];
|
---|
1188 | } FLATMTSIDLIST, *LPFLATMTSIDLIST;
|
---|
1189 |
|
---|
1190 | typedef struct _ADRENTRY
|
---|
1191 | {
|
---|
1192 | ULONG ulReserved1;
|
---|
1193 | ULONG cValues;
|
---|
1194 | LPSPropValue rgPropVals;
|
---|
1195 | } ADRENTRY, *LPADRENTRY;
|
---|
1196 |
|
---|
1197 | typedef struct _ADRLIST
|
---|
1198 | {
|
---|
1199 | ULONG cEntries;
|
---|
1200 | ADRENTRY aEntries[MAPI_DIM];
|
---|
1201 | } ADRLIST, *LPADRLIST;
|
---|
1202 |
|
---|
1203 | /*****************************************************************************
|
---|
1204 | * IMessage interface
|
---|
1205 | */
|
---|
1206 | #define INTERFACE IMessage
|
---|
1207 | DECLARE_INTERFACE_(IMessage,IMAPIProp)
|
---|
1208 | {
|
---|
1209 | /*** IUnknown methods ***/
|
---|
1210 | STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
|
---|
1211 | STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
---|
1212 | STDMETHOD_(ULONG,Release)(THIS) PURE;
|
---|
1213 | /*** IMAPIProp methods ***/
|
---|
1214 | STDMETHOD(GetLastError)(THIS_ HRESULT hRes, ULONG ulFlags, LPMAPIERROR *lppErr) PURE;
|
---|
1215 | STDMETHOD(SaveChanges)(THIS_ ULONG ulFlags) PURE;
|
---|
1216 | STDMETHOD(GetProps)(THIS_ LPSPropTagArray lpPropTags, ULONG ulFlags, ULONG *lpValues, LPSPropValue *lppProps) PURE;
|
---|
1217 | STDMETHOD(GetPropList)(THIS_ ULONG ulFlags, LPSPropTagArray *lppPropTagArray) PURE;
|
---|
1218 | STDMETHOD(OpenProperty)(THIS_ ULONG ulPropTag, LPCIID lpIid, ULONG ulOpts, ULONG ulFlags, LPUNKNOWN *lppUnk) PURE;
|
---|
1219 | STDMETHOD(SetProps)(THIS_ ULONG cValues, LPSPropValue lpProps, LPSPropProblemArray *lppProbs) PURE;
|
---|
1220 | STDMETHOD(DeleteProps)(THIS_ LPSPropTagArray lpPropTags, LPSPropProblemArray *lppProbs) PURE;
|
---|
1221 | STDMETHOD(CopyTo)(THIS_ ULONG ciidExclude, LPCIID lpIid, LPSPropTagArray lpProps, ULONG ulParam,
|
---|
1222 | LPMAPIPROGRESS lpProgress, LPCIID lpIface,LPVOID lpDest, ULONG ulFlags,
|
---|
1223 | LPSPropProblemArray *lppProbs) PURE;
|
---|
1224 | STDMETHOD(CopyProps)(THIS_ LPSPropTagArray lpIncludeProps, ULONG ulParam, LPMAPIPROGRESS lpProgress,
|
---|
1225 | LPCIID lpIid, LPVOID lpDestObj, ULONG ulFlags, LPSPropProblemArray *lppProblems) PURE;
|
---|
1226 | STDMETHOD(GetNamesFromIDs)(THIS_ LPSPropTagArray *lppPropTags, LPGUID lpIid, ULONG ulFlags, ULONG *lpCount,
|
---|
1227 | LPMAPINAMEID **lpppNames) PURE;
|
---|
1228 | STDMETHOD(GetIDsFromNames)(THIS_ ULONG cPropNames, LPMAPINAMEID *lppNames, ULONG ulFlags, LPSPropTagArray *lppPropTags) PURE;
|
---|
1229 | /*** IMessage methods ***/
|
---|
1230 | STDMETHOD(GetAttachmentTable)(THIS_ ULONG ulFlags, LPMAPITABLE *lppTable) PURE;
|
---|
1231 | STDMETHOD(OpenAttach)(THIS_ ULONG ulAttachmentNum, LPCIID lpInterface, ULONG ulFlags, LPATTACH *lppAttach) PURE;
|
---|
1232 | STDMETHOD(CreateAttach)(THIS_ LPCIID lpInterface, ULONG ulFlags, ULONG *lpulAttachmentNum, LPATTACH *lppAttach) PURE;
|
---|
1233 | STDMETHOD(DeleteAttach)(THIS_ ULONG ulAttachmentNum, ULONG ulUIParam, LPMAPIPROGRESS lpProgress, ULONG ulFlags) PURE;
|
---|
1234 | STDMETHOD(GetRecipientTable)(THIS_ ULONG ulFlags, LPMAPITABLE *lppTable) PURE;
|
---|
1235 | STDMETHOD(ModifyRecipients)(THIS_ ULONG ulFlags, LPADRLIST lpMods) PURE;
|
---|
1236 | STDMETHOD(SubmitMessage)(THIS_ ULONG ulFlags) PURE;
|
---|
1237 | STDMETHOD(SetReadFlag)(THIS_ ULONG ulFlags) PURE;
|
---|
1238 | };
|
---|
1239 | #undef INTERFACE
|
---|
1240 |
|
---|
1241 | #if !defined(__cplusplus) || defined(CINTERFACE)
|
---|
1242 | /*** IUnknown methods ***/
|
---|
1243 | #define IMessage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
|
---|
1244 | #define IMessage_AddRef(p) (p)->lpVtbl->AddRef(p)
|
---|
1245 | #define IMessage_Release(p) (p)->lpVtbl->Release(p)
|
---|
1246 | /*** IMAPIProp methods ***/
|
---|
1247 | #define IMessage_GetLastError(p,a,b,c) (p)->lpVtbl->GetLastError(p,a,b,c)
|
---|
1248 | #define IMessage_SaveChanges(p,a) (p)->lpVtbl->SaveChanges(p,a)
|
---|
1249 | #define IMessage_GetProps(p,a,b,c,d) (p)->lpVtbl->GetProps(p,a,b,c,d)
|
---|
1250 | #define IMessage_GetPropList(p,a,b) (p)->lpVtbl->GetPropList(p,a,b)
|
---|
1251 | #define IMessage_OpenProperty(p,a,b,c,d,e) (p)->lpVtbl->OpenProperty(p,a,b,c,d,e)
|
---|
1252 | #define IMessage_SetProps(p,a,b,c) (p)->lpVtbl->SetProps(p,a,b,c)
|
---|
1253 | #define IMessage_DeleteProps(p,a,b) (p)->lpVtbl->DeleteProps(p,a,b)
|
---|
1254 | #define IMessage_CopyTo(p,a,b,c,d,e,f,g,h,i) (p)->lpVtbl->CopyTo(p,a,b,c,d,e,f,g,h,i)
|
---|
1255 | #define IMessage_CopyProps(p,a,b,c,d,e,f,g) (p)->lpVtbl->CopyProps(p,a,b,c,d,e,f,g)
|
---|
1256 | #define IMessage_GetNamesFromIDs(p,a,b,c,d,e) (p)->lpVtbl->GetNamesFromIDs(p,a,b,c,d,e)
|
---|
1257 | #define IMessage_GetIDsFromNames(p,a,b,c,d) (p)->lpVtbl->GetIDsFromNames(p,a,b,c,d)
|
---|
1258 | /*** IMessage methods ***/
|
---|
1259 | #define IMessage_GetAttachmentTable(p,a,b) (p)->lpVtbl->GetAttachmentTable(p,a,b)
|
---|
1260 | #define IMessage_OpenAttach(p,a,b,c,d) (p)->lpVtbl->OpenAttach(p,a,b,c,d)
|
---|
1261 | #define IMessage_CreateAttach(p,a,b,c,d) (p)->lpVtbl->CreateAttach(p,a,b,c,d)
|
---|
1262 | #define IMessage_DeleteAttach(p,a,b,c,d) (p)->lpVtbl->DeleteAttach(p,a,b,c,d)
|
---|
1263 | #define IMessage_GetRecipientTable(p,a,b) (p)->lpVtbl->GetRecipientTable(p,a,b)
|
---|
1264 | #define IMessage_ModifyRecipients(p,a,b) (p)->lpVtbl->ModifyRecipients(p,a,b)
|
---|
1265 | #define IMessage_SubmitMessage(p,a) (p)->lpVtbl->SubmitMessage(p,a)
|
---|
1266 | #define IMessage_SetReadFlag(p,a) (p)->lpVtbl->SetReadFlag(p,a)
|
---|
1267 |
|
---|
1268 | #endif
|
---|
1269 |
|
---|
1270 | /* Message flags (PR_MESSAGE_FLAGS) */
|
---|
1271 |
|
---|
1272 | #define MSGFLAG_READ 0x00000001U
|
---|
1273 | #define MSGFLAG_UNMODIFIED 0x00000002U
|
---|
1274 | #define MSGFLAG_SUBMIT 0x00000004U
|
---|
1275 | #define MSGFLAG_UNSENT 0x00000008U
|
---|
1276 | #define MSGFLAG_HASATTACH 0x00000010U
|
---|
1277 | #define MSGFLAG_FROMME 0x00000020U
|
---|
1278 |
|
---|
1279 | /*****************************************************************************
|
---|
1280 | * IAttach interface
|
---|
1281 | */
|
---|
1282 | #define INTERFACE IAttach
|
---|
1283 | DECLARE_INTERFACE_(IAttach,IMAPIProp)
|
---|
1284 | {
|
---|
1285 | /*** IUnknown methods ***/
|
---|
1286 | STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
|
---|
1287 | STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
---|
1288 | STDMETHOD_(ULONG,Release)(THIS) PURE;
|
---|
1289 | /*** IMAPIProp methods ***/
|
---|
1290 | STDMETHOD(GetLastError)(THIS_ HRESULT hRes, ULONG ulFlags, LPMAPIERROR *lppErr) PURE;
|
---|
1291 | STDMETHOD(SaveChanges)(THIS_ ULONG ulFlags) PURE;
|
---|
1292 | STDMETHOD(GetProps)(THIS_ LPSPropTagArray lpPropTags, ULONG ulFlags, ULONG *lpValues, LPSPropValue *lppProps) PURE;
|
---|
1293 | STDMETHOD(GetPropList)(THIS_ ULONG ulFlags, LPSPropTagArray *lppPropTagArray) PURE;
|
---|
1294 | STDMETHOD(OpenProperty)(THIS_ ULONG ulPropTag, LPCIID lpIid, ULONG ulOpts, ULONG ulFlags, LPUNKNOWN *lppUnk) PURE;
|
---|
1295 | STDMETHOD(SetProps)(THIS_ ULONG cValues, LPSPropValue lpProps, LPSPropProblemArray *lppProbs) PURE;
|
---|
1296 | STDMETHOD(DeleteProps)(THIS_ LPSPropTagArray lpPropTags, LPSPropProblemArray *lppProbs) PURE;
|
---|
1297 | STDMETHOD(CopyTo)(THIS_ ULONG ciidExclude, LPCIID lpIid, LPSPropTagArray lpProps, ULONG ulParam,
|
---|
1298 | LPMAPIPROGRESS lpProgress, LPCIID lpIface,LPVOID lpDest, ULONG ulFlags,
|
---|
1299 | LPSPropProblemArray *lppProbs) PURE;
|
---|
1300 | STDMETHOD(CopyProps)(THIS_ LPSPropTagArray lpIncludeProps, ULONG ulParam, LPMAPIPROGRESS lpProgress,
|
---|
1301 | LPCIID lpIid, LPVOID lpDestObj, ULONG ulFlags, LPSPropProblemArray *lppProblems) PURE;
|
---|
1302 | STDMETHOD(GetNamesFromIDs)(THIS_ LPSPropTagArray *lppPropTags, LPGUID lpIid, ULONG ulFlags, ULONG *lpCount,
|
---|
1303 | LPMAPINAMEID **lpppNames) PURE;
|
---|
1304 | STDMETHOD(GetIDsFromNames)(THIS_ ULONG cPropNames, LPMAPINAMEID *lppNames, ULONG ulFlags, LPSPropTagArray *lppPropTags) PURE;
|
---|
1305 | };
|
---|
1306 | #undef INTERFACE
|
---|
1307 |
|
---|
1308 | #if !defined(__cplusplus) || defined(CINTERFACE)
|
---|
1309 | /*** IUnknown methods ***/
|
---|
1310 | #define IAttach_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
|
---|
1311 | #define IAttach_AddRef(p) (p)->lpVtbl->AddRef(p)
|
---|
1312 | #define IAttach_Release(p) (p)->lpVtbl->Release(p)
|
---|
1313 | /*** IMAPIProp methods ***/
|
---|
1314 | #define IAttach_GetLastError(p,a,b,c) (p)->lpVtbl->GetLastError(p,a,b,c)
|
---|
1315 | #define IAttach_SaveChanges(p,a) (p)->lpVtbl->SaveChanges(p,a)
|
---|
1316 | #define IAttach_GetProps(p,a,b,c,d) (p)->lpVtbl->GetProps(p,a,b,c,d)
|
---|
1317 | #define IAttach_GetPropList(p,a,b) (p)->lpVtbl->GetPropList(p,a,b)
|
---|
1318 | #define IAttach_OpenProperty(p,a,b,c,d,e) (p)->lpVtbl->OpenProperty(p,a,b,c,d,e)
|
---|
1319 | #define IAttach_SetProps(p,a,b,c) (p)->lpVtbl->SetProps(p,a,b,c)
|
---|
1320 | #define IAttach_DeleteProps(p,a,b) (p)->lpVtbl->DeleteProps(p,a,b)
|
---|
1321 | #define IAttach_CopyTo(p,a,b,c,d,e,f,g,h,i) (p)->lpVtbl->CopyTo(p,a,b,c,d,e,f,g,h,i)
|
---|
1322 | #define IAttach_CopyProps(p,a,b,c,d,e,f,g) (p)->lpVtbl->CopyProps(p,a,b,c,d,e,f,g)
|
---|
1323 | #define IAttach_GetNamesFromIDs(p,a,b,c,d,e) (p)->lpVtbl->GetNamesFromIDs(p,a,b,c,d,e)
|
---|
1324 | #define IAttach_GetIDsFromNames(p,a,b,c,d) (p)->lpVtbl->GetIDsFromNames(p,a,b,c,d)
|
---|
1325 | #endif
|
---|
1326 |
|
---|
1327 | /* Attachment flags */
|
---|
1328 |
|
---|
1329 | #define NO_ATTACHMENT 0x00000000U
|
---|
1330 | #define ATTACH_BY_VALUE 0x00000001U
|
---|
1331 |
|
---|
1332 | #endif /*MAPIDEFS_H*/
|
---|