ReactOS  0.4.15-dev-2776-g4130f0b
mapiutil.h File Reference
#include <mapix.h>
Include dependency graph for mapiutil.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define TAD_ALL_ROWS   1 /* Delete all rows */
 
#define SOF_UNIQUEFILENAME   0x80000000U /* Create a unique (temporary) filename */
 
#define OPENSTREAMONFILE   "OpenStreamOnFile"
 
#define IPROP_READONLY   0x00001U
 
#define IPROP_READWRITE   0x00002U
 
#define IPROP_CLEAN   0x10000U
 
#define IPROP_DIRTY   0x20000U
 
#define szHrDispatchNotifications   "_HrDispatchNotifications@4"
 
#define szScCreateConversationIndex   "_ScCreateConversationIndex@16"
 
#define INTERFACE   ITableData
 
#define ITableData_QueryInterface(p, a, b)   (p)->lpVtbl->QueryInterface(p,a,b)
 
#define ITableData_AddRef(p)   (p)->lpVtbl->AddRef(p)
 
#define ITableData_Release(p)   (p)->lpVtbl->Release(p)
 
#define ITableData_HrGetView(p, a, b, c, d)   (p)->lpVtbl->HrGetView(p,a,b,c,d)
 
#define ITableData_HrModifyRow(p, a)   (p)->lpVtbl->HrModifyRow(p,a)
 
#define ITableData_HrDeleteRow(p, a)   (p)->lpVtbl->HrDeleteRow(p,a)
 
#define ITableData_HrQueryRow(p, a, b, c)   (p)->lpVtbl->HrQueryRow(p,a,b,c)
 
#define ITableData_HrEnumRow(p, a, b)   (p)->lpVtbl->HrEnumRow(p,a,b)
 
#define ITableData_HrNotify(p, a, b, c)   (p)->lpVtbl->HrNotify(p,a,b,c)
 
#define ITableData_HrInsertRow(p, a, b)   (p)->lpVtbl->HrInsertRow(p,a,b)
 
#define ITableData_HrModifyRows(p, a, b)   (p)->lpVtbl->HrModifyRows(p,a,b)
 
#define ITableData_HrDeleteRows(p, a, b, c)   (p)->lpVtbl->HrDeleteRows(p,a,b,c)
 
#define INTERFACE   IPropData
 
#define IPropData_QueryInterface(p, a, b)   (p)->lpVtbl->QueryInterface(p,a,b)
 
#define IPropData_AddRef(p)   (p)->lpVtbl->AddRef(p)
 
#define IPropData_Release(p)   (p)->lpVtbl->Release(p)
 
#define IPropData_GetLastError(p, a, b, c)   (p)->lpVtbl->GetLastError(p,a,b,c)
 
#define IPropData_SaveChanges(p, a)   (p)->lpVtbl->SaveChanges(p,a)
 
#define IPropData_GetProps(p, a, b, c, d)   (p)->lpVtbl->GetProps(p,a,b,c,d)
 
#define IPropData_GetPropList(p, a, b)   (p)->lpVtbl->GetPropList(p,a,b)
 
#define IPropData_OpenProperty(p, a, b, c, d, e)   (p)->lpVtbl->OpenProperty(p,a,b,c,d,e)
 
#define IPropData_SetProps(p, a, b, c)   (p)->lpVtbl->SetProps(p,a,b,c)
 
#define IPropData_DeleteProps(p, a, b)   (p)->lpVtbl->DeleteProps(p,a,b)
 
#define IPropData_CopyTo(p, a, b, c, d, e, f, g, h, i)   (p)->lpVtbl->CopyTo(p,a,b,c,d,e,f,g,h,i)
 
#define IPropData_CopyProps(p, a, b, c, d, e, f, g)   (p)->lpVtbl->CopyProps(p,a,b,c,d,e,f,g)
 
#define IPropData_GetNamesFromIDs(p, a, b, c, d, e)   (p)->lpVtbl->GetNamesFromIDs(p,a,b,c,d,e)
 
#define IPropData_GetIDsFromNames(p, a, b, c, d)   (p)->lpVtbl->GetIDsFromNames(p,a,b,c,d)
 
#define IPropData_HrSetObjAccess(p, a)   (p)->lpVtbl->HrSetObjAccess(p,a)
 
#define IPropData_HrSetPropAccess(p, a, b)   (p)->lpVtbl->HrSetPropAccess(p,a,b)
 
#define IPropData_HrGetPropAccess(p, a, b)   (p)->lpVtbl->HrGetPropAccess(p,a,b)
 
#define IPropData_HrAddObjProps(p, a, b)   (p)->lpVtbl->HrAddObjProps(p,a,b)
 

Typedefs

typedef HRESULT(WINAPILPOPENSTREAMONFILE) (LPALLOCATEBUFFER, LPFREEBUFFER, ULONG, LPSTR, LPSTR, LPSTREAM *)
 
typedef struct IPropData * LPPROPDATA
 
typedef DISPATCHNOTIFICATIONS * LPDISPATCHNOTIFICATIONS
 
typedef ULONG LPBYTE *typedef CREATECONVERSATIONINDEX * LPCREATECONVERSATIONINDEX
 
typedef struct ITableData * LPTABLEDATA
 

Functions

LPMALLOC WINAPI MAPIGetDefaultMalloc (void)
 
HRESULT WINAPI OpenStreamOnFile (LPALLOCATEBUFFER, LPFREEBUFFER, ULONG, LPSTR, LPSTR, LPSTREAM *)
 
BOOL WINAPI FEqualNames (LPMAPINAMEID, LPMAPINAMEID)
 
SCODE WINAPI CreateIProp (LPCIID, ALLOCATEBUFFER *, ALLOCATEMORE *, FREEBUFFER *, LPVOID, LPPROPDATA *)
 
SCODE WINAPI PropCopyMore (LPSPropValue, LPSPropValue, ALLOCATEMORE *, LPVOID)
 
ULONG WINAPI UlPropSize (LPSPropValue)
 
VOID WINAPI GetInstance (LPSPropValue, LPSPropValue, ULONG)
 
BOOL WINAPI FPropContainsProp (LPSPropValue, LPSPropValue, ULONG)
 
BOOL WINAPI FPropCompareProp (LPSPropValue, ULONG, LPSPropValue)
 
LONG WINAPI LPropCompareProp (LPSPropValue, LPSPropValue)
 
HRESULT WINAPI HrAddColumns (LPMAPITABLE, LPSPropTagArray, LPALLOCATEBUFFER, LPFREEBUFFER)
 
HRESULT WINAPI HrAddColumnsEx (LPMAPITABLE, LPSPropTagArray, LPALLOCATEBUFFER, LPFREEBUFFER, void(*)(LPSPropTagArray))
 
HRESULT WINAPI HrAllocAdviseSink (LPNOTIFCALLBACK, LPVOID, LPMAPIADVISESINK *)
 
HRESULT WINAPI HrThisThreadAdviseSink (LPMAPIADVISESINK, LPMAPIADVISESINK *)
 
HRESULT WINAPI HrDispatchNotifications (ULONG)
 
ULONG WINAPI UlAddRef (void *)
 
ULONG WINAPI UlRelease (void *)
 
HRESULT WINAPI HrGetOneProp (LPMAPIPROP, ULONG, LPSPropValue *)
 
HRESULT WINAPI HrSetOneProp (LPMAPIPROP, LPSPropValue)
 
BOOL WINAPI FPropExists (LPMAPIPROP, ULONG)
 
void WINAPI FreePadrlist (LPADRLIST)
 
void WINAPI FreeProws (LPSRowSet)
 
HRESULT WINAPI HrQueryAllRows (LPMAPITABLE, LPSPropTagArray, LPSRestriction, LPSSortOrderSet, LONG, LPSRowSet *)
 
LPSPropValue WINAPI PpropFindProp (LPSPropValue, ULONG, ULONG)
 
BOOL WINAPI FBinFromHex (LPSTR, LPBYTE)
 
SCODE WINAPI ScBinFromHexBounded (LPSTR, LPBYTE, ULONG)
 
void WINAPI HexFromBin (LPBYTE, int, LPSTR)
 
ULONG WINAPI UlFromSzHex (LPCSTR)
 
LPSTR WINAPI SzFindCh (LPCSTR, USHORT)
 
LPSTR WINAPI SzFindLastCh (LPCSTR, USHORT)
 
LPSTR WINAPI SzFindSz (LPCSTR, LPCSTR)
 
UINT WINAPI UFromSz (LPCSTR)
 
SCODE WINAPI ScInitMapiUtil (ULONG)
 
void WINAPI DeinitMapiUtil (void)
 
typedef HRESULT (WINAPI DISPATCHNOTIFICATIONS)(ULONG)
 
typedef SCODE (WINAPI CREATECONVERSATIONINDEX)(ULONG
 
typedef void (WINAPI CALLERRELEASE)(ULONG
 
 DECLARE_INTERFACE_ (ITableData, IUnknown)
 
SCODE WINAPI CreateTable (LPCIID, ALLOCATEBUFFER *, ALLOCATEMORE *, FREEBUFFER *, LPVOID, ULONG, ULONG, LPSPropTagArray, LPTABLEDATA *)
 
SCODE WINAPI ScCountNotifications (int, LPNOTIFICATION, ULONG *)
 
SCODE WINAPI ScCountProps (int, LPSPropValue, ULONG *)
 
SCODE WINAPI ScCopyNotifications (int, LPNOTIFICATION, LPVOID, ULONG *)
 
SCODE WINAPI ScCopyProps (int, LPSPropValue, LPVOID, ULONG *)
 
SCODE WINAPI ScDupPropset (int, LPSPropValue, LPALLOCATEBUFFER, LPSPropValue *)
 
SCODE WINAPI ScRelocNotifications (int, LPNOTIFICATION, LPVOID, LPVOID, ULONG *)
 
SCODE WINAPI ScRelocProps (int, LPSPropValue, LPVOID, LPVOID, ULONG *)
 
LPSPropValue WINAPI LpValFindProp (ULONG, ULONG, LPSPropValue)
 
static FILETIME FtAddFt (FILETIME ftLeft, FILETIME ftRight)
 
static FILETIME FtSubFt (FILETIME ftLeft, FILETIME ftRight)
 
static FILETIME FtNegFt (FILETIME ftLeft)
 
static FILETIME FtMulDw (DWORD dwLeft, FILETIME ftRight)
 
static FILETIME FtMulDwDw (DWORD dwLeft, DWORD dwRight)
 
 DECLARE_INTERFACE_ (IPropData, IMAPIProp)
 

Variables

typedef LPBYTE
 
typedef LPMAPITABLE
 

Macro Definition Documentation

◆ INTERFACE [1/2]

#define INTERFACE   ITableData

Definition at line 219 of file mapiutil.h.

◆ INTERFACE [2/2]

#define INTERFACE   IPropData

Definition at line 219 of file mapiutil.h.

◆ IPROP_CLEAN

#define IPROP_CLEAN   0x10000U

Definition at line 53 of file mapiutil.h.

◆ IPROP_DIRTY

#define IPROP_DIRTY   0x20000U

Definition at line 54 of file mapiutil.h.

◆ IPROP_READONLY

#define IPROP_READONLY   0x00001U

Definition at line 51 of file mapiutil.h.

◆ IPROP_READWRITE

#define IPROP_READWRITE   0x00002U

Definition at line 52 of file mapiutil.h.

◆ IPropData_AddRef

#define IPropData_AddRef (   p)    (p)->lpVtbl->AddRef(p)

Definition at line 253 of file mapiutil.h.

◆ IPropData_CopyProps

#define IPropData_CopyProps (   p,
  a,
  b,
  c,
  d,
  e,
  f,
  g 
)    (p)->lpVtbl->CopyProps(p,a,b,c,d,e,f,g)

Definition at line 264 of file mapiutil.h.

◆ IPropData_CopyTo

#define IPropData_CopyTo (   p,
  a,
  b,
  c,
  d,
  e,
  f,
  g,
  h,
  i 
)    (p)->lpVtbl->CopyTo(p,a,b,c,d,e,f,g,h,i)

