1/** 2 * This file has no copyright assigned and is placed in the Public Domain. 3 * This file is part of the mingw-w64 runtime package. 4 * No warranty is given; refer to the file DISCLAIMER.PD within this package. 5 */ 6#ifndef _IMESSAGE_H_ 7#define _IMESSAGE_H_ 8 9#include "mapidefs.h" 10 11#ifdef __cplusplus 12extern "C" { 13#endif 14 15 typedef struct _MSGSESS *LPMSGSESS; 16 typedef void (WINAPI MSGCALLRELEASE)(ULONG ulCallerData,LPMESSAGE lpMessage); 17 18 STDAPI_(SCODE) OpenIMsgSession(LPMALLOC lpMalloc,ULONG ulFlags,LPMSGSESS *lppMsgSess); 19 STDAPI_(void) CloseIMsgSession(LPMSGSESS lpMsgSess); 20 STDAPI_(SCODE) OpenIMsgOnIStg(LPMSGSESS lpMsgSess,LPALLOCATEBUFFER lpAllocateBuffer,LPALLOCATEMORE lpAllocateMore,LPFREEBUFFER lpFreeBuffer,LPMALLOC lpMalloc,LPVOID lpMapiSup,LPSTORAGE lpStg,MSGCALLRELEASE *lpfMsgCallRelease,ULONG ulCallerData,ULONG ulFlags,LPMESSAGE *lppMsg); 21 22#define IMSG_NO_ISTG_COMMIT ((ULONG) 0x00000001) 23 24#define PROPATTR_MANDATORY ((ULONG) 0x00000001) 25#define PROPATTR_READABLE ((ULONG) 0x00000002) 26#define PROPATTR_WRITEABLE ((ULONG) 0x00000004) 27 28#define PROPATTR_NOT_PRESENT ((ULONG) 0x00000008) 29 30 typedef struct _SPropAttrArray { 31 ULONG cValues; 32 ULONG aPropAttr[MAPI_DIM]; 33 } SPropAttrArray,*LPSPropAttrArray; 34 35#define CbNewSPropAttrArray(_cattr) (offsetof(SPropAttrArray,aPropAttr) + (_cattr)*sizeof(ULONG)) 36#define CbSPropAttrArray(_lparray) (offsetof(SPropAttrArray,aPropAttr) + (UINT)((_lparray)->cValues)*sizeof(ULONG)) 37#define SizedSPropAttrArray(_cattr,_name) struct _SPropAttrArray_ ## _name { ULONG cValues; ULONG aPropAttr[_cattr]; } _name 38 39 STDAPI GetAttribIMsgOnIStg(LPVOID lpObject,LPSPropTagArray lpPropTagArray,LPSPropAttrArray *lppPropAttrArray); 40 STDAPI SetAttribIMsgOnIStg(LPVOID lpObject,LPSPropTagArray lpPropTags,LPSPropAttrArray lpPropAttrs,LPSPropProblemArray *lppPropProblems); 41 STDAPI_(SCODE) MapStorageSCode(SCODE StgSCode); 42 43#ifdef __cplusplus 44} 45#endif 46#endif 47