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