Definition at line 263 of file mapiutil.h.

◆ IPropData_DeleteProps

#define IPropData_DeleteProps (   p,
  a,
  b 
)    (p)->lpVtbl->DeleteProps(p,a,b)

Definition at line 262 of file mapiutil.h.

◆ IPropData_GetIDsFromNames

#define IPropData_GetIDsFromNames (   p,
  a,
  b,
  c,
  d 
)    (p)->lpVtbl->GetIDsFromNames(p,a,b,c,d)

Definition at line 266 of file mapiutil.h.

◆ IPropData_GetLastError

#define IPropData_GetLastError (   p,
  a,
  b,
  c 
)    (p)->lpVtbl->GetLastError(p,a,b,c)

Definition at line 256 of file mapiutil.h.

◆ IPropData_GetNamesFromIDs

#define IPropData_GetNamesFromIDs (   p,
  a,
  b,
  c,
  d,
  e 
)    (p)->lpVtbl->GetNamesFromIDs(p,a,b,c,d,e)

Definition at line 265 of file mapiutil.h.

◆ IPropData_GetPropList

#define IPropData_GetPropList (   p,
  a,
  b 
)    (p)->lpVtbl->GetPropList(p,a,b)

Definition at line 259 of file mapiutil.h.

◆ IPropData_GetProps

#define IPropData_GetProps (   p,
  a,
  b,
  c,
  d 
)    (p)->lpVtbl->GetProps(p,a,b,c,d)

Definition at line 258 of file mapiutil.h.

◆ IPropData_HrAddObjProps

#define IPropData_HrAddObjProps (   p,
  a,
  b 
)    (p)->lpVtbl->HrAddObjProps(p,a,b)

Definition at line 270 of file mapiutil.h.

◆ IPropData_HrGetPropAccess

#define IPropData_HrGetPropAccess (   p,
  a,
  b 
)    (p)->lpVtbl->HrGetPropAccess(p,a,b)

Definition at line 269 of file mapiutil.h.

◆ IPropData_HrSetObjAccess

#define IPropData_HrSetObjAccess (   p,
  a 
)    (p)->lpVtbl->HrSetObjAccess(p,a)

Definition at line 267 of file mapiutil.h.

◆ IPropData_HrSetPropAccess

#define IPropData_HrSetPropAccess (   p,
  a,
  b 
)    (p)->lpVtbl->HrSetPropAccess(p,a,b)

Definition at line 268 of file mapiutil.h.

◆ IPropData_OpenProperty

#define IPropData_OpenProperty (   p,
  a,
  b,
  c,
  d,
  e 
)    (p)->lpVtbl->OpenProperty(p,a,b,c,d,e)

Definition at line 260 of file mapiutil.h.

◆ IPropData_QueryInterface

#define IPropData_QueryInterface (   p,
  a,
  b 
)    (p)->lpVtbl->QueryInterface(p,a,b)

Definition at line 252 of file mapiutil.h.

◆ IPropData_Release

#define IPropData_Release (   p)    (p)->lpVtbl->Release(p)

Definition at line 254 of file mapiutil.h.

◆ IPropData_SaveChanges

#define IPropData_SaveChanges (   p,
  a 
)    (p)->lpVtbl->SaveChanges(p,a)

Definition at line 257 of file mapiutil.h.

◆ IPropData_SetProps

#define IPropData_SetProps (   p,
  a,
  b,
  c 
)    (p)->lpVtbl->SetProps(p,a,b,c)

Definition at line 261 of file mapiutil.h.

◆ ITableData_AddRef

#define ITableData_AddRef (   p)    (p)->lpVtbl->AddRef(p)

Definition at line 148 of file mapiutil.h.

◆ ITableData_HrDeleteRow

#define ITableData_HrDeleteRow (   p,
  a 
)    (p)->lpVtbl->HrDeleteRow(p,a)

Definition at line 153 of file mapiutil.h.

◆ ITableData_HrDeleteRows

#define ITableData_HrDeleteRows (   p,
  a,
  b,
  c 
)    (p)->lpVtbl->HrDeleteRows(p,a,b,c)

Definition at line 159 of file mapiutil.h.

◆ ITableData_HrEnumRow

#define ITableData_HrEnumRow (   p,
  a,
  b 
)    (p)->lpVtbl->HrEnumRow(p,a,b)

Definition at line 155 of file mapiutil.h.

◆ ITableData_HrGetView

#define ITableData_HrGetView (   p,
  a,
  b,
  c,
  d 
)    (p)->lpVtbl->HrGetView(p,a,b,c,d)

Definition at line 151 of file mapiutil.h.

◆ ITableData_HrInsertRow

#define ITableData_HrInsertRow (   p,
  a,
  b 
)    (p)->lpVtbl->HrInsertRow(p,a,b)

Definition at line 157 of file mapiutil.h.

◆ ITableData_HrModifyRow

#define ITableData_HrModifyRow (   p,
  a 
)    (p)->lpVtbl->HrModifyRow(p,a)

Definition at line 152 of file mapiutil.h.

◆ ITableData_HrModifyRows

#define ITableData_HrModifyRows (   p,
  a,
  b 
)    (p)->lpVtbl->HrModifyRows(p,a,b)

Definition at line 158 of file mapiutil.h.

◆ ITableData_HrNotify

#define ITableData_HrNotify (   p,
  a,
  b,
  c 
)    (p)->lpVtbl->HrNotify(p,a,b,c)

Definition at line 156 of file mapiutil.h.

◆ ITableData_HrQueryRow

#define ITableData_HrQueryRow (   p,
  a,
  b,
  c 
)    (p)->lpVtbl->HrQueryRow(p,a,b,c)

Definition at line 154 of file mapiutil.h.

◆ ITableData_QueryInterface

#define ITableData_QueryInterface (   p,
  a,
  b 
)    (p)->lpVtbl->QueryInterface(p,a,b)

Definition at line 147 of file mapiutil.h.

◆ ITableData_Release

#define ITableData_Release (   p)    (p)->lpVtbl->Release(p)

Definition at line 149 of file mapiutil.h.

◆ OPENSTREAMONFILE

#define OPENSTREAMONFILE   "OpenStreamOnFile"

Definition at line 45 of file mapiutil.h.

◆ SOF_UNIQUEFILENAME

#define SOF_UNIQUEFILENAME   0x80000000U /* Create a unique (temporary) filename */

Definition at line 32 of file mapiutil.h.

◆ szHrDispatchNotifications

#define szHrDispatchNotifications   "_HrDispatchNotifications@4"

Definition at line 107 of file mapiutil.h.

◆ szScCreateConversationIndex

#define szScCreateConversationIndex   "_ScCreateConversationIndex@16"

Definition at line 108 of file mapiutil.h.

◆ TAD_ALL_ROWS

#define TAD_ALL_ROWS   1 /* Delete all rows */

Definition at line 28 of file mapiutil.h.

Typedef Documentation

◆ LPCREATECONVERSATIONINDEX

typedef ULONG LPBYTE* typedef CREATECONVERSATIONINDEX* LPCREATECONVERSATIONINDEX

Definition at line 112 of file mapiutil.h.

◆ LPDISPATCHNOTIFICATIONS

typedef DISPATCHNOTIFICATIONS* LPDISPATCHNOTIFICATIONS

Definition at line 111 of file mapiutil.h.

◆ LPOPENSTREAMONFILE

typedef HRESULT(WINAPI * LPOPENSTREAMONFILE) (LPALLOCATEBUFFER, LPFREEBUFFER, ULONG, LPSTR, LPSTR, LPSTREAM *)

Definition at line 40 of file mapiutil.h.

◆ LPPROPDATA

typedef struct IPropData* LPPROPDATA

Definition at line 49 of file mapiutil.h.

◆ LPTABLEDATA

typedef LPTABLEDATA

Definition at line 115 of file mapiutil.h.

Function Documentation

◆ CreateIProp()

SCODE WINAPI CreateIProp ( LPCIID  ,
ALLOCATEBUFFER *  ,
ALLOCATEMORE *  ,
FREEBUFFER *  ,
LPVOID  ,
LPPROPDATA  
)

Definition at line 2307 of file prop.c.

2310 {
2311  IPropDataImpl *lpPropData;
2312  SCODE scode;
2313 
2314  TRACE("(%s,%p,%p,%p,%p,%p)\n", debugstr_guid(iid), lpAlloc, lpMore, lpFree,
2315  lpReserved, lppPropData);
2316 
2317  if (lppPropData)
2318  *lppPropData = NULL;
2319 
2320  if (iid && !IsEqualGUID(iid, &IID_IMAPIPropData))
2322 
2323  if (!lpAlloc || !lpMore || !lpFree || lpReserved || !lppPropData)
2324  return MAPI_E_INVALID_PARAMETER;
2325 
2326  scode = lpAlloc(sizeof(IPropDataImpl), (LPVOID*)&lpPropData);
2327 
2328  if (SUCCEEDED(scode))
2329  {
2330  lpPropData->IPropData_iface.lpVtbl = &IPropDataImpl_vtbl;
2331  lpPropData->lRef = 1;
2332  lpPropData->lpAlloc = lpAlloc;
2333  lpPropData->lpMore = lpMore;
2334  lpPropData->lpFree = lpFree;
2335  lpPropData->ulObjAccess = IPROP_READWRITE;
2336  lpPropData->ulNumValues = 0;
2337  list_init(&lpPropData->values);
2338  InitializeCriticalSection(&lpPropData->cs);
2339  lpPropData->cs.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": IPropDataImpl.cs");
2340  *lppPropData = &lpPropData->IPropData_iface;
2341  }
2342  return scode;
2343 }
ULONG ulObjAccess
Definition: prop.c:1416
#define DWORD_PTR
Definition: treelist.c:76
LONG lRef
Definition: prop.c:1412
ALLOCATEMORE * lpMore
Definition: prop.c:1414
#define MAPI_E_INTERFACE_NOT_SUPPORTED
Definition: mapicode.h:57
if SUCCEEDED(hr)
LONG SCODE
Definition: compat.h:2111
CRITICAL_SECTION cs
Definition: prop.c:1419
VOID WINAPI InitializeCriticalSection(OUT LPCRITICAL_SECTION lpCriticalSection)
Definition: synch.c:751
static const IPropDataVtbl IPropDataImpl_vtbl
Definition: prop.c:2267
#define MAPI_E_INVALID_PARAMETER
Definition: mapicode.h:62
#define debugstr_guid
Definition: kernel32.h:35
ALLOCATEBUFFER * lpAlloc
Definition: prop.c:1413
#define TRACE(s)
Definition: solgame.cpp:4
ULONG ulNumValues
Definition: prop.c:1417
struct list values
Definition: prop.c:1418
PCRITICAL_SECTION_DEBUG DebugInfo
Definition: winbase.h:888
IPropData IPropData_iface
Definition: prop.c:1411
#define NULL
Definition: types.h:112
BOOL WINAPI IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
Definition: compobj.c:4112
FREEBUFFER * lpFree
Definition: prop.c:1415
#define IPROP_READWRITE
Definition: mapiutil.h:52
__WINE_SERVER_LIST_INLINE void list_init(struct list *list)
Definition: list.h:149
DWORD_PTR Spare[8/sizeof(DWORD_PTR)]
Definition: winbase.h:881

◆ CreateTable()

SCODE WINAPI CreateTable ( LPCIID  ,
ALLOCATEBUFFER *  ,
ALLOCATEMORE *  ,
FREEBUFFER *  ,
LPVOID  ,
ULONG  ,
ULONG  ,
LPSPropTagArray  ,
LPTABLEDATA  
)

◆ DECLARE_INTERFACE_() [1/2]

DECLARE_INTERFACE_ ( ITableData  ,
IUnknown   
)

Definition at line 125 of file mapiutil.h.

126 {
127  /*** IUnknown methods ***/
131  /*** ITableData methods ***/
132  STDMETHOD(HrGetView)(THIS_ LPSSortOrderSet lpSort, CALLERRELEASE *lpRel,
133  ULONG ulData, LPMAPITABLE *lppTable) PURE;
134  STDMETHOD(HrModifyRow)(THIS_ LPSRow lpRow) PURE;
135  STDMETHOD(HrDeleteRow)(THIS_ LPSPropValue lpKey) PURE;
136  STDMETHOD(HrQueryRow)(THIS_ LPSPropValue lpKey, LPSRow *lppRow, ULONG *lpRowNum) PURE;
137  STDMETHOD(HrEnumRow)(THIS_ ULONG ulRowNum, LPSRow *lppRow) PURE;
138  STDMETHOD(HrNotify)(THIS_ ULONG ulFlags, ULONG cValues, LPSPropValue lpValues) PURE;
139  STDMETHOD(HrInsertRow)(THIS_ ULONG ulRow, LPSRow lpRow) PURE;
140  STDMETHOD(HrModifyRows)(THIS_ ULONG ulFlags, LPSRowSet lpRows) PURE;
141  STDMETHOD(HrDeleteRows)(THIS_ ULONG ulFlags, LPSRowSet lpRows, ULONG *lpCount) PURE;
142 };
#define REFIID
Definition: guiddef.h:118
#define THIS_
Definition: basetyps.h:65
#define THIS
Definition: basetyps.h:66
REFIID riid
Definition: precomp.h:44
static HRESULT QueryInterface(REFIID, void **)
Definition: events.c:2587
IMAPITable * LPMAPITABLE
Definition: mapidefs.h:840
#define STDMETHOD(m)
Definition: basetyps.h:62
LONG HRESULT
Definition: typedefs.h:79
REFIID LPVOID * ppvObject
Definition: precomp.h:44
static LPCTSTR lpKey
Definition: virtmem.c:16
_In_ BOOLEAN Release
Definition: cdrom.h:920
#define PURE
Definition: basetyps.h:64
static ULONG WINAPI AddRef(IStream *iface)
Definition: clist.c:90
unsigned int ULONG
Definition: retypes.h:1
#define STDMETHOD_(t, m)
Definition: basetyps.h:63

◆ DECLARE_INTERFACE_() [2/2]

DECLARE_INTERFACE_ ( IPropData  ,
IMAPIProp   
)

Definition at line 220 of file mapiutil.h.

221 {
222  /*** IUnknown methods ***/
226  /*** IMAPIProp methods ***/
227  STDMETHOD(GetLastError)(THIS_ HRESULT hRes, ULONG ulFlags, LPMAPIERROR *lppErr) PURE;
228  STDMETHOD(SaveChanges)(THIS_ ULONG ulFlags) PURE;
229  STDMETHOD(GetProps)(THIS_ LPSPropTagArray lpPropTags, ULONG ulFlags, ULONG *lpValues, LPSPropValue *lppProps) PURE;
230  STDMETHOD(GetPropList)(THIS_ ULONG ulFlags, LPSPropTagArray *lppPropTagArray) PURE;
231  STDMETHOD(OpenProperty)(THIS_ ULONG ulPropTag, LPCIID lpIid, ULONG ulOpts, ULONG ulFlags, LPUNKNOWN *lppUnk) PURE;
232  STDMETHOD(SetProps)(THIS_ ULONG cValues, LPSPropValue lpProps, LPSPropProblemArray *lppProbs) PURE;
233  STDMETHOD(DeleteProps)(THIS_ LPSPropTagArray lpPropTags, LPSPropProblemArray *lppProbs) PURE;
234  STDMETHOD(CopyTo)(THIS_ ULONG ciidExclude, LPCIID lpIid, LPSPropTagArray lpProps, ULONG ulParam,
235  LPMAPIPROGRESS lpProgress, LPCIID lpIface,LPVOID lpDest, ULONG ulFlags,
236  LPSPropProblemArray *lppProbs) PURE;
237  STDMETHOD(CopyProps)(THIS_ LPSPropTagArray lpIncludeProps, ULONG ulParam, LPMAPIPROGRESS lpProgress,
238  LPCIID lpIid, LPVOID lpDestObj, ULONG ulFlags, LPSPropProblemArray *lppProblems) PURE;
239  STDMETHOD(GetNamesFromIDs)(THIS_ LPSPropTagArray *lppPropTags, LPGUID lpIid, ULONG ulFlags, ULONG *lpCount,
240  LPMAPINAMEID **lpppNames) PURE;
241  STDMETHOD(GetIDsFromNames)(THIS_ ULONG cPropNames, LPMAPINAMEID *lppNames, ULONG ulFlags, LPSPropTagArray *lppPropTags) PURE;
242  /*** IPropData methods ***/
243  STDMETHOD(HrSetObjAccess)(THIS_ ULONG ulAccess) PURE;
244  STDMETHOD(HrSetPropAccess)(THIS_ LPSPropTagArray lpPropTags, ULONG *lpAccess) PURE;
245  STDMETHOD(HrGetPropAccess)(THIS_ LPSPropTagArray *lppPropTags, ULONG **lppAccess) PURE;
246  STDMETHOD(HrAddObjProps)(THIS_ LPSPropTagArray lppPropTags, LPSPropProblemArray *lppProbs) PURE;
247 };
#define REFIID
Definition: guiddef.h:118
#define THIS_
Definition: basetyps.h:65
#define THIS
Definition: basetyps.h:66
REFIID riid
Definition: precomp.h:44
static HRESULT QueryInterface(REFIID, void **)
Definition: events.c:2587
DWORD WINAPI GetLastError(VOID)
Definition: except.c:1040
#define STDMETHOD(m)
Definition: basetyps.h:62
IMAPIProgress * LPMAPIPROGRESS
Definition: mapidefs.h:96
static LPUNKNOWN
Definition: ndr_ole.c:49
LONG HRESULT
Definition: typedefs.h:79
REFIID LPVOID * ppvObject
Definition: precomp.h:44
_In_ BOOLEAN Release
Definition: cdrom.h:920
#define PURE
Definition: basetyps.h:64
static ULONG WINAPI AddRef(IStream *iface)
Definition: clist.c:90
unsigned int ULONG
Definition: retypes.h:1
#define STDMETHOD_(t, m)
Definition: basetyps.h:63

◆ DeinitMapiUtil()

void WINAPI DeinitMapiUtil ( void  )

Definition at line 93 of file util.c.

94 {
95  if (mapiFunctions.DeinitMapiUtil)
96  mapiFunctions.DeinitMapiUtil();
97  else
98  FIXME("()stub!\n");
99 }
#define FIXME(fmt,...)
Definition: debug.h:111
MAPI_FUNCTIONS mapiFunctions
Definition: util.c:49

◆ FBinFromHex()

BOOL WINAPI FBinFromHex ( LPSTR  ,
LPBYTE   
)

◆ FEqualNames()

BOOL WINAPI FEqualNames ( LPMAPINAMEID  ,
LPMAPINAMEID   
)

Definition at line 486 of file util.c.

487 {
488  TRACE("(%p,%p)\n", lpName1, lpName2);
489 
490  if (!lpName1 || !lpName2 ||
491  !IsEqualGUID(lpName1->lpguid, lpName2->lpguid) ||
492  lpName1->ulKind != lpName2->ulKind)
493  return FALSE;
494 
495  if (lpName1->ulKind == MNID_STRING)
496  return !lstrcmpW(lpName1->Kind.lpwstrName, lpName2->Kind.lpwstrName);
497 
498  return lpName1->Kind.lID == lpName2->Kind.lID;
499 }
int WINAPI lstrcmpW(LPCWSTR lpString1, LPCWSTR lpString2)
Definition: lstring.c:170
#define FALSE
Definition: types.h:117
#define TRACE(s)
Definition: solgame.cpp:4
BOOL WINAPI IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
Definition: compobj.c:4112
#define MNID_STRING
Definition: mapidefs.h:638

◆ FPropCompareProp()

BOOL WINAPI FPropCompareProp ( LPSPropValue  ,
ULONG  ,
LPSPropValue   
)

Definition at line 399 of file prop.c.

400 {
401  LONG iCmp;
402 
403  TRACE("(%p,%d,%p)\n", lpPropLeft, ulOp, lpPropRight);
404 
405  if (ulOp > RELOP_RE || FBadProp(lpPropLeft) || FBadProp(lpPropRight))
406  return FALSE;
407 
408  if (ulOp == RELOP_RE)
409  {
410  FIXME("Comparison operator RELOP_RE not yet implemented!\n");
411  return FALSE;
412  }
413 
414  iCmp = LPropCompareProp(lpPropLeft, lpPropRight);
415 
416  switch (ulOp)
417  {
418  case RELOP_LT: return iCmp < 0;
419  case RELOP_LE: return iCmp <= 0;
420  case RELOP_GT: return iCmp > 0;
421  case RELOP_GE: return iCmp >= 0;
422  case RELOP_EQ: return iCmp == 0;
423  case RELOP_NE: return iCmp != 0;
424  }
425  return FALSE;
426 }
#define RELOP_EQ
Definition: mapidefs.h:514
#define RELOP_RE
Definition: mapidefs.h:516
#define FALSE
Definition: types.h:117
long LONG
Definition: pedump.c:60
#define FIXME(fmt,...)
Definition: debug.h:111
#define RELOP_LT
Definition: mapidefs.h:510
ULONG WINAPI FBadProp(LPSPropValue lpProp)
Definition: prop.c:1288
#define TRACE(s)
Definition: solgame.cpp:4
#define RELOP_GE
Definition: mapidefs.h:513
#define RELOP_GT
Definition: mapidefs.h:512
#define RELOP_LE
Definition: mapidefs.h:511
#define RELOP_NE
Definition: mapidefs.h:515
LONG WINAPI LPropCompareProp(LPSPropValue lpPropLeft, LPSPropValue lpPropRight)
Definition: prop.c:441

◆ FPropContainsProp()

BOOL WINAPI FPropContainsProp ( LPSPropValue  ,
LPSPropValue  ,
ULONG   
)

Definition at line 300 of file prop.c.

301 {
302  TRACE("(%p,%p,0x%08x)\n", lpHaystack, lpNeedle, ulFuzzy);
303 
304  if (FBadProp(lpHaystack) || FBadProp(lpNeedle) ||
305  PROP_TYPE(lpHaystack->ulPropTag) != PROP_TYPE(lpNeedle->ulPropTag))
306  return FALSE;
307 
308  /* FIXME: Do later versions support Unicode as well? */
309 
310  if (PROP_TYPE(lpHaystack->ulPropTag) == PT_STRING8)
311  {
312  DWORD dwFlags = 0, dwNeedleLen, dwHaystackLen;
313 
314  if (ulFuzzy & FL_IGNORECASE)
316  if (ulFuzzy & FL_IGNORENONSPACE)
318  if (ulFuzzy & FL_LOOSE)
320 
321  dwNeedleLen = lstrlenA(lpNeedle->Value.lpszA);
322  dwHaystackLen = lstrlenA(lpHaystack->Value.lpszA);
323 
324  if ((ulFuzzy & (FL_SUBSTRING|FL_PREFIX)) == FL_PREFIX)
325  {
326  if (dwNeedleLen <= dwHaystackLen &&
328  lpHaystack->Value.lpszA, dwNeedleLen,
329  lpNeedle->Value.lpszA, dwNeedleLen) == CSTR_EQUAL)
330  return TRUE; /* needle is a prefix of haystack */
331  }
332  else if ((ulFuzzy & (FL_SUBSTRING|FL_PREFIX)) == FL_SUBSTRING)
333  {
334  LPSTR (WINAPI *pStrChrFn)(LPCSTR,WORD) = StrChrA;
335  LPSTR lpStr = lpHaystack->Value.lpszA;
336 
337  if (dwFlags & NORM_IGNORECASE)
338  pStrChrFn = StrChrIA;
339 
340  while ((lpStr = pStrChrFn(lpStr, *lpNeedle->Value.lpszA)) != NULL)
341  {
342  dwHaystackLen -= (lpStr - lpHaystack->Value.lpszA);
343  if (dwNeedleLen <= dwHaystackLen &&
345  lpStr, dwNeedleLen,
346  lpNeedle->Value.lpszA, dwNeedleLen) == CSTR_EQUAL)
347  return TRUE; /* needle is a substring of haystack */
348  lpStr++;
349  }
350  }
352  lpHaystack->Value.lpszA, dwHaystackLen,
353  lpNeedle->Value.lpszA, dwNeedleLen) == CSTR_EQUAL)
354  return TRUE; /* full string match */
355  }
356  else if (PROP_TYPE(lpHaystack->ulPropTag) == PT_BINARY)
357  {
358  if ((ulFuzzy & (FL_SUBSTRING|FL_PREFIX)) == FL_PREFIX)
359  {
360  if (lpNeedle->Value.bin.cb <= lpHaystack->Value.bin.cb &&
361  !memcmp(lpNeedle->Value.bin.lpb, lpHaystack->Value.bin.lpb,
362  lpNeedle->Value.bin.cb))
363  return TRUE; /* needle is a prefix of haystack */
364  }
365  else if ((ulFuzzy & (FL_SUBSTRING|FL_PREFIX)) == FL_SUBSTRING)
366  {
367  ULONG ulLen = lpHaystack->Value.bin.cb;
368  LPBYTE lpb = lpHaystack->Value.bin.lpb;
369 
370  while ((lpb = memchr(lpb, *lpNeedle->Value.bin.lpb, ulLen)) != NULL)
371  {
372  ulLen = lpHaystack->Value.bin.cb - (lpb - lpHaystack->Value.bin.lpb);
373  if (lpNeedle->Value.bin.cb <= ulLen &&
374  !memcmp(lpNeedle->Value.bin.lpb, lpb, lpNeedle->Value.bin.cb))
375  return TRUE; /* needle is a substring of haystack */
376  lpb++;
377  }
378  }
379  else if (!LPropCompareProp(lpHaystack, lpNeedle))
380  return TRUE; /* needle is an exact match with haystack */
381 
382  }
383  return FALSE;
384 }
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
Definition: utclib.c:112
#define memchr(s, c, n)
Definition: mkisofs.h:875
#define FL_SUBSTRING
Definition: mapidefs.h:450
#define TRUE
Definition: types.h:120
#define LOCALE_USER_DEFAULT
LPSTR WINAPI StrChrIA(LPCSTR lpszStr, WORD ch)
Definition: string.c:614
#define NORM_IGNORESYMBOLS
Definition: winnls.h:179
#define NORM_IGNORECASE
Definition: winnls.h:176
char * LPSTR
Definition: xmlstorage.h:182
#define FL_IGNORENONSPACE
Definition: mapidefs.h:453
#define FL_LOOSE
Definition: mapidefs.h:454
unsigned char * LPBYTE
Definition: typedefs.h:53
#define FALSE
Definition: types.h:117
LPSTR WINAPI StrChrA(LPCSTR lpszStr, WORD ch)
Definition: string.c:270
const char * LPCSTR
Definition: xmlstorage.h:183
INT WINAPI CompareStringA(LCID lcid, DWORD flags, LPCSTR str1, INT len1, LPCSTR str2, INT len2)
Definition: lang.c:2299
ULONG WINAPI FBadProp(LPSPropValue lpProp)
Definition: prop.c:1288
#define TRACE(s)
Definition: solgame.cpp:4
#define PT_STRING8
Definition: mapidefs.h:210
#define WINAPI
Definition: msvc.h:6
unsigned short WORD
Definition: ntddk_ex.h:93
unsigned long DWORD
Definition: ntddk_ex.h:95
#define PROP_TYPE(t)
Definition: mapidefs.h:238
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
Definition: wincrypt.h:1175
#define CSTR_EQUAL
Definition: winnls.h:456
#define PT_BINARY
Definition: mapidefs.h:214
int WINAPI lstrlenA(LPCSTR lpString)
Definition: lstring.c:145
#define NULL
Definition: types.h:112
#define NORM_IGNORENONSPACE
Definition: winnls.h:178
unsigned int ULONG
Definition: retypes.h:1
LONG WINAPI LPropCompareProp(LPSPropValue lpPropLeft, LPSPropValue lpPropRight)
Definition: prop.c:441
#define FL_PREFIX
Definition: mapidefs.h:451
#define FL_IGNORECASE
Definition: mapidefs.h:452

◆ FPropExists()

BOOL WINAPI FPropExists ( LPMAPIPROP  ,
ULONG   
)

Definition at line 592 of file prop.c.

593  {
594  BOOL bRet = FALSE;
595 
596  TRACE("(%p,%d)\n", lpIProp, ulPropTag);
597 
598  if (lpIProp)
599  {
600  LPSPropTagArray lpTags;
601  ULONG i;
602 
603  if (FAILED(IMAPIProp_GetPropList(lpIProp, 0u, &lpTags)))
604  return FALSE;
605 
606  for (i = 0; i < lpTags->cValues; i++)
607  {
608  if (!FBadPropTag(lpTags->aulPropTag[i]) &&
609  (lpTags->aulPropTag[i] == ulPropTag ||
610  (PROP_TYPE(ulPropTag) == PT_UNSPECIFIED &&
611  PROP_ID(lpTags->aulPropTag[i]) == lpTags->aulPropTag[i])))
612  {
613  bRet = TRUE;
614  break;
615  }
616  }
617  MAPIFreeBuffer(lpTags);
618  }
619  return bRet;
620 }
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
Definition: glfuncs.h:240
ULONG WINAPI FBadPropTag(ULONG ulPropTag)
Definition: prop.c:1221
#define TRUE
Definition: types.h:120
MAPIFREEBUFFER MAPIFreeBuffer
Definition: mapi.h:206
#define FALSE
Definition: types.h:117
unsigned int BOOL
Definition: ntddk_ex.h:94
#define TRACE(s)
Definition: solgame.cpp:4
#define PT_UNSPECIFIED
Definition: mapidefs.h:193
#define IMAPIProp_GetPropList(p, a, b)
Definition: mapidefs.h:904
#define PROP_TYPE(t)
Definition: mapidefs.h:238
ULONG aulPropTag[MAPI_DIM]
Definition: mapidefs.h:271
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
unsigned int ULONG
Definition: retypes.h:1
ULONG cValues
Definition: mapidefs.h:270
#define PROP_ID(t)
Definition: mapidefs.h:239

◆ FreePadrlist()

void WINAPI FreePadrlist ( LPADRLIST  )

Definition at line 669 of file prop.c.

670 {
671  TRACE("(%p)\n", lpAddrs);
672 
673  /* Structures are binary compatible; use the same implementation */
674  FreeProws((LPSRowSet)lpAddrs);
675 }
VOID WINAPI FreeProws(LPSRowSet lpRowSet)
Definition: prop.c:688
#define TRACE(s)
Definition: solgame.cpp:4

◆ FreeProws()

void WINAPI FreeProws ( LPSRowSet  )

Definition at line 688 of file prop.c.

689 {
690  TRACE("(%p)\n", lpRowSet);
691 
692  if (lpRowSet)
693  {
694  ULONG i;
695 
696  for (i = 0; i < lpRowSet->cRows; i++)
697  MAPIFreeBuffer(lpRowSet->aRow[i].lpProps);
698 
699  MAPIFreeBuffer(lpRowSet);
700  }
701 }
MAPIFREEBUFFER MAPIFreeBuffer
Definition: mapi.h:206
#define TRACE(s)
Definition: solgame.cpp:4
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
unsigned int ULONG
Definition: retypes.h:1

Referenced by FreePadrlist(), and sendmail_extended_mapi().

◆ FtAddFt()

static FILETIME FtAddFt ( FILETIME  ftLeft,
FILETIME  ftRight 
)
inlinestatic

Definition at line 175 of file mapiutil.h.

176 {
177  LONG64 *pl = (LONG64*)&ftLeft, *pr = (LONG64*)&ftRight;
178  union { FILETIME ft; LONG64 ll; } ftmap;
179  ftmap.ll = *pl + *pr;
180  return ftmap.ft;
181 }
int64_t LONG64
Definition: typedefs.h:68
w ll
Definition: byte_order.h:166

◆ FtMulDw()

static FILETIME FtMulDw ( DWORD  dwLeft,
FILETIME  ftRight 
)
inlinestatic

Definition at line 199 of file mapiutil.h.

200 {
201  LONG64 l = (LONG64)dwLeft, *pr = (LONG64*)&ftRight;
202  union { FILETIME ft; LONG64 ll; } ftmap;
203  ftmap.ll = l * (*pr);
204  return ftmap.ft;
205 }
r l[0]
Definition: byte_order.h:167
int64_t LONG64
Definition: typedefs.h:68
w ll
Definition: byte_order.h:166

◆ FtMulDwDw()

static FILETIME FtMulDwDw ( DWORD  dwLeft,
DWORD  dwRight 
)
inlinestatic

Definition at line 207 of file mapiutil.h.

208 {
209  LONG64 l = (LONG64)dwLeft, r = (LONG64)dwRight;
210  union { FILETIME ft; LONG64 ll; } ftmap;
211  ftmap.ll = l * r;
212  return ftmap.ft;
213 }
GLdouble GLdouble GLdouble r
Definition: gl.h:2055
r l[0]
Definition: byte_order.h:167
int64_t LONG64
Definition: typedefs.h:68
w ll
Definition: byte_order.h:166

◆ FtNegFt()

static FILETIME FtNegFt ( FILETIME  ftLeft)
inlinestatic

Definition at line 191 of file mapiutil.h.

192 {
193  LONG64 *p = (LONG64*)&ftLeft;
194  union { FILETIME ft; LONG64 ll; } ftmap;
195  ftmap.ll = -*p;
196  return ftmap.ft;
197 }
int64_t LONG64
Definition: typedefs.h:68
w ll
Definition: byte_order.h:166
GLfloat GLfloat p
Definition: glext.h:8902

◆ FtSubFt()

static FILETIME FtSubFt ( FILETIME  ftLeft,
FILETIME  ftRight 
)
inlinestatic

Definition at line 183 of file mapiutil.h.

184 {
185  LONG64 *pl = (LONG64*)&ftLeft, *pr = (LONG64*)&ftRight;
186  union { FILETIME ft; LONG64 ll; } ftmap;
187  ftmap.ll = *pl - *pr;
188  return ftmap.ft;
189 }
int64_t LONG64
Definition: typedefs.h:68
w ll
Definition: byte_order.h:166

◆ GetInstance()

VOID WINAPI GetInstance ( LPSPropValue  ,
LPSPropValue  ,
ULONG   
)

Referenced by START_TEST().

◆ HexFromBin()

void WINAPI HexFromBin ( LPBYTE  ,
int  ,
LPSTR   
)

◆ HrAddColumns()

◆ HrAddColumnsEx()

◆ HrAllocAdviseSink()

HRESULT WINAPI HrAllocAdviseSink ( LPNOTIFCALLBACK  ,
LPVOID  ,
LPMAPIADVISESINK  
)

◆ HrDispatchNotifications()

HRESULT WINAPI HrDispatchNotifications ( ULONG  )

Definition at line 243 of file util.c.

244 {
245  FIXME("(%08x)\n", flags);
246  return S_OK;
247 }
#define FIXME(fmt,...)
Definition: debug.h:111
GLbitfield flags
Definition: glext.h:7161
#define S_OK
Definition: intsafe.h:51

◆ HRESULT()

typedef HRESULT ( WINAPI  DISPATCHNOTIFICATIONS)

◆ HrGetOneProp()

HRESULT WINAPI HrGetOneProp ( LPMAPIPROP  ,
ULONG  ,
LPSPropValue  
)

Definition at line 535 of file prop.c.

536 {
537  SPropTagArray pta;
538  ULONG ulCount;
539  HRESULT hRet;
540 
541  TRACE("(%p,%d,%p)\n", lpIProp, ulPropTag, lppProp);
542 
543  pta.cValues = 1u;
544  pta.aulPropTag[0] = ulPropTag;
545  hRet = IMAPIProp_GetProps(lpIProp, &pta, 0u, &ulCount, lppProp);
546  if (hRet == MAPI_W_ERRORS_RETURNED)
547  {
548  MAPIFreeBuffer(*lppProp);
549  *lppProp = NULL;
550  hRet = MAPI_E_NOT_FOUND;
551  }
552  return hRet;
553 }
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
Definition: glfuncs.h:240
MAPIFREEBUFFER MAPIFreeBuffer
Definition: mapi.h:206
#define IMAPIProp_GetProps(p, a, b, c, d)
Definition: mapidefs.h:903
#define TRACE(s)
Definition: solgame.cpp:4
LONG HRESULT
Definition: typedefs.h:79
ULONG aulPropTag[MAPI_DIM]
Definition: mapidefs.h:271
#define NULL
Definition: types.h:112
unsigned int ULONG
Definition: retypes.h:1
#define MAPI_E_NOT_FOUND
Definition: mapicode.h:76
ULONG cValues
Definition: mapidefs.h:270
#define MAPI_W_ERRORS_RETURNED
Definition: mapicode.h:109

◆ HrQueryAllRows()

HRESULT WINAPI HrQueryAllRows ( LPMAPITABLE  ,
LPSPropTagArray  ,
LPSRestriction  ,
LPSSortOrderSet  ,
LONG  ,
LPSRowSet  
)

Definition at line 933 of file util.c.

936 {
937  if (mapiFunctions.HrQueryAllRows)
938  return mapiFunctions.HrQueryAllRows(lpTable, lpPropTags, lpRestriction, lpSortOrderSet, crowsMax, lppRows);
939 
940  FIXME("(%p, %p, %p, %p, %d, %p): stub\n", lpTable, lpPropTags, lpRestriction, lpSortOrderSet, crowsMax, lppRows);
941  *lppRows = NULL;
942  return MAPI_E_CALL_FAILED;
943 }
#define FIXME(fmt,...)
Definition: debug.h:111
MAPI_FUNCTIONS mapiFunctions
Definition: util.c:49
#define MAPI_E_CALL_FAILED
Definition: mapicode.h:43
#define NULL
Definition: types.h:112

◆ HrSetOneProp()

HRESULT WINAPI HrSetOneProp ( LPMAPIPROP  ,
LPSPropValue   
)

Definition at line 568 of file prop.c.

569 {
570  TRACE("(%p,%p)\n", lpIProp, lpProp);
571 
572  return IMAPIProp_SetProps(lpIProp, 1u, lpProp, NULL);
573 }
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
Definition: glfuncs.h:240
#define TRACE(s)
Definition: solgame.cpp:4
#define IMAPIProp_SetProps(p, a, b, c)
Definition: mapidefs.h:906
#define NULL
Definition: types.h:112

◆ HrThisThreadAdviseSink()

HRESULT WINAPI HrThisThreadAdviseSink ( LPMAPIADVISESINK  ,
LPMAPIADVISESINK  
)

Definition at line 262 of file util.c.

263 {
264  if (mapiFunctions.HrThisThreadAdviseSink)
265  return mapiFunctions.HrThisThreadAdviseSink(lpSink, lppNewSink);
266 
267  FIXME("(%p,%p)semi-stub\n", lpSink, lppNewSink);
268 
269  if (!lpSink || !lppNewSink)
270  return E_INVALIDARG;
271 
272  /* Don't wrap the sink for now, just copy it */
273  *lppNewSink = lpSink;
274  IMAPIAdviseSink_AddRef(lpSink);
275  return S_OK;
276 }
#define IMAPIAdviseSink_AddRef(p)
Definition: mapidefs.h:860
#define FIXME(fmt,...)
Definition: debug.h:111
#define E_INVALIDARG
Definition: ddrawi.h:101
MAPI_FUNCTIONS mapiFunctions
Definition: util.c:49
#define S_OK
Definition: intsafe.h:51

◆ LPropCompareProp()

LONG WINAPI LPropCompareProp ( LPSPropValue  ,
LPSPropValue   
)

Definition at line 441 of file prop.c.

442 {
443  LONG iRet;
444 
445  TRACE("(%p->0x%08x,%p->0x%08x)\n", lpPropLeft, lpPropLeft->ulPropTag,
446  lpPropRight, lpPropRight->ulPropTag);
447 
448  /* If the properties are not the same, sort by property type */
449  if (PROP_TYPE(lpPropLeft->ulPropTag) != PROP_TYPE(lpPropRight->ulPropTag))
450  return (LONG)PROP_TYPE(lpPropLeft->ulPropTag) - (LONG)PROP_TYPE(lpPropRight->ulPropTag);
451 
452  switch (PROP_TYPE(lpPropLeft->ulPropTag))
453  {
454  case PT_UNSPECIFIED:
455  case PT_NULL:
456  return 0; /* NULLs are equal */
457  case PT_I2:
458  return lpPropLeft->Value.i - lpPropRight->Value.i;
459  case PT_I4:
460  return lpPropLeft->Value.l - lpPropRight->Value.l;
461  case PT_I8:
462  if (lpPropLeft->Value.li.QuadPart > lpPropRight->Value.li.QuadPart)
463  return 1;
464  if (lpPropLeft->Value.li.QuadPart == lpPropRight->Value.li.QuadPart)
465  return 0;
466  return -1;
467  case PT_R4:
468  if (lpPropLeft->Value.flt > lpPropRight->Value.flt)
469  return 1;
470  if (lpPropLeft->Value.flt == lpPropRight->Value.flt)
471  return 0;
472  return -1;
473  case PT_APPTIME:
474  case PT_R8:
475  if (lpPropLeft->Value.dbl > lpPropRight->Value.dbl)
476  return 1;
477  if (lpPropLeft->Value.dbl == lpPropRight->Value.dbl)
478  return 0;
479  return -1;
480  case PT_CURRENCY:
481  if (lpPropLeft->Value.cur.int64 > lpPropRight->Value.cur.int64)
482  return 1;
483  if (lpPropLeft->Value.cur.int64 == lpPropRight->Value.cur.int64)
484  return 0;
485  return -1;
486  case PT_SYSTIME:
487  return CompareFileTime(&lpPropLeft->Value.ft, &lpPropRight->Value.ft);
488  case PT_BOOLEAN:
489  return (lpPropLeft->Value.b ? 1 : 0) - (lpPropRight->Value.b ? 1 : 0);
490  case PT_BINARY:
491  if (lpPropLeft->Value.bin.cb == lpPropRight->Value.bin.cb)
492  iRet = memcmp(lpPropLeft->Value.bin.lpb, lpPropRight->Value.bin.lpb,
493  lpPropLeft->Value.bin.cb);
494  else
495  {
496  iRet = memcmp(lpPropLeft->Value.bin.lpb, lpPropRight->Value.bin.lpb,
497  min(lpPropLeft->Value.bin.cb, lpPropRight->Value.bin.cb));
498 
499  if (!iRet)
500  iRet = lpPropLeft->Value.bin.cb - lpPropRight->Value.bin.cb;
501  }
502  return iRet;
503  case PT_STRING8:
504  return lstrcmpA(lpPropLeft->Value.lpszA, lpPropRight->Value.lpszA);
505  case PT_UNICODE:
506  return lstrcmpW(lpPropLeft->Value.lpszW, lpPropRight->Value.lpszW);
507  case PT_ERROR:
508  if (lpPropLeft->Value.err > lpPropRight->Value.err)
509  return 1;
510  if (lpPropLeft->Value.err == lpPropRight->Value.err)
511  return 0;
512  return -1;
513  case PT_CLSID:
514  return memcmp(lpPropLeft->Value.lpguid, lpPropRight->Value.lpguid,
515  sizeof(GUID));
516  }
517  FIXME("Unhandled property type %d\n", PROP_TYPE(lpPropLeft->ulPropTag));
518  return 0;
519 }
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
Definition: utclib.c:112
int WINAPI lstrcmpW(LPCWSTR lpString1, LPCWSTR lpString2)
Definition: lstring.c:170
#define PT_R4
Definition: mapidefs.h:199
#define PT_CURRENCY
Definition: mapidefs.h:203
#define PT_CLSID
Definition: mapidefs.h:213
int WINAPI lstrcmpA(LPCSTR lpString1, LPCSTR lpString2)
Definition: lstring.c:18
#define PT_SYSTIME
Definition: mapidefs.h:212
#define PT_APPTIME
Definition: mapidefs.h:204
#define PT_NULL
Definition: mapidefs.h:194
#define PT_ERROR
Definition: mapidefs.h:205
long LONG
Definition: pedump.c:60
#define FIXME(fmt,...)
Definition: debug.h:111
static LONG(WINAPI *pLPropCompareProp)(LPSPropValue
#define PT_BOOLEAN
Definition: mapidefs.h:206
#define TRACE(s)
Definition: solgame.cpp:4
LONG WINAPI CompareFileTime(IN CONST FILETIME *lpFileTime1, IN CONST FILETIME *lpFileTime2)
Definition: time.c:106
#define PT_STRING8
Definition: mapidefs.h:210
#define PT_R8
Definition: mapidefs.h:202
#define PT_I8
Definition: mapidefs.h:208
#define PT_UNSPECIFIED
Definition: mapidefs.h:193
#define PROP_TYPE(t)
Definition: mapidefs.h:238
#define PT_I2
Definition: mapidefs.h:195
#define PT_I4
Definition: mapidefs.h:198
#define PT_BINARY
Definition: mapidefs.h:214
#define min(a, b)
Definition: monoChain.cc:55
#define PT_UNICODE
Definition: mapidefs.h:211

Referenced by FPropCompareProp(), and FPropContainsProp().

◆ LpValFindProp()

LPSPropValue WINAPI LpValFindProp ( ULONG  ,
ULONG  ,
LPSPropValue   
)

Definition at line 1076 of file prop.c.

1077 {
1078  TRACE("(%d,%d,%p)\n", ulPropTag, cValues, lpProps);
1079 
1080  if (lpProps && cValues)
1081  {
1082  ULONG i;
1083  for (i = 0; i < cValues; i++)
1084  {
1085  if (PROP_ID(ulPropTag) == PROP_ID(lpProps[i].ulPropTag))
1086  return &lpProps[i];
1087  }
1088  }
1089  return NULL;
1090 }
#define TRACE(s)
Definition: solgame.cpp:4
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
#define NULL
Definition: types.h:112
unsigned int ULONG
Definition: retypes.h:1
#define PROP_ID(t)
Definition: mapidefs.h:239

◆ MAPIGetDefaultMalloc()

LPMALLOC WINAPI MAPIGetDefaultMalloc ( void  )

Definition at line 62 of file imalloc.c.

63 {
64  TRACE("()\n");
65 
66  if (mapiFunctions.MAPIGetDefaultMalloc)
67  return mapiFunctions.MAPIGetDefaultMalloc();
68 
69  IMalloc_AddRef(&MAPI_IMalloc.IMalloc_iface);
71 }
#define TRACE(s)
Definition: solgame.cpp:4
static MAPI_IMALLOC MAPI_IMalloc
Definition: imalloc.c:47
MAPI_FUNCTIONS mapiFunctions
Definition: util.c:49
IMalloc IMalloc_iface
Definition: imalloc.c:43

◆ OpenStreamOnFile()

HRESULT WINAPI OpenStreamOnFile ( LPALLOCATEBUFFER  ,
LPFREEBUFFER  ,
ULONG  ,
LPSTR  ,
LPSTR  ,
LPSTREAM  
)

◆ PpropFindProp()

LPSPropValue WINAPI PpropFindProp ( LPSPropValue  ,
ULONG  ,
ULONG   
)

Definition at line 639 of file prop.c.

640 {
641  TRACE("(%p,%d,%d)\n", lpProps, cValues, ulPropTag);
642 
643  if (lpProps && cValues)
644  {
645  ULONG i;
646  for (i = 0; i < cValues; i++)
647  {
648  if (!FBadPropTag(lpProps[i].ulPropTag) &&
649  (lpProps[i].ulPropTag == ulPropTag ||
650  (PROP_TYPE(ulPropTag) == PT_UNSPECIFIED &&
651  PROP_ID(lpProps[i].ulPropTag) == PROP_ID(ulPropTag))))
652  return &lpProps[i];
653  }
654  }
655  return NULL;
656 }
ULONG WINAPI FBadPropTag(ULONG ulPropTag)
Definition: prop.c:1221
#define TRACE(s)
Definition: solgame.cpp:4
#define PT_UNSPECIFIED
Definition: mapidefs.h:193
#define PROP_TYPE(t)
Definition: mapidefs.h:238
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
#define NULL
Definition: types.h:112
unsigned int ULONG
Definition: retypes.h:1
#define PROP_ID(t)
Definition: mapidefs.h:239

◆ PropCopyMore()

SCODE WINAPI PropCopyMore ( LPSPropValue  ,
LPSPropValue  ,
ALLOCATEMORE *  ,
LPVOID   
)

Definition at line 64 of file prop.c.

66 {
67  ULONG ulLen, i;
68  SCODE scode = S_OK;
69 
70  TRACE("(%p,%p,%p,%p)\n", lpDest, lpSrc, lpMore, lpOrig);
71 
72  if (!lpDest || IsBadWritePtr(lpDest, sizeof(SPropValue)) ||
73  FBadProp(lpSrc) || !lpMore)
75 
76  /* Shallow copy first, this is sufficient for properties without pointers */
77  *lpDest = *lpSrc;
78 
79  switch (PROP_TYPE(lpSrc->ulPropTag))
80  {
81  case PT_CLSID:
82  scode = lpMore(sizeof(GUID), lpOrig, (LPVOID*)&lpDest->Value.lpguid);
83  if (SUCCEEDED(scode))
84  *lpDest->Value.lpguid = *lpSrc->Value.lpguid;
85  break;
86  case PT_STRING8:
87  ulLen = lstrlenA(lpSrc->Value.lpszA) + 1u;
88  scode = lpMore(ulLen, lpOrig, (LPVOID*)&lpDest->Value.lpszA);
89  if (SUCCEEDED(scode))
90  memcpy(lpDest->Value.lpszA, lpSrc->Value.lpszA, ulLen);
91  break;
92  case PT_UNICODE:
93  ulLen = (lstrlenW(lpSrc->Value.lpszW) + 1u) * sizeof(WCHAR);
94  scode = lpMore(ulLen, lpOrig, (LPVOID*)&lpDest->Value.lpszW);
95  if (SUCCEEDED(scode))
96  memcpy(lpDest->Value.lpszW, lpSrc->Value.lpszW, ulLen);
97  break;
98  case PT_BINARY:
99  scode = lpMore(lpSrc->Value.bin.cb, lpOrig, (LPVOID*)&lpDest->Value.bin.lpb);
100  if (SUCCEEDED(scode))
101  memcpy(lpDest->Value.bin.lpb, lpSrc->Value.bin.lpb, lpSrc->Value.bin.cb);
102  break;
103  default:
104  if (lpSrc->ulPropTag & MV_FLAG)
105  {
106  ulLen = UlPropSize(lpSrc);
107 
108  if (PROP_TYPE(lpSrc->ulPropTag) == PT_MV_STRING8 ||
109  PROP_TYPE(lpSrc->ulPropTag) == PT_MV_UNICODE)
110  {
111  /* UlPropSize doesn't account for the string pointers */
112  ulLen += lpSrc->Value.MVszA.cValues * sizeof(char*);
113  }
114  else if (PROP_TYPE(lpSrc->ulPropTag) == PT_MV_BINARY)
115  {
116  /* UlPropSize doesn't account for the SBinary structs */
117  ulLen += lpSrc->Value.MVbin.cValues * sizeof(SBinary);
118  }
119 
120  lpDest->Value.MVi.cValues = lpSrc->Value.MVi.cValues;
121  scode = lpMore(ulLen, lpOrig, (LPVOID*)&lpDest->Value.MVi.lpi);
122  if (FAILED(scode))
123  break;
124 
125  /* Note that we could allocate the memory for each value in a
126  * multi-value property separately, however if an allocation failed
127  * we would be left with a bunch of allocated memory, which (while
128  * not really leaked) is unusable until lpOrig is freed. So for
129  * strings and binary arrays we make a single allocation for all
130  * of the data. This is consistent since individual elements can't
131  * be freed anyway.
132  */
133 
134  switch (PROP_TYPE(lpSrc->ulPropTag))
135  {
136  case PT_MV_STRING8:
137  {
138  char *lpNextStr = (char*)(lpDest->Value.MVszA.lppszA +
139  lpDest->Value.MVszA.cValues);
140 
141  for (i = 0; i < lpSrc->Value.MVszA.cValues; i++)
142  {
143  ULONG ulStrLen = lstrlenA(lpSrc->Value.MVszA.lppszA[i]) + 1u;
144 
145  lpDest->Value.MVszA.lppszA[i] = lpNextStr;
146  memcpy(lpNextStr, lpSrc->Value.MVszA.lppszA[i], ulStrLen);
147  lpNextStr += ulStrLen;
148  }
149  break;
150  }
151  case PT_MV_UNICODE:
152  {
153  WCHAR *lpNextStr = (WCHAR*)(lpDest->Value.MVszW.lppszW +
154  lpDest->Value.MVszW.cValues);
155 
156  for (i = 0; i < lpSrc->Value.MVszW.cValues; i++)
157  {
158  ULONG ulStrLen = lstrlenW(lpSrc->Value.MVszW.lppszW[i]) + 1u;
159 
160  lpDest->Value.MVszW.lppszW[i] = lpNextStr;
161  memcpy(lpNextStr, lpSrc->Value.MVszW.lppszW[i], ulStrLen * sizeof(WCHAR));
162  lpNextStr += ulStrLen;
163  }
164  break;
165  }
166  case PT_MV_BINARY:
167  {
168  LPBYTE lpNext = (LPBYTE)(lpDest->Value.MVbin.lpbin +
169  lpDest->Value.MVbin.cValues);
170 
171  for (i = 0; i < lpSrc->Value.MVszW.cValues; i++)
172  {
173  lpDest->Value.MVbin.lpbin[i].cb = lpSrc->Value.MVbin.lpbin[i].cb;
174  lpDest->Value.MVbin.lpbin[i].lpb = lpNext;
175  memcpy(lpNext, lpSrc->Value.MVbin.lpbin[i].lpb, lpDest->Value.MVbin.lpbin[i].cb);
176  lpNext += lpDest->Value.MVbin.lpbin[i].cb;
177  }
178  break;
179  }
180  default:
181  /* No embedded pointers, just copy the data over */
182  memcpy(lpDest->Value.MVi.lpi, lpSrc->Value.MVi.lpi, ulLen);
183  break;
184  }
185  break;
186  }
187  }
188  return scode;
189 }
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
Definition: glfuncs.h:240
BOOL NTAPI IsBadWritePtr(IN LPVOID lp, IN UINT_PTR ucb)
Definition: except.c:881
#define MV_FLAG
Definition: mapidefs.h:216
#define PT_CLSID
Definition: mapidefs.h:213
#define lstrlenW
Definition: compat.h:609
unsigned char * LPBYTE
Definition: typedefs.h:53
if SUCCEEDED(hr)
#define PT_MV_STRING8
Definition: mapidefs.h:259
LONG SCODE
Definition: compat.h:2111
#define MAPI_E_INVALID_PARAMETER
Definition: mapicode.h:62
#define PT_MV_BINARY
Definition: mapidefs.h:260
ULONG WINAPI FBadProp(LPSPropValue lpProp)
Definition: prop.c:1288
#define TRACE(s)
Definition: solgame.cpp:4
__wchar_t WCHAR
Definition: xmlstorage.h:180
#define PT_MV_UNICODE
Definition: mapidefs.h:261
#define PT_STRING8
Definition: mapidefs.h:210
#define PROP_TYPE(t)
Definition: mapidefs.h:238
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
#define PT_BINARY
Definition: mapidefs.h:214
#define S_OK
Definition: intsafe.h:51
int WINAPI lstrlenA(LPCSTR lpString)
Definition: lstring.c:145
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
struct _SBinary SBinary
ULONG WINAPI UlPropSize(LPSPropValue lpProp)
Definition: prop.c:213
unsigned int ULONG
Definition: retypes.h:1
#define PT_UNICODE
Definition: mapidefs.h:211

Referenced by IMAPIPROP_AddValue(), IPropData_fnGetProps(), and IPropData_fnSetProps().

◆ ScBinFromHexBounded()

SCODE WINAPI ScBinFromHexBounded ( LPSTR  ,
LPBYTE  ,
ULONG   
)

◆ ScCopyNotifications()

SCODE WINAPI ScCopyNotifications ( int  ,
LPNOTIFICATION  ,
LPVOID  ,
ULONG  
)

◆ ScCopyProps()

SCODE WINAPI ScCopyProps ( int  ,
LPSPropValue  ,
LPVOID  ,
ULONG  
)

Definition at line 800 of file prop.c.

801 {
802  LPSPropValue lpDest = (LPSPropValue)lpDst;
803  char *lpDataDest = (char *)(lpDest + cValues);
804  ULONG ulLen, i;
805  int iter;
806 
807  TRACE("(%d,%p,%p,%p)\n", cValues, lpProps, lpDst, lpCount);
808 
809  if (!lpProps || cValues < 0 || !lpDest)
811 
812  memcpy(lpDst, lpProps, cValues * sizeof(SPropValue));
813 
814  for (iter = 0; iter < cValues; iter++)
815  {
816  switch (PROP_TYPE(lpProps->ulPropTag))
817  {
818  case PT_CLSID:
819  lpDest->Value.lpguid = (LPGUID)lpDataDest;
820  *lpDest->Value.lpguid = *lpProps->Value.lpguid;
821  lpDataDest += sizeof(GUID);
822  break;
823  case PT_STRING8:
824  ulLen = lstrlenA(lpProps->Value.lpszA) + 1u;
825  lpDest->Value.lpszA = lpDataDest;
826  memcpy(lpDest->Value.lpszA, lpProps->Value.lpszA, ulLen);
827  lpDataDest += ulLen;
828  break;
829  case PT_UNICODE:
830  ulLen = (lstrlenW(lpProps->Value.lpszW) + 1u) * sizeof(WCHAR);
831  lpDest->Value.lpszW = (LPWSTR)lpDataDest;
832  memcpy(lpDest->Value.lpszW, lpProps->Value.lpszW, ulLen);
833  lpDataDest += ulLen;
834  break;
835  case PT_BINARY:
836  lpDest->Value.bin.lpb = (LPBYTE)lpDataDest;
837  memcpy(lpDest->Value.bin.lpb, lpProps->Value.bin.lpb, lpProps->Value.bin.cb);
838  lpDataDest += lpProps->Value.bin.cb;
839  break;
840  default:
841  if (lpProps->ulPropTag & MV_FLAG)
842  {
843  lpDest->Value.MVi.cValues = lpProps->Value.MVi.cValues;
844  /* Note: Assignment uses lppszA but covers all cases by union aliasing */
845  lpDest->Value.MVszA.lppszA = (char**)lpDataDest;
846 
847  switch (PROP_TYPE(lpProps->ulPropTag))
848  {
849  case PT_MV_STRING8:
850  {
851  lpDataDest += lpProps->Value.MVszA.cValues * sizeof(char *);
852 
853  for (i = 0; i < lpProps->Value.MVszA.cValues; i++)
854  {
855  ULONG ulStrLen = lstrlenA(lpProps->Value.MVszA.lppszA[i]) + 1u;
856 
857  lpDest->Value.MVszA.lppszA[i] = lpDataDest;
858  memcpy(lpDataDest, lpProps->Value.MVszA.lppszA[i], ulStrLen);
859  lpDataDest += ulStrLen;
860  }
861  break;
862  }
863  case PT_MV_UNICODE:
864  {
865  lpDataDest += lpProps->Value.MVszW.cValues * sizeof(WCHAR *);
866 
867  for (i = 0; i < lpProps->Value.MVszW.cValues; i++)
868  {
869  ULONG ulStrLen = (lstrlenW(lpProps->Value.MVszW.lppszW[i]) + 1u) * sizeof(WCHAR);
870 
871  lpDest->Value.MVszW.lppszW[i] = (LPWSTR)lpDataDest;
872  memcpy(lpDataDest, lpProps->Value.MVszW.lppszW[i], ulStrLen);
873  lpDataDest += ulStrLen;
874  }
875  break;
876  }
877  case PT_MV_BINARY:
878  {
879  lpDataDest += lpProps->Value.MVszW.cValues * sizeof(SBinary);
880 
881  for (i = 0; i < lpProps->Value.MVszW.cValues; i++)
882  {
883  lpDest->Value.MVbin.lpbin[i].cb = lpProps->Value.MVbin.lpbin[i].cb;
884  lpDest->Value.MVbin.lpbin[i].lpb = (LPBYTE)lpDataDest;
885  memcpy(lpDataDest, lpProps->Value.MVbin.lpbin[i].lpb, lpDest->Value.MVbin.lpbin[i].cb);
886  lpDataDest += lpDest->Value.MVbin.lpbin[i].cb;
887  }
888  break;
889  }
890  default:
891  /* No embedded pointers, just copy the data over */
892  ulLen = UlPropSize(lpProps);
893  memcpy(lpDest->Value.MVi.lpi, lpProps->Value.MVi.lpi, ulLen);
894  lpDataDest += ulLen;
895  break;
896  }
897  break;
898  }
899  }
900  lpDest++;
901  lpProps++;
902  }
903  if (lpCount)
904  *lpCount = lpDataDest - (char *)lpDst;
905 
906  return S_OK;
907 }
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
Definition: glfuncs.h:240
static LPSPropValue
Definition: prop.c:36
short int * lpi
Definition: mapidefs.h:362
#define MV_FLAG
Definition: mapidefs.h:216
ULONG cb
Definition: mapidefs.h:289
#define PT_CLSID
Definition: mapidefs.h:213
LPSTR * lppszA
Definition: mapidefs.h:348
SBinaryArray MVbin
Definition: mapidefs.h:396
SBinary * lpbin
Definition: mapidefs.h:297
#define lstrlenW
Definition: compat.h:609
LPWSTR lpszW
Definition: mapidefs.h:386
unsigned char * LPBYTE
Definition: typedefs.h:53
ULONG cValues
Definition: mapidefs.h:361
#define PT_MV_STRING8
Definition: mapidefs.h:259
SShortArray MVi
Definition: mapidefs.h:389
#define MAPI_E_INVALID_PARAMETER
Definition: mapicode.h:62
#define PT_MV_BINARY
Definition: mapidefs.h:260
SLPSTRArray MVszA
Definition: mapidefs.h:397
#define TRACE(s)
Definition: solgame.cpp:4
union _PV Value
Definition: mapidefs.h:410
SBinary bin
Definition: mapidefs.h:385
__wchar_t WCHAR
Definition: xmlstorage.h:180
#define PT_MV_UNICODE
Definition: mapidefs.h:261
#define PT_STRING8
Definition: mapidefs.h:210
#define PROP_TYPE(t)
Definition: mapidefs.h:238
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
LPBYTE lpb
Definition: mapidefs.h:290
#define PT_BINARY
Definition: mapidefs.h:214
LPSTR lpszA
Definition: mapidefs.h:384
struct _GUID GUID
#define S_OK
Definition: intsafe.h:51
int WINAPI lstrlenA(LPCSTR lpString)
Definition: lstring.c:145
LPGUID lpguid
Definition: mapidefs.h:387
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
struct _SBinary SBinary
ULONG WINAPI UlPropSize(LPSPropValue lpProp)
Definition: prop.c:213
unsigned int ULONG
Definition: retypes.h:1
WCHAR * LPWSTR
Definition: xmlstorage.h:184
LPWSTR * lppszW
Definition: mapidefs.h:369
SWStringArray MVszW
Definition: mapidefs.h:398
#define PT_UNICODE
Definition: mapidefs.h:211
GUID * LPGUID
Definition: guiddef.h:81

Referenced by ScDupPropset().

◆ ScCountNotifications()

SCODE WINAPI ScCountNotifications ( int  ,
LPNOTIFICATION  ,
ULONG  
)

◆ ScCountProps()

SCODE WINAPI ScCountProps ( int  ,
LPSPropValue  ,
ULONG  
)

◆ ScDupPropset()

SCODE WINAPI ScDupPropset ( int  ,
LPSPropValue  ,
LPALLOCATEBUFFER  ,
LPSPropValue  
)

Definition at line 1108 of file prop.c.

1110 {
1111  ULONG ulCount;
1112  SCODE sc;
1113 
1114  TRACE("(%d,%p,%p,%p)\n", cValues, lpProps, lpAlloc, lpNewProp);
1115 
1116  sc = ScCountProps(cValues, lpProps, &ulCount);
1117  if (SUCCEEDED(sc))
1118  {
1119  sc = lpAlloc(ulCount, (LPVOID*)lpNewProp);
1120  if (SUCCEEDED(sc))
1121  sc = ScCopyProps(cValues, lpProps, *lpNewProp, &ulCount);
1122  }
1123  return sc;
1124 }
if SUCCEEDED(hr)
LONG SCODE
Definition: compat.h:2111
#define TRACE(s)
Definition: solgame.cpp:4
SCODE WINAPI ScCopyProps(int cValues, LPSPropValue lpProps, LPVOID lpDst, ULONG *lpCount)
Definition: prop.c:800
unsigned int ULONG
Definition: retypes.h:1
SCODE WINAPI ScCountProps(INT iCount, LPSPropValue lpProps, ULONG *pcBytes)
Definition: prop.c:719

◆ ScInitMapiUtil()

SCODE WINAPI ScInitMapiUtil ( ULONG  )

Definition at line 67 of file util.c.

68 {
69  if (mapiFunctions.ScInitMapiUtil)
70  return mapiFunctions.ScInitMapiUtil(ulReserved);
71 
72  FIXME("(0x%08x)stub!\n", ulReserved);
73  if (ulReserved)
75  return S_OK;
76 }
#define FIXME(fmt,...)
Definition: debug.h:111
#define MAPI_E_INVALID_PARAMETER
Definition: mapicode.h:62
_In_ SURFOBJ _In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ RECTL _In_ RECTL _In_ ULONG _In_ ULONG ulReserved
Definition: winddi.h:4190
MAPI_FUNCTIONS mapiFunctions
Definition: util.c:49
#define S_OK
Definition: intsafe.h:51

◆ SCODE()

typedef SCODE ( WINAPI  CREATECONVERSATIONINDEX)

◆ ScRelocNotifications()

SCODE WINAPI ScRelocNotifications ( int  ,
LPNOTIFICATION  ,
LPVOID  ,
LPVOID  ,
ULONG  
)

◆ ScRelocProps()

SCODE WINAPI ScRelocProps ( int  ,
LPSPropValue  ,
LPVOID  ,
LPVOID  ,
ULONG  
)

Definition at line 934 of file prop.c.

936 {
937  static const BOOL bBadPtr = TRUE; /* Windows bug - Assumes source is bad */
938  LPSPropValue lpDest = lpProps;
939  ULONG ulCount = cValues * sizeof(SPropValue);
940  ULONG ulLen, i;
941  int iter;
942 
943  TRACE("(%d,%p,%p,%p,%p)\n", cValues, lpProps, lpOld, lpNew, lpCount);
944 
945  if (!lpProps || cValues < 0 || !lpOld || !lpNew)
947 
948  /* The reason native doesn't work as MSDN states is that it assumes that
949  * the lpProps pointer contains valid pointers. This is obviously not
950  * true if the array is being read back from serialisation (the pointers
951  * are just offsets). Native can't actually work converting the pointers to
952  * offsets either, because it converts any array pointers to offsets then
953  * _dereferences the offset_ in order to convert the array elements!
954  *
955  * The code below would handle both cases except that the design of this
956  * function makes it impossible to know when the pointers in lpProps are
957  * valid. If both lpOld and lpNew are non-NULL, native reads the pointers
958  * after converting them, so we must do the same. It seems this
959  * functionality was never tested by MS.
960  */
961 
962 #define RELOC_PTR(p) (((char*)(p)) - (char*)lpOld + (char*)lpNew)
963 
964  for (iter = 0; iter < cValues; iter++)
965  {
966  switch (PROP_TYPE(lpDest->ulPropTag))
967  {
968  case PT_CLSID:
969  lpDest->Value.lpguid = (LPGUID)RELOC_PTR(lpDest->Value.lpguid);
970  ulCount += sizeof(GUID);
971  break;
972  case PT_STRING8:
973  ulLen = bBadPtr ? 0 : lstrlenA(lpDest->Value.lpszA) + 1u;
974  lpDest->Value.lpszA = RELOC_PTR(lpDest->Value.lpszA);
975  if (bBadPtr)
976  ulLen = lstrlenA(lpDest->Value.lpszA) + 1u;
977  ulCount += ulLen;
978  break;
979  case PT_UNICODE:
980  ulLen = bBadPtr ? 0 : (lstrlenW(lpDest->Value.lpszW) + 1u) * sizeof(WCHAR);
981  lpDest->Value.lpszW = (LPWSTR)RELOC_PTR(lpDest->Value.lpszW);
982  if (bBadPtr)
983  ulLen = (lstrlenW(lpDest->Value.lpszW) + 1u) * sizeof(WCHAR);
984  ulCount += ulLen;
985  break;
986  case PT_BINARY:
987  lpDest->Value.bin.lpb = (LPBYTE)RELOC_PTR(lpDest->Value.bin.lpb);
988  ulCount += lpDest->Value.bin.cb;
989  break;
990  default:
991  if (lpDest->ulPropTag & MV_FLAG)
992  {
993  /* Since we have to access the array elements, don't map the
994  * array unless it is invalid (otherwise, map it at the end)
995  */
996  if (bBadPtr)
997  lpDest->Value.MVszA.lppszA = (LPSTR*)RELOC_PTR(lpDest->Value.MVszA.lppszA);
998 
999  switch (PROP_TYPE(lpProps->ulPropTag))
1000  {
1001  case PT_MV_STRING8:
1002  {
1003  ulCount += lpDest->Value.MVszA.cValues * sizeof(char *);
1004 
1005  for (i = 0; i < lpDest->Value.MVszA.cValues; i++)
1006  {
1007  ULONG ulStrLen = bBadPtr ? 0 : lstrlenA(lpDest->Value.MVszA.lppszA[i]) + 1u;
1008 
1009  lpDest->Value.MVszA.lppszA[i] = RELOC_PTR(lpDest->Value.MVszA.lppszA[i]);
1010  if (bBadPtr)
1011  ulStrLen = lstrlenA(lpDest->Value.MVszA.lppszA[i]) + 1u;
1012  ulCount += ulStrLen;
1013  }
1014  break;
1015  }
1016  case PT_MV_UNICODE:
1017  {
1018  ulCount += lpDest->Value.MVszW.cValues * sizeof(WCHAR *);
1019 
1020  for (i = 0; i < lpDest->Value.MVszW.cValues; i++)
1021  {
1022  ULONG ulStrLen = bBadPtr ? 0 : (lstrlenW(lpDest->Value.MVszW.lppszW[i]) + 1u) * sizeof(WCHAR);
1023 
1024  lpDest->Value.MVszW.lppszW[i] = (LPWSTR)RELOC_PTR(lpDest->Value.MVszW.lppszW[i]);
1025  if (bBadPtr)
1026  ulStrLen = (lstrlenW(lpDest->Value.MVszW.lppszW[i]) + 1u) * sizeof(WCHAR);
1027  ulCount += ulStrLen;
1028  }
1029  break;
1030  }
1031  case PT_MV_BINARY:
1032  {
1033  ulCount += lpDest->Value.MVszW.cValues * sizeof(SBinary);
1034 
1035  for (i = 0; i < lpDest->Value.MVszW.cValues; i++)
1036  {
1037  lpDest->Value.MVbin.lpbin[i].lpb = (LPBYTE)RELOC_PTR(lpDest->Value.MVbin.lpbin[i].lpb);
1038  ulCount += lpDest->Value.MVbin.lpbin[i].cb;
1039  }
1040  break;
1041  }
1042  default:
1043  ulCount += UlPropSize(lpDest);
1044  break;
1045  }
1046  if (!bBadPtr)
1047  lpDest->Value.MVszA.lppszA = (LPSTR*)RELOC_PTR(lpDest->Value.MVszA.lppszA);
1048  break;
1049  }
1050  }
1051  lpDest++;
1052  }
1053  if (lpCount)
1054  *lpCount = ulCount;
1055 
1056  return S_OK;
1057 }
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
Definition: glfuncs.h:240
ULONG ulPropTag
Definition: mapidefs.h:408
#define TRUE
Definition: types.h:120
#define MV_FLAG
Definition: mapidefs.h:216
struct _SPropValue SPropValue
ULONG cb
Definition: mapidefs.h:289
#define PT_CLSID
Definition: mapidefs.h:213
LPSTR * lppszA
Definition: mapidefs.h:348
SBinaryArray MVbin
Definition: mapidefs.h:396
SBinary * lpbin
Definition: mapidefs.h:297
char * LPSTR
Definition: xmlstorage.h:182
#define lstrlenW
Definition: compat.h:609
LPWSTR lpszW
Definition: mapidefs.h:386
ULONG cValues
Definition: mapidefs.h:368
unsigned char * LPBYTE
Definition: typedefs.h:53
unsigned int BOOL
Definition: ntddk_ex.h:94
#define PT_MV_STRING8
Definition: mapidefs.h:259
#define MAPI_E_INVALID_PARAMETER
Definition: mapicode.h:62
#define PT_MV_BINARY
Definition: mapidefs.h:260
SLPSTRArray MVszA
Definition: mapidefs.h:397
#define TRACE(s)
Definition: solgame.cpp:4
union _PV Value
Definition: mapidefs.h:410
SBinary bin
Definition: mapidefs.h:385
__wchar_t WCHAR
Definition: xmlstorage.h:180
#define PT_MV_UNICODE
Definition: mapidefs.h:261
#define PT_STRING8
Definition: mapidefs.h:210
#define RELOC_PTR(p)
#define PROP_TYPE(t)
Definition: mapidefs.h:238
LPBYTE lpb
Definition: mapidefs.h:290
#define PT_BINARY
Definition: mapidefs.h:214
LPSTR lpszA
Definition: mapidefs.h:384
struct _GUID GUID
#define S_OK
Definition: intsafe.h:51
int WINAPI lstrlenA(LPCSTR lpString)
Definition: lstring.c:145
LPGUID lpguid
Definition: mapidefs.h:387
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
struct _SBinary SBinary
ULONG WINAPI UlPropSize(LPSPropValue lpProp)
Definition: prop.c:213
unsigned int ULONG
Definition: retypes.h:1
WCHAR * LPWSTR
Definition: xmlstorage.h:184
LPWSTR * lppszW
Definition: mapidefs.h:369
SWStringArray MVszW
Definition: mapidefs.h:398
#define PT_UNICODE
Definition: mapidefs.h:211
GUID * LPGUID
Definition: guiddef.h:81
ULONG cValues
Definition: mapidefs.h:347

◆ SzFindCh()

LPSTR WINAPI SzFindCh ( LPCSTR  ,
USHORT   
)

◆ SzFindLastCh()

LPSTR WINAPI SzFindLastCh ( LPCSTR  ,
USHORT   
)

◆ SzFindSz()

LPSTR WINAPI SzFindSz ( LPCSTR  ,
LPCSTR   
)

◆ UFromSz()

UINT WINAPI UFromSz ( LPCSTR  )

Definition at line 677 of file util.c.

678 {
679  ULONG ulRet = 0;
680 
681  TRACE("(%s)\n", debugstr_a(lpszStr));
682 
683  if (lpszStr)
684  {
685  while (*lpszStr >= '0' && *lpszStr <= '9')
686  {
687  ulRet = ulRet * 10 + (*lpszStr - '0');
688  lpszStr++;
689  }
690  }
691  return ulRet;
692 }
#define TRACE(s)
Definition: solgame.cpp:4
#define debugstr_a
Definition: kernel32.h:31
unsigned int ULONG
Definition: retypes.h:1

◆ UlAddRef()

ULONG WINAPI UlAddRef ( void )

Definition at line 627 of file util.c.

628 {
629  TRACE("(%p)\n", lpUnk);
630 
631  if (!lpUnk)
632  return 0UL;
633  return IUnknown_AddRef((LPUNKNOWN)lpUnk);
634 }
static LPUNKNOWN
Definition: ndr_ole.c:49
#define TRACE(s)
Definition: solgame.cpp:4
#define UL
Definition: tui.h:82

◆ UlFromSzHex()

ULONG WINAPI UlFromSzHex ( LPCSTR  )

◆ UlPropSize()

ULONG WINAPI UlPropSize ( LPSPropValue  )

Definition at line 213 of file prop.c.

214 {
215  ULONG ulRet = 1u, i;
216 
217  TRACE("(%p)\n", lpProp);
218 
219  switch (PROP_TYPE(lpProp->ulPropTag))
220  {
221  case PT_MV_I2: ulRet = lpProp->Value.MVi.cValues;
222  /* fall through */
223  case PT_BOOLEAN:
224  case PT_I2: ulRet *= sizeof(USHORT);
225  break;
226  case PT_MV_I4: ulRet = lpProp->Value.MVl.cValues;
227  /* fall through */
228  case PT_ERROR:
229  case PT_I4: ulRet *= sizeof(LONG);
230  break;
231  case PT_MV_I8: ulRet = lpProp->Value.MVli.cValues;
232  /* fall through */
233  case PT_I8: ulRet *= sizeof(LONG64);
234  break;
235  case PT_MV_R4: ulRet = lpProp->Value.MVflt.cValues;
236  /* fall through */
237  case PT_R4: ulRet *= sizeof(float);
238  break;
239  case PT_MV_APPTIME:
240  case PT_MV_R8: ulRet = lpProp->Value.MVdbl.cValues;
241  /* fall through */
242  case PT_APPTIME:
243  case PT_R8: ulRet *= sizeof(double);
244  break;
245  case PT_MV_CURRENCY: ulRet = lpProp->Value.MVcur.cValues;
246  /* fall through */
247  case PT_CURRENCY: ulRet *= sizeof(CY);
248  break;
249  case PT_MV_SYSTIME: ulRet = lpProp->Value.MVft.cValues;
250  /* fall through */
251  case PT_SYSTIME: ulRet *= sizeof(FILETIME);
252  break;
253  case PT_MV_CLSID: ulRet = lpProp->Value.MVguid.cValues;
254  /* fall through */
255  case PT_CLSID: ulRet *= sizeof(GUID);
256  break;
257  case PT_MV_STRING8: ulRet = 0u;
258  for (i = 0; i < lpProp->Value.MVszA.cValues; i++)
259  ulRet += (lstrlenA(lpProp->Value.MVszA.lppszA[i]) + 1u);
260  break;
261  case PT_STRING8: ulRet = lstrlenA(lpProp->Value.lpszA) + 1u;
262  break;
263  case PT_MV_UNICODE: ulRet = 0u;
264  for (i = 0; i < lpProp->Value.MVszW.cValues; i++)
265  ulRet += (lstrlenW(lpProp->Value.MVszW.lppszW[i]) + 1u);
266  ulRet *= sizeof(WCHAR);
267  break;
268  case PT_UNICODE: ulRet = (lstrlenW(lpProp->Value.lpszW) + 1u) * sizeof(WCHAR);
269  break;
270  case PT_MV_BINARY: ulRet = 0u;
271  for (i = 0; i < lpProp->Value.MVbin.cValues; i++)
272  ulRet += lpProp->Value.MVbin.lpbin[i].cb;
273  break;
274  case PT_BINARY: ulRet = lpProp->Value.bin.cb;
275  break;
276  case PT_OBJECT:
277  default: ulRet = 0u;
278  break;
279  }
280 
281  return ulRet;
282 }
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
Definition: glfuncs.h:240
#define PT_OBJECT
Definition: mapidefs.h:207
#define PT_MV_CURRENCY
Definition: mapidefs.h:256
#define PT_R4
Definition: mapidefs.h:199
#define PT_CURRENCY
Definition: mapidefs.h:203
#define PT_CLSID
Definition: mapidefs.h:213
#define PT_SYSTIME
Definition: mapidefs.h:212
#define PT_APPTIME
Definition: mapidefs.h:204
#define PT_MV_R4
Definition: mapidefs.h:252
#define lstrlenW
Definition: compat.h:609
#define PT_ERROR
Definition: mapidefs.h:205
#define PT_MV_I2
Definition: mapidefs.h:248
#define PT_MV_STRING8
Definition: mapidefs.h:259
static const char mbstate_t *static wchar_t const char mbstate_t *static const wchar_t int *static double
Definition: string.c:80
static LONG(WINAPI *pLPropCompareProp)(LPSPropValue
union tagCY CY
struct _FILETIME FILETIME
#define PT_BOOLEAN
Definition: mapidefs.h:206
#define PT_MV_BINARY
Definition: mapidefs.h:260
int64_t LONG64
Definition: typedefs.h:68
#define TRACE(s)
Definition: solgame.cpp:4
__wchar_t WCHAR
Definition: xmlstorage.h:180
#define PT_MV_UNICODE
Definition: mapidefs.h:261
#define PT_MV_R8
Definition: mapidefs.h:255
#define PT_STRING8
Definition: mapidefs.h:210
#define PT_R8
Definition: mapidefs.h:202
#define PT_I8
Definition: mapidefs.h:208
#define PROP_TYPE(t)
Definition: mapidefs.h:238
#define PT_I2
Definition: mapidefs.h:195
#define PT_I4
Definition: mapidefs.h:198
#define PT_MV_CLSID
Definition: mapidefs.h:262
#define PT_MV_I4
Definition: mapidefs.h:251
#define PT_BINARY
Definition: mapidefs.h:214
struct _GUID GUID
int WINAPI lstrlenA(LPCSTR lpString)
Definition: lstring.c:145
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
static float(__cdecl *square_half_float)(float x
unsigned short USHORT
Definition: pedump.c:61
#define PT_MV_I8
Definition: mapidefs.h:263
unsigned int ULONG
Definition: retypes.h:1
#define PT_MV_SYSTIME
Definition: mapidefs.h:258
#define PT_UNICODE
Definition: mapidefs.h:211
#define PT_MV_APPTIME
Definition: mapidefs.h:257

Referenced by PropCopyMore(), ScCopyProps(), ScCountProps(), and ScRelocProps().

◆ UlRelease()

ULONG WINAPI UlRelease ( void )

Definition at line 652 of file util.c.

653 {
654  TRACE("(%p)\n", lpUnk);
655 
656  if (!lpUnk)
657  return 0UL;
658  return IUnknown_Release((LPUNKNOWN)lpUnk);
659 }
static LPUNKNOWN
Definition: ndr_ole.c:49
#define TRACE(s)
Definition: solgame.cpp:4
#define UL
Definition: tui.h:82

◆ void()

typedef void ( WINAPI  CALLERRELEASE)

Variable Documentation

◆ LPBYTE

typedef LPBYTE

Definition at line 112 of file mapiutil.h.

◆ LPMAPITABLE

typedef LPMAPITABLE

Definition at line 117 of file mapiutil.h.